flame1149

博客园 首页 新随笔 联系 订阅 管理

我为什么从.NET转向Java

自从开始学习计算机以来,所接触的软件基本上都是Microsoft的产品,记得最开始使用的操作系统是MS-DOS 3.1,开发工具是基本DOS的Turbo Pascal、Turbo C、MASM、Borland C++等,进入Windows和.NET平台后,便是清一色的Microsoft工具:Visual Basic和Visual C++,直到现在最新的Visual Studio 2005。一转眼10多年过去了,有时想想自己究竟学会了哪些东西,仔细想了以后,感觉很惊讶也吓了一跳,因为感觉最为熟悉的竟然是DOS和Windows平台的API以及VB、MFC,我记得当时在学的时候把这些奉若神明,认为这就是软件。但现在我觉得自己当初的想法完全是错了,真的错了!

我无意说Microsoft的坏话,也无意贬低Microsoft的产品,相反我认为Microsoft的产品是非常好的,我只是想反思这么多年来的想法。也许是自己不够聪明吧,认为Windows就代表了软件,GUI就是当时的发展方向,Microsoft当然领导了是软件的发展潮流,所以完全跟着MS向前走,想当年MS的许多RAD工具都被熟练地使用,感觉自己完全是站在了时代的前端,不无得意之感。

有一次,不经意地看了看Java的Struts框架,看到了传说中的MVC的真真正正的实现,心里最大的感觉就是一种悲凉!自己以前引以为豪的东西,例如RAD开发工具,与之相比根本就不值一提,从Java那儿,我看到了真正的OO,看到了软件的架构和设计,而不是大量重复的代码。我明白了,以前做的东西是多么的可笑啊!

现在网上有很多人都在骂Microsoft,但我在想:这是Microsoft的错吗?当然不是!这都是自己的无知所造成的,怪就怪自己当初没有一双“慧眼”。而且在真正遇到问题的时候,也没能认真去思考,比如在学习设计模式的时候,发现很难在项目中使用的时候,也没真正去想问题出在哪儿。现在明白了,从Microsoft的工具中,真的不容易找到设计模式、框架、架构这些东西的影子,大量的鼠标操作和相似的事件处理代码占用了最多的工作时间。也许另一个原因是自己的悟性不高吧,没有看到实实在在的这些例子就不能理解这些概念。和Java真的有一种相见恨晚的感觉,但我想,只要遇到了,就还不算太晚。

回想起前两年网上流行的.NET与Java的口水仗,我当时对Java基本上没多少了解,确实也看不懂双方到底争论的是什么,其实到现在我也没看明白。我感受到的.NET与Java的区别如下:

1、我感觉语言和平台本身的区别真是微乎其微。也许是我“视力”不好吧,真没看出多少区别来(废话)。

2、因为Java以及许多开发工具是免费或公开的,而Microsoft的东东基本上都是要收钱的,所以使用的人数完全不一样。这个区别在国内可能没起什么作用,因为大家早已习惯用盗版了,但在国外,比如USA,作用肯定就大了。

3、Java社区和.NET社区的数量和质量完全不同。由于Java是Open的,用的人多,而且有不少的高手都在使用,并且组成了许多免费的开发社区,产品也当然是免费,所以就会有越来越多的人加入进来,大家在一起开发的结果就是水平都得到了提高。 .NET的免费项目真的不多,用.NET基本都出于商业目的,真没见过有多少人用.NET进行学术研究,所以圈子相对比较封闭,大家能够敞开交流的机会也不多,跟Java社区完全是两个概念。

其实,Java与.NET的区别不在它们的本身,最大的区别在于他们背后的力量,相信大家都能感觉得到,我就不多说。

我转用Java的原因就是出于上面的理由,希望能够在Java的社区里面学到关于框架、模式等东东。再次郑重声明:绝没有认为Microsoft的东东没有Java的好,也没有劝说他人转投Java的想法。以上都是自己的理解,仅供参考与讨论。



posted on 2007-04-04 18:04  淡定下来  阅读(798)  评论(1编辑  收藏  举报