您的位置:首页 > 编程语言 > Java开发

Java可能输给C#的一些理由

2010-12-05 15:05 211 查看
这几天什么也不想干,突然想起来玩几天Java弄个简单的JSP网站试试,看看J***A的开发如何,折腾了有两三天,给我的一个感觉就是搞Java开发比C#“难”,这个难也未必就是技术难度,涉及到各个方面,咱也不是什么专家也不好说评价,就是谈一下体会吧,也不一定全对,有发现的就留个言说一下吧。

Java与C#都是为解决跨平台问题而设计的一种编程语言,说它们是编程语言倒不如说是两个编程平台,因为两者不仅可以进行普通控制台与UI程序的设计,而且可以进行WEB应用开发以及程序库开发等多种应用,都是运行在一个中间平台上JRE或CLR,如果从竞争意义上说,两者应该算是死敌,但Java被C#压住的可能性比较大,原因是多方面的。

一、语言本身
C#属于新生语言,比起Java要年轻得多,当然C#可以参考的实例也比较多,它吸收了C、C++、Java、Visual
Basic等语言的优点,相比较而言从特性、性能等方面综合优势就比Java要大。从功能上讲,C#是基于.NET平台的,它几乎可以完成所有的Windows编程任务,这一点Java好像也没什么劣势,而基于C#的WEB开发模型ASP.NET就比基于Java的JSP要有优势。

C#引入了代理(Delegate)与事件(Event)的概念,这使得对于进行事件驱动的程序开发是非常方便的,而UI程序不论是LINUX还是WINDOWS都是事件驱动,更何框,C#使用代理和事件还可以进行控制台程序甚至WEB后台程序的开发,这些特性为编程带来了极大的使利。

C#改进了Java中的接口概念。Java中的接口可以包含数据成员,但默认就是static和final的,而C#中不允许定义数据成员,这更符合接口的概念。

C#中属性(Property)的引入。C#引入了Property的概念,更有利于面向对象的程序设计,方便进行封装,这比起Java的getX和setX方法要方便很多,用习惯了C#的属性再去开发JavaBean,会感觉这种方法真累,而且显得代码很乱。

C#3.0又添加了对LINQ的支持,这样对C#进行大量数据的处理与查询能力很有帮助,进行数组或对一些容易类的操作就跟用SQL进行数据库操作一样,编码效率很高。

而且从性能上讲,C#的效率比较高,我曾经在Vista下进行C++与C#浮点运算速度比较,C#居然比C++高出很多,这可能是因为C++在Vista下也是托管代码的缘故吧。

对于进行WEB应用开发,ASP.NET的服务器控件使用要比JSF方便,这或许也是由于VS比J***A的开发工具好用的原由,实际两者的开发模式很相似;ASP.NET主要基于.NET
Framework,而.NET
Framework可以很容易地与IIS集成,而IIS又集成到WINDOWS操作系统中,具有友好的UI管理界面,这比起安装支持JSP的服务器要方便很多。

二、开发工具

C#有Visual Studio的大力支持,进行各种应用程序的开发都非常方便,这比起Java开发IDE的杂乱现状要有很大优势。特别是Visual
Studio
2005集成了WEB服务器、UML建模工具、调试器、强大的编辑器、文档生成工具等相关工具,其集成度和易用性是任何一款Java开发工具所不能匹敌的,从快速开发的意义上讲,C#有着绝对优势。

三、其它

从学习资源上来讲,C#有MSDN大型的帮助文档,几乎可以查到需要解决的任何问题,并且在新闻组有大批的MS工程师进行在线解答,也可以与网页一起讨论。

从入门上讲,由于Java开发工具的混乱及易用性上的缺限,可能有一批开发学习编程的人感觉Java不理想,故而去选择C#。

另外,当前使用WINDOWS的用户比起使用Linux等其它操作系统的用户来讲要多出很多,进行WINDOWS程序开发的需要也要多出很多,而使用Visual
Studio与C#进行WINOWS编程,其工作效率是J***A不可比的,特别是在最新的操作系统VISTA上,C#的这种优势更是明显。

以上是我对C#与J***A的一些浅薄理解,如有不对之处欢迎网友批评指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: