Seven Java projects that changed the world

Celebrating a decade of game-changing Java software.

O’Reilly is celebrating the release of Java 7, and our inaugural OSCON Java conference: July 25-27 in Portland, Ore.</p

Java’s open source ecosystem is strong and healthy, one of the primary reasons for our creation of OSCON Java. Over the last decade, several projects have traveled beyond mere adoption and had effects dominating the Java world, into software development in general, and some even further into the daily lives of users.

JUnit

Ported to Java by Kent Beck and Erich Gamma from Beck’s work in unit testing in Smalltalk, JUnit has been largely responsible for popularizing test-driven development over the last decade. Many implementations have been created, in .NET, C, Python, Perl and just about every language in popular use.

Eclipse

As Java and its APIs matured in the early 2000s, the Eclipse IDE provided a way for programmers to be productive and negotiate the growing Java ecosystem. Eclipse was also the first major project to use the SWT UI toolkit, providing important competition to Sun’s Swing and showing that Java programs can provide a rich native interface. Eclipse has evolved toward a goal of being a universal IDE, and it now provides a rich foundation for platform vendors to integrate with.

Spring

The Spring Framework has played an important role in enabling Java developers to be productive, managing a balance between simplicity and features. Spring gives Java developers a set of services providing commonly used application functionality such as data access and transaction management. As a competitor to Sun’s Enterprise Java Beans system, Spring enabled an alternative and simpler path for Java applications, as well as ensuring a healthy competition of ideas in the way Java applications are constructed.

OSCON Java 2011, being held July 25-27 in Portland, Ore., is focused on open source technologies that make up the Java ecosystem. (This event is co-located with OSCON.)

Save 20% on registration with the code OS11RAD

Solr

The Solr server, and the Lucene search engine it encapsulates, has been for many years a simple and practical solution to providing search capabilities to web and enterprise applications. Solr’s genius is in providing HTTP access to the powerful and fast Lucene search library, enabling it to become a part of any system, regardless of whether it is implemented in Java or not. More than any other project, Solr has ensured that good search is a checkbox item for modern web applications.

Hudson and Jenkins

Originally developed as Hudson, and now also as Jenkins, this continuous integration tool is a key part of a Java development setup. Jenkins provides automated build and testing of a software project, continuing in the footsteps of JUnit in enabling agile development on the Java platform. While both Hudson and Jenkins persist for now as forks of each other, it doesn’t detract from the work of Kohsuke Kawaguchi in creating a world-class continuous integration platform and so enhancing the quality of much Java development.

Hadoop

This Java implementation of the famous MapReduce model is the powerhouse that has enabled most “big data” systems. By lowering the cost of extracting value from large data sets, Hadoop has made practical the personalization and advertising businesses of Facebook and Yahoo, and many other companies. In the same way that Linux enabled large websites to be built on cheap hardware, Hadoop enables large-scale distributed computing by handling failure at the software level. Both Hadoop and the above-mentioned Lucene are the product of the work of Doug Cutting.

Android

Controversy is never that far from Java, whether the custodian be Sun or Oracle. Google’s choice to use Java as the programming language for its massively popular Android mobile operating system has led to a renewed interest in the language from whole new communities of software developers. Android programs undergo a further step to convert JVM bytecode to Dalvik bytecode — Dalvik being a virtual machine optimized for mobile devices. Google has been able to leverage Eclipse to provide software developers with a mature development environment for creating Android applications.

Oracle and Google are currently engaged in a lawsuit over a claim that Android infringes on multiple patents held by Oracle. The results of that suit notwithstanding, Android has done much to recruit developers and perpetuate the use of Java in client-side software development.


There’s still time left to register for OSCON Java. See you in Portland, 25-27 July!

Related:

tags: , , , , , ,

Get the O’Reilly Programming Newsletter

