`
isiqi
  • 浏览: 16077904 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Java vs C# —— 选择C#还是Java,归根到底还是平台问题

阅读更多

作者: 周靖 译
Friday, May 16 2003 10:45 AM 镜头倒退回2000年:我在某家百分之百纯Java软件公司领导一个产品的开发。电话铃响了。是Tim打来的,他告诉我微软准备发布一种名叫C#的新语言。毫无意义的工作;他们会被远远抛在后面,我回答道。我认为Java已深入企业,微软不大可能有分一杯羹的机会。

快速前进到今天。现在,我同时领导着几个开发项目,几乎全部采用C#。发生了什么事?最重要的原因在于,我要做的软件只需在Microsoft Windows平台上运行!

我认为,任何软件程序要想同时在多种平台上运行,目前惟一的选择就是Java。之所以说“目前”,是因为未来在非Windows平台上使用的CLR可能会变成熟。其中一些已在开发,只是暂时谈不上“成熟”。

所以假如移植性是你要优先考虑的,那么我提议优先考虑Java而不是C#。但如果你只是为Windows平台写程序,则强烈建议使用C#。下面会解释理由。


生产力是关键

当然也可用Java为微软平台开发应用程序。但基于“生产力”这一非常简单的理由,我认为更明智的方案是选择一种.NET语言。微软要比Java更善于利用Windows平台。创建Windows服务、写入事件日志、调试SQL Server存储过程、访问注册表、操纵COM——做所有这些工作时,就开发速度来说,.NET都要优于Java(当然这并不能证明C#要比Java好)。微软已经做好了完成基于Windows的所有任务的类,而且通过向导、拖放和指点操作,它们极易使用。


Java的设计宗旨是独立于任何平台,所以自然不会配套提供太多的Windows特性。Java开发者在实际用过.NET类之后一般都会大流口水;而且有玩笑讲,由于.NET开发是如此简单,以至于微软让许多老资格的开发人员都失了业。


.NET的决策

现在有许多人在争论两种语言在技术上的优劣,但这种争论大多数时候都是没有意义的;你基本上可用两种语言做同样的事情,只有少数情况例外。所以就目前来说,具体应选择什么语言,只需回答以下问题就可以了:“应用程序是否只需要在微软平台上运行?”如果答案是肯定的,那么请选择一种.NET语言——主要是C#。


记住,我们最终无疑会看到,用.NET写的应用程序也能在Linux和其他平台上运行,但那一天尚未到来。就目前来说,请先选好平台,再选择语言。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics