疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java的竞争对手及各自优势


 

         Java语言目前是最流行的面向对象编程语言,与Java类似的程序设计语言还有如C#,RubyPython等,它们在某些方面有自己的独特优势,因此都是Java语言有力的竞争者。

C#简介和优势

         当年Microsoft也一度加入到Java语言阵营中,Microsoft曾经在Visual Studio中提供了Visual J++。正当Microsoft尽力在Visual J++基础上拓展Java功能,并使之与Windows操作系统紧密结合在一起时,Sun公司对Microsoft提出法律诉讼,称其违反了Java许可证协议中的条款,最终的结果是微软公司不得不停止了Visual J++产品的开发。199810月以来,Microsoft就不再发布新的Visual J++版本,而且导致Microsoft一直站在Java阵营的对立面,甚至在Windows XP系统中不再提供Java运行时环境的支持。

         接下来,Microsoft推出了Dot Net平台,并发布了C#语言,无论从哪个角度来看,C#程序设计语言都是MicrosoftJava语言的反击。自C#诞生之日起,关于C#Java之间的论战便此起彼伏,至今不辍。从技术的角度来看,C#Java都是对传统面向对象程序设计在组件化软件时代的革新成果,可谓殊途同归,两种编程语言甚至有“90%的重叠”。

         JavaC#都对传统C++艰深、晦涩的语法和语义进行了改进。在语法方面,两者都摒弃了C-++中函数及其参数的const修饰、宏代换、全局变量和全局函数等华而不实的地方;在继承方面,两者都采用了更易于理解的单继承和多接口的实现方案;在源代码组织方面,都提出了声明与实现于一体的逻辑封装。

         相对于Java语言,C#也有其独特的优势:Microsoft提供的Visual StudioC开发平台可以极好地提高C#程序的开发效率,而且Microsoft要比Java更善于利用Windows平台,当使用C#创建Windows服务、记录Windows事件日志、访问Windows注册表时,Dot Net确实更方便。大部分时候,Microsoft已经提供了Windows任务相关的大量基类,允许程序员通过向导、拖放等操作来快速开发应用,因此比较容易使用。

         Java的设计宗旨独立于任何平台,自然不会提供太多的Windows特性。但这也正是Java语言的优势:跨平台。大部分时候,对于一个企业应用而言,永远无法确定这个应用需要在怎样的平台上运行,如果你一旦选择了C#语言,那么你的应用就只能局限在Windows平台上。因此,对于一个开放式的企业应用而言,通常会选择Java作为开发语言,而不是选择C#.

Ruby简介和优势

         Ruby语言由日本人松本行弘(英译:Yukihiro Matsumoto,外号Matz)1993年起开始着手研发,经历2年时间,他发布了Ruby语言的第一个版本:0.95版。据松本行弘的描述: 他一直想发明一种语言,这种语言既能进行高效开发,又能让开发人员享受编程的快乐。

         事实上,Ruby确实是一种非常简洁的解释性语言,它是一种纯粹的面向对象编程语言,甚至比Java更纯粹(Java语言里,还有基本数据类型等不是对象的变量,但在Ruby语言里,一切都是对象)。除此之外,Ruby还提供了许多额外的便捷功能:闭包、迭代和集合等。这些都是为了达到Ruby语言创始人的梦想:Ruby开发者能享受编程的快乐。

         相对于Java语言而言,Ru勿语言最大的特征就是简洁:首先它是一种弱类型的语言,变量无须声明,变量没有类型,因此Ruby的变量可以保存任何类型的数据;其次它还提供了强大的正则表达式支持,并支持运算符重载;除此之外,Ruby也提供了许多额外的便捷功能:如闭包、代码块、迭代器和集合等。

         Ruby语言还有一个重要的优点:它也是完全跨平台的,可以在任何操作系统上解释执行。

         2004年,Ruby语言阵营里出现了一个优秀的MVC框架:Ruby On Rails,这个开发框架被宣传成现有企业框架的一个替代品。Ruby On Rails框架是一个真正意义上的敏捷开发框架,它提供了大量代码生成器,通过使用这些代码生成器可以极好地提高应用的开发效率。

         相对于Java领域的众多开发框架而言,Ruby on Rails提供了一个“一站式”的解决方案,Ruby On Rails框架提供了Web层的MVC框架、持久层的ORM等解决方案。借助于Ruby这种动态语言的优势,整个应用的代码相当简洁,因而使得Ruby On Rails应用的开发非常快速。

         关于Rails框架和Java EE平台,其实是各有优势的:Rails平台的简洁性、易用性会在中小型应用上发挥出更大的吸引力;Java EE平台则提供了更多的选择,适合对技术有精准把握的开发者,用于解决有复杂需求的大型企业级应用。

Python的简介和优势

         PythonGuido1989年年底开发,Python语言是基于ABC教学语言的。ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是,ABC语言并没有获得广泛的应用,Guido认为是非开放造成的。

         Guido决心在Python中避免这一错误,因此Guido加强了Python和其他语言如C, C++Java结合性。同时,他还实现了许多ABC中闪现过但未曾实现的东西。Python第一个实现是基于Mac机上。PythonABC语言发展而来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shellC的习惯。

         Python是一种面向对象的解释性编程语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。Python语言具有简洁而清晰的语法特点,适合完成各种高层任务,几乎可以在所有主流操作系统上运行。

         虽然Python也是一种解释型的脚本语言,但一些大规模软件开发计划,例如Zope, Mnet, BitTorrentGoogle都广泛地使用了该语言,而Python的支持者喜欢称它为高级动态编程语言,因此Python绝非JavaScript等只能处理简单任务的脚本语言所能比拟的。

         Python的两大特色是可扩展性和清晰的语法:Python新的内置模块(module)可以用CC++写成,也可为现成的模块加上Python的接口。Python的设计者在设计它的时候认为:对于一个特定的问题,只要有一种最好的方法来解决就好了,因此Python甚至不是一种格式自由的语言,例如它要求if语句的下一行必须向右缩进,否则不能通过编译。

         Python在编程领域的占有率一直处于稳步上升之中,根据最新的数据,Python排名第七。前六名分别是Java, C, VB, C++, PHPPerl。最近,微软也将Python纳入Dot Net平台,相信Python的未来会更好。