从上次发表这篇文章,到现在已经被浏览了3000次。有些问题我还是能够继续争论下去。所以,把文章有贴了出来,同时加上了其它网有的评论,使它完整。希望大家踊跃发言,没有问题是讨论不清楚的。
另外,我再次声明:我没有攻击java的意思,也没有对java程序员又任何的不敬。
--------------------------------------------------------------------------------
最近C#和java谁更好的争论已经有一段时间了,我也谈谈自己的感想。
其实单纯从语言上来讲,C#应该比java更具有优越性。为什么是应该呢?原因如下:
1) c#作为一种语言,比java语言出现晚了五年(差不多)。如果从“历史总在进步”这个观点来看,c#应该更好。这个理论在IT界并不总是成立,但考虑到微软的开发实力和经济实力,估计不会有很大的差别。
2) c#不是凭空产生的,任何一种语言都不是。C++吸取了C的长处,JAVA又吸取了C++的优点,历史就是这样进步的。而粗看一下c#的语法,简直是java的翻版。也就是说微软肯定吸取了很多java的的优点,而且做了
进一步的优化,放弃了一些缺点。据个例子来说:一个简单的字符串操作:
//java
String s1 = "aaaaaaaa";
String s2 = new String(s1);
//这是正确的,但s2和s1是同一个字符串呢,还是一个拷贝?这是一种容易引起误解的语法。
//c#
string s1 = "aaaaa";
string s2 = new string(s1);
//编译器通知错误,并且建议使用类似Clone的方法。
//c#避免了这个问题
除此之外,还有很多我们可以认为是c#由于java的地方。
上面谈到的是单纯从语言上来讲,但一种语言到底能够成功,能够成功多少,并不仅仅取决于这种语言本身。在编程语言的历史上,已经出现过几百种编程语言,其中不乏优秀的。但我们现在都没有使用,为什么?因为许多其它的因素,主要是指商业的。 有朋友说得很对,微软很会做市场,要不然他不会成为最有钱的公司。在美国经济下滑的今天,微软依然保
持了高速的发展。尤其是今年,垄断案取得了重大的进展;许多重大的商业计划的出台,如.net, xbox等等,连bill gates也说,我们从来没有像今年这样推出过这么多的新产品。对于微软的情况,我们可以从侧面得到线索。那就是在纳斯达克股市节节下滑,主要竞争对手sun, oracle, aol股票节节下跌的时候,微软的股票却上涨了80%。美国投资人对微软的信心从另外一个角度反映出微软2001-2002年的市场情况可能会非常好。
再说C#,这是微软的下个主要的平台的核心开发语言,其重要性不要于JAVA之对SUN。微软以已经花了几十亿美金,预计会有更多的美金会被花进去。可以说微软实际上把能否打败对手,在高端服务器市场的竞争上取得优势,从而决定微软将来的命运的宝压在了以C#为主要代表的.NET框架上。其来势非同小可。如果微软的市场运作没有出现很大的问题,.NET能够为微软挣的半壁江山,C#可以预见会成为很多人的编程利器。
所以我的观点,看市场对.NET的认同程度,不但可以看出C#,JAVA的兴衰,更可以看出微软,sun, oracle, aol的成败,进而看到美国乃至世界未来高科技乃至整个经济的趋势。未来的几年,如果不出意外,应该会是血雨腥风。
任何一种新的语言产生,都会受到质疑。今天java的疯狂支持者,有多少不是昨天还在抱怨java太慢,界面设计复杂的呢?我们期待C#的明天,也期待java的明天。