自从.net问世以来,程序员都很关心的一个问题是「该学java或.net」。我也在挣扎,该「该继续java的研究,或者该开始准备培养.net的知识」。
当然,最好是能两者兼顾,但是每个人的时间都很有限,想要兼顾两者,其实不太容易。投入在.net的时间越多,所能花费在java的时间自然就少了,反之亦然。在信息爆炸的时代,重要的不是信息的取得,而是信息的抉择。信息太多,时间太少,如果不能慎选适合的技术,只会平白浪费许多时间,斫丧自己的竞争力。
由于我喜新厌旧的个性使然,过去这两年半,我着实花了不少时间在.net上,对于.net的认识越来越深,也修正了对于.net原先的一些误解,渐渐的认同.net的许多技术理念。姑且不论我们对于微软是褒是贬,单纯就技术本身来看,.net的确是很卓越的。
我并不是唯一一个这样想的人。以「thinking in java」等技术书籍广受欢迎的bruce eckel也是如此。他原本认为c#和.net只是java的模仿者,并无新意,但是在深入了解之后,才发现c#和.net其实是改良版的java,不管在各方面,都有比java更突出之处。当我看到bruce eckel说出这样的话,我感觉他说出了我的心声。
下面,我试图从许多不同的角度,简单地比较java和.net。
从技术的观点
通常新的技术会比旧技术更好,因为新技术可以从旧技术学到优点,且新技术可以摒除旧技术的缺点。net比java诞生的时间晚了六年,许多方面都比java先进,当然是无庸置疑。
我的意思并不是java这六年停滞不前,事实上,java一直在进步中,只是有许多缝缝补补、修修改改的地方。例如,xml是在这六年之间出现的技术,所以.net对于xml的整合可以说是天衣无缝,但java是后来才把xml整合进来,且整合的程度比不上.net。
从历史的观点
以史为镜,可以知兴替。如果你了解近二十年的软件产业发展史,你会发现微软挫败的机会很小,即使是在头几场战役失败,也会在整场战争中获胜。换句话说,.net挫败的机会不大。在office软件大战中,wordperfect、ami pro、lotus 123如今安在?在操作系统大战中,os/2也已经销声匿迹。在浏览器大战中,navigator如今只整剩下小小的疆土。你一定可以举出更多这样的例子。
从市调的观点
分析机构如meta group和idc皆预测,在windows server 2003推出之后,未来几年市占率会大幅提高。我认为,在longhorn推出之后(2006年?),pc更是会全面.net化。由于「精通」.net知识可能需要费时两三年以上,技术人员应该尽量提早学习.net以为因应。
三年前(2000年)学习.net恐怕有点太早,三年后(2006年)学习.net恐怕有点太晚,而现在学习.net正是时候,不会太早,也不会太晚。学会之后,可以立刻投入市场对于.net技术的人力需求。
从行销的观点
任何人都不能否定微软行销功力的厉害。平面的行销,包括在电子时报、it home等信息媒体,甚至连商业周刊等非信息媒体,都看得到相关的广告。动态的行销,包括pdc、teched.、修练讲座、产品发表会…等活动,直接走入人群,接触客户。电子的行销,包括msdn中英文网站、微软technet flash新闻信…等,提供技术新知。
另外,还有多得拿不完的教学光盘,读不完的线上文件,看不完的microsoft press出版品…。我发现,微软的作法和另一家公司的作法大相径庭。微软给我们一堆技术信息,要什么有什么,但另一家公司却常常把信息当成「传家宝」,舍不得释放出来给大众,连透过内部管道都还不见得拿得到,「好象很不希望有人学习他们正大力推广的技术」。
从销售指针的观点
关于某个城市的消费者物价指数,麦香堡指针(bigmac index)是一个很有名也很简易的评估指针。我也发明了一个类似的指针,称为天珑指针(tenlong index),可以用来评估it技术的热门程度。天珑书局是台湾最大的it图书门市,它的技术书籍销售量,对于判断技术的热门程度,有一定程度的参考价值。
2002年全年和2003年上半年,天珑书局在.net书籍的销售量都不高,但是在2003年下半年之后,.net书籍已经有相当不错的表现,这意味着最近准备采用.net技术的公司已经增加了。
我记得在java推广初期,由于大家对于java认知不够,所以对于java有许多fud存在。现在微软在推广.net上,也遭遇到许多fud,这是微软目前必须极力消除的障碍。如果你对于.net也存有这些fud,你不妨尝试着去破除这些fud,就如同七八年前破除java的fud一样。你将会发现,就目前来说,.net是一个非常有潜力的技术,值得投入。
新闻热点
疑难解答
图片精选