我们开创OSCON Java的一个主要原因就是:Java的开源生态体系是健壮、健康的。在过去的十年间,有几个项目已经被广泛接受,而且在Java的世界中产生了深远影响,深入到软件开发,其中有的甚至与用户的日常生活息息相关。
Junit
在过去十年间,肯特·贝克(Kent Beck)和埃里希·伽马(Erich Gamma)把贝克在Smalltalk中使用的单元测试移植到Java之后,Junit已经成为主流测试驱动开发中最可靠的单元测试框架。后来单元测试在.NET,C,Python,Perl等众多流行的语言中实现了。
Eclipse
在21世纪早期,Java及其API正在完善时,Eclipse集成开发环境提高了程序员的开发效率,并且促进了Java生态体系的发展。 Eclipse也是第一个使用SWT UI工具包的第一个大型项目,给SUN公司的Swing带来强有力的竞争,同时,这也表明Java程序可以提供丰富的原生接口。Eclipse现在提供了 丰富的基础供平台供应商集成,已经朝“成为通用IDE”的目标迈进。
Spring
Spring框架提高了Java开发者的效率,在掌握产品特性和简单性方面扮演着重要角色。Spring给Java开发者提供了具有数据读取、事务 管理等常用应用程序功能的一组服务。作为SUN公司Java Beans系统的竞争对手,Spring为Java应用程序提供了另一条可选的简单的路,同时也给Java应用程序开发塑造了一种健康的竞争氛围。
Solr
很多年来,Solr服务器和它所封装的Lucene搜索引擎为web和企业的应用程序的搜索功能提供了简单而实用的解决方案。能通过HTTP快速访 问Lucene搜索库是Solr的特长所在。这使得它还被应用到包括除Java之外别的语言来实现的各个系统中。比起其他的项目,Solr提供了快速的搜 索来供现代web应用程序选择。
Hudson and Jenkins
原本被称为Hudson,现在也叫做Jenkins,这个持续集成工具是Java开发工具设置中关键的一部分。Jenkins为软件项目提供自动构 建和测试,持续的JUnit步骤使得在java平台上的开发轻快便捷。尽管现在Hudson和Jenkins像刀叉一样彼此整合在一起,但是他们依然重视 Kohsuke Kawaguchi的工作——致力于创造一个世界级的持续集成平台,并且优化java开发的质量。
Hadoop
这个著名的MapReduce模型是用Java实现的,它是驱动大多数“大数据”系统的源动力。由于可以降低从大数据中抽取有价值的数据的成 本,Hadoop已经被广泛使用。很多像Facebook、Yahoo这样的大公司使用它来处理个人和广告业务。Linux在价格低廉的硬件上驱动大型的 网站,同样的,Hadoop在软件层面上的错误处理使得大规模分布计算成为可能。Hadoop和上文提及的Lucene都是Doug Cutting的劳动成果。
Android
关于Java属于SUN还是Oracle的争论从未休止。Google选择Java作为旗下非常流行的Android移动操作系统的开发语言,无疑 重新引起了整个开发者社区的关注。由于要将JVM字节码转换成Dalvik(Dalvik是专门为移动设备优化的虚拟机)字节码,Android程序要多 执行一步。为了开发出更多的Android应用程序,Google利用Eclipse的优势来给软件开发者提供一个成熟的开发环境。
Oracle声称,Android侵犯了Oracle持有的多项专利,并因此和Google卷入了当前的一场官司。无论结果如何,Android无疑吸引了众多的开发者,在延续使用Java开发客户端软件方面做出了巨大贡献。
英文原文由Edd Dumbill发表在pixelstech。本文由赖信涛首次发表在Importnew。