Java vs C# —— 选择C#还是Java,归根到底还是平台问题
2006-10-12 00:07
931 查看
作者: 周靖 译
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和其他平台上运行,但那一天尚未到来。就目前来说,请先选好平台,再选择语言。
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和其他平台上运行,但那一天尚未到来。就目前来说,请先选好平台,再选择语言。
相关文章推荐
- 选择C#还是Java归根结底是平台问题
- Java vs C# —— SOA平台之争:Java EE,还是.NET……
- Java vs C# —— J2ee与ASP.NET平台电子企业的两种构想(8)
- 选择JAVA还是C#
- 老菜鸟致青春,程序员应该选择 Java 还是 C#
- 不管是搞c#还是搞java,都应该搞懂的一些问题
- Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(7)
- Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(6)
- Java vs C# —— 浅析J2EE与.NET平台优劣
- 是C#比Java好还是你自己的问题
- 面对Java开发,是自学,还是选择参加培训?我对此问题的一些看法
- Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(5)
- 老菜鸟致青春,程序员应该选择java 还是 c#
- Sun将大举裁员开源项目或遭受巨大影响,多年之争的到底学Java还是C#,.net平台好还是Java平台好终于有了结果,.net终胜出!
- Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(4)
- 关于.Net与J2EE的比较,到底用微软平台还是Java平台的问题
- 老菜鸟致青春,程序员应该选择java 还是 c#
- 老菜鸟致青春,程序员应该选择 Java 还是 C#
- Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(3)
- 关于.Net与J2EE的比较,到底用微软平台还是Java平台的问题