往事如烟:2003年,那时我还在念大三,像中国大多数学生一样,为到底是投诚Java还是效忠.net日夜争论,上下求索,迷茫中非凡渴望有一盏明灯照亮我辈学子的前程,当时,各大媒体的报道是市场中.net和Java平分秋色,各领风骚,我的很多师哥多曾持此般言论:跟着微软有馒头吃,这些都或多或少的影响着我们的抉择。
我的很多同学基本是选择了.net,原因大部分是相同的:首先,我们为学校免费开发的成绩查询系统、新闻发布系统等等基本上都是基于ASP+Sql Server的,因为他们好学好用,所以抱着老子是英雄,儿子是好汉的心态,进一步学习.net是水到渠成的事情。再次,.net学习资料,开发文档可谓一应俱全,.net的开发过程也确实易于上手,比起我那帮学Java的同学,一碰到问题就得翻遍整个互联网,成天恨得Java咬牙切齿,我们是舒心多了。最后,就是个人崇拜问题了,那时候大家都是学生,除了知道Windows和微软之外,Unix、Linux都只是漂亮的传说,谁都不曾一睹芳容。微软就是我们心中的太阳,其他的如Sun、Bea、Borland之流都是些乌合之众,我们靠着微软的这棵大树好乘凉,好奔个灿烂的前程。
毕业后,就依靠.net这个武器拼杀于各个求职现场了,很多公司需要.net技术的,可都是些小公司,那些学Java的同学找的单位都是大公司,待遇不错,发展前景也明朗得多,多年来学Java的悲情苦恨似乎一下子就烟消云散了,而我们.net派则或多或少有点郁闷,但是我们还是一样意气风发的猛虎出山了,并笑言:三年后看我们如何用.net灭了那帮竖子。
两年来在软件业的摸爬滚打,眼界大大拓展,同时对各个平台、编程语言有了较深入的了解,所以,今天我大胆发问:微软,您的.net为中国程序员带来了什么?只为当年我的那一腔赤诚,也为我今天的许多困惑。
我是学.net的,两年来我一直坚守着“嫁鸡随鸡,嫁狗随狗”的传统道德,对.net,对微软不离不弃,即便在前年那个.net权威向全世界质疑.net战略时,我还是对.net忠心不二,并轻视那权威“竖子不足与谋”。可以说,.net信仰我一直没有丢失。我是用.net的,两年来我一直在努力学习和把握它各方面的知识,并对开源项目DNN深入研究,为.net这么的强大功能、这么高的开发效率而自豪,可以说,.net技术水平我一直苦苦相随。
而这些年,.net给我带来了什么?不错,我先要感谢.net,通过它,我学到了很多东西,也顺利的找到了工作,目前月薪也翻了几番,在北京算个入门级的白领,表面上不错,但请仔细来观察我的路程,两年来我所有从事的项目,没有一个是大项目,准确的说,没有一个是超过30万元的项目。为什么?不是兄弟我无能,是你微软老兄不够努力,不够大度啊。你.net绑死在Windows操作系统下,可真正的企业级应用谁用你漏洞百出的服务器?因而也就没有重量级的用户采纳你才华横溢的.net。
说句实话(我不怕招来无数板砖),.net无论是在语言设计、框架设计等各方面都比Java来得漂亮,是真正的后起之秀,在Studio环境下编程那是行云流水,痛哉痛哉的事情,也许我是让微软惯坏了,每次我写Java程序时,一打开Jbuilder或者Eclipse时,那慢得如牛的启动速度,极不人性化的操作就直皱眉头,可现实是,人家Java比你.net混得滋润得多,因为人家大度,人家海纳百川,所以钱财滚滚。
每次我们去谈项目的时候,金融、电信行业的用户就明确表示不用.net,为什么?人家的服务器都是Unix的,.net在这里连生存的机会都被你微软自己掐死了,我连给你分辩的机会都没有。中型企业呢?人家也是因为你的Windows服务器不争气,.net不能跨平台而弃之不用。至小型企业,或者稍微囊中羞涩一点的中型企业,.net在这里倒混得有滋有味,可惜这些企业把钱看得比命还重要,开价低得你想哭。而他们的需求也往往简单,有个内容发布系统、留言系统等差不多够了,这些东西在网上一搜一大把,而且都做得不含糊,用得着你开发吗?好不轻易有个OA的单子吧,人家小企业根本就不懂软件开发,成天变需求,这么个小单子可以把你呛得出血,人家还说怎么做这么个东西要这多么钱?这时候,我血涌上来了,当时就想全身捆着炸药包,往微软总部冲…
再来横向比较.net在各个领域的应用吧。首先,在桌面应用上,Java就难以望其项背了,用.net开发效率远高于VC,而执行效率也不含糊,你要硬说是Delphi的再生,我也一点意见没有,可还是不太成气候啊,弄弄小程序可以,可是你做产品,有用.net的么?为什么?大多数情况下要附带个.net framework包,2000以下的系统还没法用,而且很多系统功能.net确实没法完成,可以说,桌面开发上,很长一段时间仍然是VC的天下。Web应用上,J2EE势不可挡,Asp.Net尽管很优秀,但是由于整个生态环境不好,没有超强的服务器支撑,IIS在应用上差强人意,不能够跨平台,尽管在小客户,轻量级应用上,ASP.net有点人气,但这不过是螳臂挡车,所以说Asp.net要与J2EE争锋,那是关公战华雄,高下立判。还有一个重要的领域,就是移动开发了,这点我现在天天祈祷,微软可千万不要软下来了,终端应用一直是你微软的强项,目前表现还算是可圈可点,你要是.net在这方面也输给了J2ME,我只好另投名主了。