Java
Java语言是一门非常纯粹的面向对象编程语言,它吸收了C++语言的各种优点,又摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面相对象编程语言的代表,极好的实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程开发。
java前生今世
Java语言众所周知啦,那个咖啡的图标一直以来让人津津乐道。其实Java语言的诞生有一定的戏剧性,并不是经过精心策划、制作,最后产生的划时代产品,从某个角度来看,java语言的诞生完全是一个误会。
1990年年末,Sun公司预料嵌入式系统将在未来家用电器领域大显身手。于是Sun公司成立了一个Green计划,准备为下一代智能家电编写一个通用控制系统。小组最初使用C++语言,但是许多成员发现C++和可用的API在某些方面存在很大问题,而且小组的使用的是嵌入式平台,可用的系统资源很有限,C++太复杂,更缺少垃圾回收系统、可移植性、分布式和多线程等功能,so,boom!Java出来了!想的美!java还没有出来,出来的是一种名叫Oak的语言,由于Oak商标被人注册了=-=,后来才该名字叫Java。
现在Sun公司被Oracle公司收购,Java由于很强大的跨平台,简便等优势仍被大幅使用。现在我们的是已经很成熟的Java开发技术了。
Java竞争对手简介
C#
当年Microsoft也一度加入到Java语言阵营中,曾经在Visual Studio中添加了Visual J++,希望大力发展java。然而Sun公司就和他打官司喽,最后你懂得咯,Microsoft就自己干自己的,退出了.NET平台,并发布了C#语言。
C#和Java都对传统C++艰深、晦涩的语法和语义进行了改进。在语法方面,两者都摒弃了C++中函数及其参数的const修饰、宏替换、全局变量和全局函数等华而不实的地方;在继承方面,两者都采用了更易于理解的单继承和多接口的实现方案;在源代码组织方面,都提出了声明与实现于一体的逻辑封装。
相对于Java语言,C#也有其独特的优势:Microsoft提供的Visual Studio开发平台可以极好的提高C#程序的开发效率,而且Microsoft要比Java更善于利用Windows平台,当使用C#创建Windows服务、记录windows事件日志、访问windows注册表时,.NET确实更方便。
Java的设计宗旨是独立于任何平台,自然不会提供太多的windows特性。但这也正是Java语言的优势:跨平台。对于一个企业应用而言,永远无法确定这个应用需要在怎样的平台上运行,如果你一旦选择了C#语言,那么你的应用就只能局限在windows平台上。因此,对于一个开放式的企业应用而言,通常会选择Java作为开发语言,而不是C#。
Ruby
Ruby是由日本人松本行弘着手研发的,历时两年,发布第一个版本。ruby是一种非常简洁的解释型语言,一种纯粹的面向对象编程语言,甚至比Java更纯粹--在Java语言里,还有基本数据类型等不是对象的变量,而在Ruby语言里,一切都是对象。
相对于Java,Ruby语言最大的特点就是简洁,首先它是一种弱类型的语言,变量无需声明,没有类型,因此Ruby的变量可以保存任何类型的数据;其次他还提供了强大的正则表达式支持,并支持运算符重载等等等等;其次Ruby也是完全跨平台的,可以再任何操作系统上运行。
2004年,Ruby语言阵营里出现了一个优秀的MVC框架:Ruby On Rails,这个开发框架被宣传成现有企业框架的一个替代品。它是一个真正意义上的敏捷开发框架,他提供了大量代码生成器,通过使用这些代码生成器可以极好地提高应用的开发效率。
关于Ruby框架和Java EE平台其实是各有优势的。Rails平台的简洁性、易用性会在中小型应用上发挥出更大的吸引力;但Java EE平台提供了更多的选择,适合对技术有精准把握的开发者,用于解决有复杂需求的大型系统企业级应用。