Weekly insight from industry insiders. Plus exclusive content and offers.

  • http://freeldssheetmusic.org/choir-arrangements roger

    HotSpot JVM improvements, I’d say :)

  • d33j

    IntelliJ was doing that stuff before eclipse iirc.

  • http://gplus.to/tinhdinh Tinh T. Dinh

    So, what about Hibernate, Struts, Tomcat,..ect? Didn’t it change the world? I don’t think with only 7 projects listed here can say about ‘changed the world’. I believe that it must be estimate 20. Do you think so?

  • http://www,rahmannet.net Reza Rahman

    I guess the open source fetishism should come as no surprise coming from O’Reilly, but to forget about Hibernate and Struts? The fundamental game changers in Java is the JVM itself (including ideas like annotations), the idea of declarative services/server-side Java/ORM brought to the mainstream by Java EE and the idea of running Java on limited resource hardware introduced in Java ME.

  • http://wrongnotes.blogspot.com Charlie Hubbard

    What? Why isn’t Tomcat tops on that list? And Ant? Some of these projects are pretty new relative to those I mentioned. I’d have to argue Tomcat and Ant blazed the trail that made those others more likely because it help establish the Open Source community around Java.

  • Edd Dumbill

    Thanks for the comments everyone. All of the projects you mention are also very worthy. In particular I did strongly consider Tomcat. But heck, nothing about this article implies these are the *only* 7 important projects. Just ones that might help people both inside and outside of the Java world understand the importance open source has played in the ecosystem—many of these projects changed software development outside of the Java world alone.

  • http://www.profeval.com Derrick

    Android isn’t a java “project”, its a particular variation of the platform and language.

  • Engineer

    Of those, only Hadoop Solr changed the world for the better.

    Android is a blatent ripoff of another companies innovative work, based on a virtual machine that is a blatent ripoff of the java VM.

    It is the very definition of a pirated product.

  • http://twitter.com/MOB_i_L Mikael O. Bonnier

    I think Azureus – now called Vuze – Bittorrent Client is the most impressive Java application. In a time when almost no one was using Java on the client side, Azureus was doing the heavy lifting. Then came Java ME and, later, Android apps. I developed my first Java applets in 1995 and they are still very popular and have not been recompiled for 15-16 years. I’ve thought about updating them to Java 1.1.

  • Alexander B.

    JSF did change the world – it is no more pleasure to live in

  • http://drcoddwasright.blogspot.com Robert Young

    Engineer says:
    based on a virtual machine that is a blatent ripoff of the java VM.

    The only problem with that statement is its falsity. The jvm is a stack machine, while Dalvik is a register machine. There is zero comparability between them. Dalvik byte code is generated from java bytecode. And, java isn’t the sole source language for building Dalvik binaries. Oracle doesn’t have a prayer, unless the Right Wingnut judges get their way.

  • Cuper Hector

    Solr is a great project, but it not great enough to be mentioned in the Top 7 java projects

  • JamesJiang

    Thanks for your sharing.

  • http://www.discursive.com Tim O'Brien

    You missed two big ones.

    Ant: Ant was and still is the foundation of many builds and formed a foundation for most open source projects from about 2001-2006.

    Maven: Without the repository format that Maven put forward many of the projects on your list would’ve have a very difficult time with distribution. The Maven repository serves millions of developers every day, and every new build system being developed relies on it.

  • HommeDeJava

    Definitely, GWT (Google Web Toolkit) is definitely a breakthrough in opening Rich Internet Application and Ajax technologies to Java’s ecosystem. Compiling Ajax client Java code to multiplatform JavaScript is awesome.

  • Christian

    .Net and C#

  • Wim Jongman

    OSGi! (gesundheit)

  • Kostas K

    Tomcat definitely, Scala, Groovy

  • omid

    Add JBoss Seam

  • http://tutiez.com pranav

    The list shows the miracles and wonders of java programming

  • http://www.ubersvn.com Chris

    Great article, Edd! If you are coming to OSCON 2011, come see us at booth 311 to see launch of uberSVN in action! Check out the video for info: http://www.ubersvn.com/videos/introducing-uberapps.