本人学习使用Java也算是有几个年头了。对Java可说是又爱又恨,爱它的跨平台和广大的开源支持,恨它的速度慢、耗内存,和朝令夕改般的混乱。估计广大同道也多是如此吧?
本人水平有限,对其底层运作的机制基本上是不懂的。只是看Think in java上的介绍,Java的内存管理与垃圾回收机制是相当耗费资源的。
使用Java的IDE,只要是功能一复杂,速度和内存消耗就令人忍受,不论是JB、WSAD、JDeveloper,还是Eclipse,全一样。
与之相比,.NET在此方面的表现就可说是令人惊叹了。在普通配置的机器上,往往连开几个Visual Studio都不会导致明显的问题,同样身为JIT,真不知MS是怎样做到的?
联想到过去的VJ,本人甚至怀疑MS根本就是在误导Sun的底层开发,但Java在Linux上的速度与内存表现同样不佳,这样就很令人失望了。无疑,Java的开放性与充分的OOP是卓越的,甚至目前仍然是最好的;可惜,世间美好的事物也许总是有缺陷的,多年过去了,Java的速度与内存消耗仍旧是其硬伤。
在开发效率上,Java也是广遭诟病。对于大多数的工程,使用Java也许是最慢的。据很多牛人的说法,Java开发高级企业应用是高效的。可惜IT界的大多数应用其实都是中小应用,大多数开发人员也是做中小应用,那么是否意味着我们就永远只能用这把牛刀去杀蚂蚁?
其实,从学习研究的角度上讲,Java无疑是最值得花费时间与精力的。经过多年开源界的狂热,其对OOP的阐释之精深广泛可说是NO.1。具有讽刺意味的是,纯正的OOP本来就是为大幅提高软件开发效率而产生的,真正熟练掌握OOP的确可以达到这样的目标。可惜当前真正熟练掌握OOP所需要的时间、精力、智力也许远远超出了广大同道的预算。最终令人扼腕的事实就是,多数人在熟练掌握OOP之前就不得不放弃了这样的努力。这与J2EE所反复宣扬的初衷应该是背道而驰的。
回想起当年使用VB、PB、Delphi日子,其实是很惬意的。即使现在看一看那些代码,以纯正OOP的观点看来,称之为垃圾都不为过,可是它真的能用!即使是所谓“写完即扔掉”,但很easy,生产效率的确很高!对于牛人来说,可视化编程只能看作是小孩子的玩具,可是大多数程序员正是用这些玩具支撑起了软件业的天空!
无庸置疑,J2EE这类的牛刀的确是可以打造出艺术珍品,而可视化工具这类的玩具也许只能批量制造日用品。但是,绝大多数人类正是依靠日用品过活!
MS的垄断和伎俩是惹人生厌的,但MS正是生产日用品的公司,而且它的日用品最容易使用,所以它如此成功。
.NET现在与Java相比只能算是个毛头小伙,但小心,如果现今的统治者(J2EE)还是摆出一付学院式的傲慢,对程序员的苦恼置之不理的话,那么它的末路也就不远了(正如当年的Unix与Dos、Windows)。
开放与免费对于我们这样的穷国是非常重要的。可是如果当某一天,多数人发现在开源领域浪费的时间与精力远远超过选用商用软件成本的时候,只怕会义无反顾地投向原本所痛恨的MS!
忧哉。