JAVA和.NET对比分析

  .Net和Java是国内市场占有率最高的两门技术,对于准备学习编程语言的初学者来说,.Net和Java是初学者首先考虑的两门技术,因此很多人一遍遍的问“学.Net还是学Java”,社区中也每天都有“.Net控”在唱衰Java,也有“Java控”在唱衰.Net,一时间硝烟四起,让初学者更加迷惑。

  从工作开始到现在,.net伴随着我从普通开发人员到高级开发,再到项目经理,整整13年。去年跟一个朋友聊天,一个以前做Java的老总狂喷.NET在国内的日益落魄境地,我当时不以为然,甚至认为他有失偏颇,但是今年开春以来直到现在的招聘情况让我不得不承认一个事实:.NET在国内市场占有率比前几年严重萎缩,最新猎聘里面深圳.NET和JAVA的职位数比是1:2!

  一朋友所在地为中部一省会城市,最近从招聘市场获取的信息如下:

  1、从2月底到现在,一直的感觉就是.NET开发人员很难招,本身资源不多且面试人员水平能称得上高级开发的更少(这个估计跟他所在城市不是一线城市有一定关系)。他说记得几年前,他所在公司都是由人事的同事初步筛选简历,绝大部分简历都来自自投;而现在自投的不多,绝大部分需要去搜索才行,为了提高成功率,都由各部门技术负责人直接负责简历的筛选和搜索。51后,简历更少得可怜,自投的基本没有,而翻遍智联和51job,也就那么点,而且大部分都是以前看过的。

  2、因为招聘受阻,朋友想了很多其他途径,包括联系培训机构、校招、猎头,也发动了一切可以发动的力量找人,很意外,现在培训机构都几乎没有.net培训的了?他想这个应该完全是顺应市场而为,想想以前那么多.net培训出来的。。。

  3、对比Java的招聘资源,明显少很多,真是一把辛酸一把泪,恨铁不成钢。。。至于.NET开发人员和Java开发人员所提的薪水期望值就更不用说了。。。

  而我个人觉得可能有如下几方面的原因:

  1、微软因为Windows的包袱一直裹足不前,比如对跨平台的支持以前一直是比较暧昧,现在终于上了正道,但是太晚了,错过了最佳时机,恐怕很难扭转局势

  2、ios及安卓的兴起,使.NET在手机端的应用基本上无市场,而这些移动应用的兴起必然使Java及Object C++大热,进一步加剧了.NET的颓废

  3、国家所谓的去Windows化政策对企业级.NET应用的市场也有一定影响,客户不需要,自然公司就不需要,学的人也 就变少了。

  做为一个.Net、Java、RPG、Python、VB等语言都进行过有一定复杂度的项目开发的人来说,我对任何一门语言都没有宗教式狂热崇拜,因此我也相对理性的对整个问题进行分析。

  根据几年前的数据,可以看出趋势,从北京、广州、上海等地区2010年的就业统计数据来看,.Net和Java的职位数量比例为2:3,从就业网站和主要技术社区数据来看,2010年.Net和Java的学习人员数量比例为1:3。从数据上看,.Net的职位绝对数量比Java低一些,不过Java学习人员数量比.Net学习人员高出3倍,因此.Net职位的竞争激烈程度低于Java。

  由于.Net秉承了微软技术的入门简单的特点,经过短时间的学习就可以掌握拖拉控件的快速开发方式,很多人被.Net的快速开发方式所满足,认为自己“学成了”,不再深入研究,因此人才市场上充斥着很多只会拖控件、而不懂.Net更深入一步技术的.Net开发人员,比如很多ASP.Net的书上都是讲ASP.Net服务端控件,很多所谓“精通ASP.Net”的人连什么是Http、HTML、JavaScript、Dom等基本概念都稀里糊涂,实际公司项目中很多功能点的实现不是简单的拖一个ASP.Net服务端控件就能搞定的,因此看似学习.Net的人非常多,但是真正满足企业要求的人则比较少;而Java则入门门槛比较高,如果想要配置一个Hello World级别的学习环境就会涉及到很多技术,开发环境也要学习者自行配置,对于初学者来说可能花费一周时间都无法配置一个最简单的环境出来,Java的开发环境也不像.Net开发环境那么可用性强,Java和.Net的区别就像Windows和Linux的区别,正因为Java学习门槛非常高,很多学习者被淘汰了下来,这样能够撑过一个个难关学习下来的开发人员都是水平比较高的人员。因此.Net初级开发人员的工资平均是比Java初级开发人员的工资平均略低的。但是由于.Net中高级人才非常缺乏,因此掌握.Net深入技术的开发人员在企业内部是非常吃香的,招聘人员经常发出这样的感叹“招合适的Java工程师能招来一堆,招合适的.Net工程师一个月都招不来几个”。 不过现在JAVA的IDE工具如Eclipse已经集成很多控件,也可以随时下载需要用到的控件,像微服务应用,还有一些爬虫程序都很容易在上面开发。所以和VS.net相比,两种工具之间已经没有太大的差别了。

  .Net入门快,在.Net中微软为开发人员提供了一套最佳的技术架构搭配、集成的开发环境,用微软的技术架构开发出的系统就可以保证最好的效果,而不用像Java开发人员那样去学很多开源框架再去学习搭建技术架构、开发环境,因此.Net学习周期比Java短,有了语言基础后再进行集训式的就业班学习,那么.Net学习者学习3个月可以进入就业,Java学习者需要5个月可以进入就业。

  微软的本地化推广工作做得非常好,因此学习.Net有大量的中文资料可以参考,因此除非研究很高深的领域,否则中文资料基本能满足开发者的需求;而Java由于走的是高端路线,因此除了初学者资料外,大部分Java资料都是英文的,学习Java需要参考很多英文资料。因此如果英文非常好的学员学习Java就会很轻松,而英文不是很好的学员学习.Net会更好。

  综上,Java入门门槛比较高,需要有足够的毅力和百折不挠的精神,只要你能坚持下来你就可以将很多人在入门门槛上就将很多竞争者甩在身后。.Net入门门槛比较低,装上VisualStudio就可以马上进行开发,不需要进行太多的配置、不需要学太多基础知识,这样可以很轻松的掌握入门.Net学习,是有很成就感的事情,能让你有兴趣进一步学习,但是你不能止步于此,因此你会发现身边也有无数的人也是“轻松入门”,你就需要继续深入学习,深入学习同样需要毅力和探索的精神,你要在这个阶段上把绝大部分竞争者甩在身后。

  从技术角度看不存在是Java好还是.Net好,请根据自己的情况进行选择。而且.Net和Java并不像很多初学者认为的那样“学一门语言就靠这门语言吃一辈子”,工作中很可能这个项目用Java,那个项目用.Net,因此你可以喜欢某个语言,但是不要抱着一门语言不放,更不用担心“Sun被Oracle收购了,Java是不是完了?”、“我学.Net,如果微软没落了我是不是就失业了”之类的问题,不同语言只是不同的工具,换了一个新的工具可以很快的熟悉新的工具,大部分内容都是相通的,比如java中的web开发很熟悉了,转而用ASP.Net也会发现大部分东西都是和JavaWeb一样的,很快就能上手ASP.Net,难道你现在用的是苹果手机,你会害怕苹果倒台你就不会用手机了吗?“Java完了、微软死了”这类问题不是开发人员去关心的事情,而是华尔街那些金融大鳄去考虑的问题,咱们只管用技术去赚钱养家就是了。

  学了.Net能做什么开发

  .Net目前主要的开发方向是:Web开发、桌面系统开发、移动开发。

  Web开发通俗的说就是开发网站,包括类似于大众点评网等这样的互联网以及OA等内网系统,Web开发是目前.Net开发的主要方向,大部分招聘.Net的职位都是做Web开发。

  桌面系统一般指的是使用WinForm技术开发Windows软件,比如以Windows软件形式运行的仓库管理系统、图书管理系统等,也就是一般说的C/S开发(不严谨的说法),目前很多公司都有WinForm开发的产品,不过由于大部分公司的产品都开始转向基于Web的版本,WinForm版本都处于维护状态,因此基本不再招聘WinForm版本的新员工。

  移动开发主要指的是手机开发。.Net手机开发目前主要是WindowsMobile的开发,目前中国大陆地区Windows Mobile开发的工作非常少。微软在2010年推出了WindowsPhone7(简称WP7)手机操作系统,微软在WP7手机操作系统的推出上继续采用了微软一贯的“落后半步、后发制人”的战略,微软惯于后发制人,比如当年就曾经用IE干死了曾经领先一时的Netscape浏览器,再比如.Net更是从先行者Java口中夺下了半壁江山。但WindowsPhone的开发目前已经处于停滞状态,重磅消息如“腾讯在 Windows 10 Mobile 平台停止开发全系应用”。

  总之,.Net和Java是国内市场占有率最高的两门技术,但对于准备学习编程语言的初学者来说,建议学习Java才是明智的,毕竟JAVA的市场占有率相当高,开源的技术意味着性价比高,受众广。

  大连正规男科医院 http://yyk.39.net/hospital/f9a8f_comments.html

猜你喜欢

转载自www.cnblogs.com/2655534102gyt/p/10654261.html