Java与.net的选择和比较
跨平台对开发商是一个巨大的诱惑。一次开发,多个平台使用,降低了迁移成本,有利。但Java的开发工具没有.net顺手,对编码人员的要求比.net要高。
.net培训成本低,上手快。尤其如果开发人员以前都是做windows开发的话,转型成本低得让老板眉开眼笑。
最重要的决定力量是市场。开发商所定位的市场用户的需求和开发上在技术上的历史积累,决定了开发商最终的策略。
2 站在从业人员的立场上
从业人员被市场所驱动,反过来也引导市场。
Java起手的过程比较漫长。Java开发者要做很多DIY工作,才能写出第一个像样的程序。DIY多了,对于从业的基础素质,必有提高。
.net入门快,windows最大的好处“可视化”在.net延续,集成环境好,单步调试强,这是Java团队中下至程序员上达项目经理历来羡慕的地方。做惯了windows和.net下的开发,难免觉得Java下的开发调试实在比较原始:代码大多要一行一行写,单步调试很多时候不可能。
但Java人员的付出也有回报。我还记得当年Pascal编程课和Unix操作系统带给我的思维冲击,那门编程课应该更准确地说成“结构化编程 ――pascal”。Pascal强调的结构化编程带来了非结构化语言如Fortran之流无法比拟的美和乐趣,Unix崇尚的“小即是美”、“没有消息就是好消息”深入我心。在软件开发这一生产过程中,除了得到维持生计所需的报酬,同时能得到美的享受和满足的心情,实为天赐。Java从业者乐于谈论 Java的美,这一点上比.net有福。
结束语
就服务端市场来讲,Java目前在技术先进性上有绝对优势。应用系统需要各个层面的框架(framework),Java都有大量已完成或正在进行的开源项目帮助开发人员更好地完成自己的任务。诸如struts/JSF类的框架,.net没有对应物,而且Java在扬弃的同时保持着相对的稳定。
.net开发效率差不多是Java的三倍(经验数据),致命的诱惑。在Java放弃的客户端程序上,.net是老大,但在服务端,.net还是个小弟弟,有待成长。微软最初想要构建一个新的技术来回应J2EE,但发现一己之力还办不到。于是匆匆祭出com/com+,被绝大多数程序员评为“丑陋繁杂,迟早会被替换掉”。什么时候替换呢?这一替换对应用的影响有多大呢?微软的新操作系统对.net又会有多大影响?拭目以待。
绕来绕去的意思是,我不觉得两个平台有截然的高下之分。在这个互动的世界上,不想被淘汰的竞争者始终保持警惕,努力学习对手的优点。Java的努力之一就是提供更易用的工具帮助开发人员快速轻松地开发Web应用程序。而.net的当务之急是改进架构,完善框架。
还是那句话:没有最好的技术,只有对于具体项目来说最适用的技术。
原文:https://blog.csdn.net/u012402926/article/details/72674207
为什么那么多公司不用 .NET,而选择 PHP、JSP,是 .NET 有什么缺点吗?
苏莉安
程序员 话题的优秀回答者
375 人赞同了该回答
看了一大圈,只有@翁伟一个答案是靠谱的。.net在互联网圈使用率低是事实,而且原因基本和技术本身优劣无关,就是生态环境和人才的问题。
单从语言特性上讲,C#早就把风格近似的Java远远抛在了身后(我从03年开始两者交替用,C#进步极其明显),与各种现代编程语言比一圈的话都绝对不输。相反,很多看低.net的人其实对它并不了解,拿出来说的很多缺点根本就是七八年甚至十几年前的成见,都不值一驳。
问题就出在人才结构上。据我所了解,国内政府、传统企业、银行、工厂等.net应用最广泛的领域中,存在大量水平低劣、不思进取、恨不得只会拖拽控件和百度搜代码就自称程序员的人。他们对计算机原本就没兴趣,编程的目标是尽快不再编程,想在三年内转管理或售前,可惜失败了。高不成低不就,又干不了别的,只好迷茫地继续不思进取,编写bug丛生的代码。
这种人想跳到工资较高的互联网圈都困难。除了加班强度之外,根本就跟不上需要快速学习新知识、新语言和框架的节奏,自己还恨不得学一次吃一辈子呢。
我在十几年的工作生涯里这种人见得太多了。有的2013年仍然在维护Windows Server 2003;有的时至今日都只熟悉 .net Framework 1.1那一套,连反射和泛型都不知道怎么用;算法更是像听天书一样,不提二叉树、有向图了,拿冒泡排序都能扫倒一大片。一点都不夸张。
至于为什么只有.net而不是其他语言变成了这样?无他,门槛太低而已。Java只比它难一点,就滤掉了一大堆垃圾程序员。而且.net是能在Windows下部署的,要知道这些人根本连linux命令行都懒得学,能省一点是一点……
其实过去几年的App热潮导致大批零基础培训三五个月就上岗的iOS和安卓「程序员」涌入业界,那个代码质量之惨不忍睹,跟早年这批.net程序员刚入行时有一拼。但他们之所以有人肯要是因为没有代替品。而.net在Web端要跟一百多种服务器语言竞争,这帮人的下场可想而知。也只有在慢节奏、靠市场关系不靠技术吃饭的企业有活路了。
当然,并不是所有.net程序员都水平低下到这程度,有很多也是有热情、肯学习的,但越往上升发现方向越窄,很多就干脆去了微软。如果不去的话,发现可去的地方越来越少,既然都是要学习,学别的语言也没问题啊,就这么换到别的平台去了。
整个.net生态圈(特指国内)的情况是,高水平的大神不少,越往下,良品率越以惊人的速度下降。如果你打算打造一支开发.net的团队,那不好意思了,可能会招到一个不错的Leader,但招底下干活的人时,筛选成本一下子就变成了其他语言平台的好几倍。时间和人力都是钱啊。
这种恶劣环境不知道什么时候会有转机。我倒觉得.net core现在正处于一个很好的节点上:根据微软的东西第三个版本才能用的原则,配合VS2017的.net core已经足够可用和完善了,既能发挥出C#的优秀特性、又有开放的平台。最重要的是,如果有人正在研究它的话,说明肯定是个有足够热情和动力吸收新知识的程序员啊,比很多傍着热门平台吃老本的强多了。
原文:https://blog.csdn.net/jjff46/article/details/76679352
.Net Visual Studio是收费的产品,企业解决方案,开发调试方便,效率快,入门简单,封装好的框架丰富,因为入门简单,人员参差不齐,有的大型项目也有质量问题(ASP.Net),性能、用户体验惨不忍睹,JAVA 是开源的免费的,不花钱什么都需要配置,自己做,适合大型高并发分布式网站开发,把业务拆分成服务,Java SE不如Winform 方便,Winform不如WPF好看,Oracle 数据库登陆用户只能看到自己建的表,SqlServer 好像没有此类设置,Oracle有DBA可以理解,SqlServer DBA干毛线啊,就用PD设计数据库吗。用MVC+Devexpress开发数据统计类,图表展示数据项目,数据展示慢,要不就说数据量大,统计分析困难(后来分表了),要不就推给Devexpress,初始化Devexpress的数据一堆代码,封装困难,换个查询条件查询,有明显的等待(我觉得应该小于1S),反正你不可能读Devexpress的源码,能推的就推,不要给自己揽事情,还不如直接用JS图表呢。
Java与.net的选择和比较的更多相关文章
- Java 第三章 选择结构1
选择结构(一) 会使用基本的 if 选择结构 掌握逻辑运算符,掌握多重 if 选择结构 , 掌握嵌套 if 选择 结构 为什么需要 if 选择结构 例如: 如果张浩的 java 考试成绩大于 98分, ...
- Java版冒泡排序和选择排序
一.理解说明 1.理解和记忆 冒泡排序:依次定位数组元素,每次只和相邻的且符合条件的元素交换位置. 选择排序:依次在数组的每个位置,通过逐个对比选择出最大或最小的元素. 2.知识点说明 (1)数组是引 ...
- 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...
- 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构
037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...
- 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构
036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...
- 035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构
035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构 本文知识点:Java中的多重if结构 选择结构回顾 if选择结构 注意: 1.条 ...
- 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述
034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...
- 从零开始学 Java - 数据库连接池的选择 Druid
我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...
- 排序算法练习--JAVA(插入、直接选择、冒泡、快速排序、非递归快速排序)
排序算法是数据结构中的经典算法知识点,也是笔试面试中经常考察的问题,平常学的不扎实笔试时候容易出洋相,回来恶补,尤其是碰到递归很可能被问到怎么用非递归实现... package sort; impor ...
- Java基础(46):选择排序的Java封装(完整可运行)
1 package lsg.ap.select; import java.util.Random; public class SelectSort { //选择排序 /** *@author: 梁山广 ...
随机推荐
- JUnit介绍(转)
测试的重要性毋庸再说,但如何使测试更加准确和全面,并且独立于项目之外并且避免硬编码,JUnit给了我们一个很好的解决方案.一.引子 首先假设有一个项目类SimpleObject如下: pu ...
- Spring源码学习-容器BeanFactory(五) Bean的创建-探寻Bean的新生之路
写在前面 上面四篇文章讲了Spring是如何将配置文件一步一步转化为BeanDefinition的整个流程,下面就到了正式创建Bean对象实例的环节了,我们一起继续学习吧. 2.初始化Bean对象实例 ...
- composer 实现自动加载原理
简介 一般在框架中都会用到composer工具,用它来管理依赖.其中composer有类的自动加载机制,可以加载composer下载的库中的所有的类文件.那么composer的自动加载机制是怎么实现的 ...
- Python爬虫第二天
Python爬虫第二天 超时设置 有时候访问网页时长时间未响应,系统就会判断网页超时,无法打开网页.如果需要自己设置超时时间则: 通过urlopen()打开 ...
- maven <include>与<exclude>划定的范围存在冲突,则以<exclude>配置为准。
maven 与划定的范围存在冲突,则以配置为准.
- Bandwagon的配置记录(二) —— ftp文件传输
SSH登录服务器 登录的方法在Bandwagon的配置记录(一) —— kexue上网 配置前的准备 1.新建一个目录( /home/ftp ),以后可以把文件放在这里,这里相当于是个中转站 cd ...
- 2019PHP面试题最全面归纳总结
1.请选择以下代码运行的结果: <?php if ('1e3' == '1000') echo 'LOL'; ?> A 无任何输出结果 B LOL C 不执行且报错 解析:1e3 ...
- java中List<Map<String, Object>>关于null的判断
List<Map<String, Object>> selectTmFileInfo = fileInfoService.selectTmFileInfoByToken(cTo ...
- UEditor之实现配置简单的图片上传示例
UEditor之实现配置简单的图片上传示例 原创 2016年06月11日 18:27:31 开心一笑 下班后,阿华到楼下小超市买毛巾,刚买完出来,就遇到同一办公楼里另一家公司的阿菲,之前与她远远的有过 ...
- eclipse集成lombok
第一部下载 lombok jar包 https://projectlombok.org/download.html lombok下载地址,进入该网址后可以看到如下界面,点击下载就行了. 下载 ja ...