两强相争,谁为王者?
——Java vs. .NET
Bruce Eckel著 clouds_reaching译
三五年内,Java和.NET这两个平台,谁会成为王者?
有以下两个要素必须加以考虑:首先,Java拥有大批热情的追随者,他们为学好Java语言投入了大量时间。Java也很好地满足了他们的需求——至少在服务器端程序和部分应用程序上是如此。还有,Java有着平台无关性。随着Linux的更加流行,以及Apple已走向OSX(现在支持Java了——而且还支持得很好),平台无关性变得更加重要。
其次,Microsoft依旧是桌面领域的王者。很多喜欢过Microsoft的人现在改变了态度,但他们还在用Microsoft的产品。如果你试图开发出一个畅销产品,却不屑于让它兼容Windows平台,那你未免太过疯狂了。对,Java也能工作在Windows平台下,可看上去和Windows很不一样,足以把某些用户吓跑。
还有,C#是决不可轻视的(第一次见到它时,我正是如此,主要是由于以前Microsoft在实现C++标准时的所作所为实在令人厌恶)。C#是Microsoft在程序语言领域里做过的最大好事——设计合理、架构出色。我得承认,纯粹地从商业角度出发,在开发公司的至关重要的产品时,我会认真考虑用C#来写(至少,在将临的下个Windows版本中,按道理是会包含一个.NET运行环境的)。
毫无疑问,C#是Java面对的第一个真正对手,Sun公司已经着手回应。JDK 1.5将会包含直接由C#启发得来的特性。他们在Java One中发布了一些新的桌面开发系统,试图以此来让Java比VB更易于开发GUI(图形用户界面)应用程序。出于上面的情形,我敢说,C#只会给Java带来好处,并不会有多大危害。另外,IBM的Eclipse开发环境足以匹敌Visual Studio,它的SWT也比Swing更适合Windows环境,因此你完全可以用Java开发出用户熟悉的界面。
我在上面讲了这么多,无非是想让大家明白,完全的胜利者决不会马上产生。它们之间会有一场战斗,不过,“战斗”一词最理想的意义是这样的:两个公司都会使出浑身解数来吸引程序员,那也就是说,他们会竭尽全力地让我们程序员的生活变得更加舒适。最理想的结局就是两种语言(或平台)都在游戏中生存下来,而战斗却继续下去。你可能要问,Java(或Sun公司)怎么可能斗得过Microsoft呢?请注意下面的事实:IBM公司每年在Java上投入的资金是Sun公司的十倍左右。即使Sun公司拿不出新的、有远见的计划并走向下坡,IBM也会接过头盔,继续支持Java,推进Java。战争将会继续,这对我们是有利的,可能到了最后,你就可以随自己的需要挑一种语言了。