Last year, Oracle released the long-expected new version of the Java SE platform – i.e., virtual machine, programming language and API – Java 7. With new features that range from evolution of the virtual machine (in order to support dynamic languages) to improvements on MBeans, the new version brings several new features, although less than expected by the developer community along these past years. In early July the Developer Preview version was made available and, finally, on July 28, the final version of Java 7 was released and can be obtained in Oracle's website (see Links
In a launch event, Oracle gathered its Java development team, members of the Java community and partner companies to promote not only the new version but the platform in general. The event had four technical sessions in which senior developers and project leaders from Oracle presented in more depth four of the most relevant new features of Java 7: Project Coin, the Fork/Join framework, the new API for file management and the evolution of the virtual machine to support multiple programming languages.
This article presents a summary of the Java 7 launch event, giving an overview of the new version of the platform. In subsequent articles of this series, the aforementioned four new features of Java 7 will be presented in more detail.
The Launch Event
On July 7 (i.e., 7/7, chosen on purpose for marketing reasons), Oracle organized an event to launch Java 7, called “Moving Java Forward”. The event was conducted in three different places: Oracle's headquarters in Redwood Shores, California (USA), London (UK) and in São Paulo (Brazil). Moreover, the event was broadcast live to the whole world via Internet (webcast). Figure 1
shows the moment of the event when headquarters contacted São Paulo, where Bruno Souza, president of SouJava (which was recently elected member of the Executive Committee for Java SE/EE on the JCP), ran the show. The full video of the event can be seen on Oracle's Media Network website (see Links
Bruno Souza and other leaders of SouJava in the São Paulo launch event (adaptation of a picture taken by Loiane Groner, available under a Creative Commons BY-SA 2.0 license).
The JCP – Java Community Process – is the means through which the Java community (companies, non-profit organizations and developers in general) proposes, develops and publishes standards for Java-related technologies. The Executive Committee, composed by 16 members, is the group that selects the specification requests that will be developed and, later on, approves them for public review and final release. Such specification requests are known as JSR, which stands for Java Specification Request.
At the opening of the event, a video shows interesting numbers about the reach of the Java platform in order to establish the context of the launch: Java executes in 97% of corporate desktop computers and, according to Gartner (2010), in 1.1 billion computers in total; it is present in 3 billion cell phones (with more than 45 thousand applications developed) and 5 billion Java Cards. Java is the number one choice for new open source projects according to the TIOBE index (see Links
), with more than 9 million programmers around the world, according to Evans Data Corp.
Here are some other interesting information about the general context of the launch that were presented throughout the event:
• The last update of the platform, Java 6, happened 5 years before, making this version the most awaited one in the history of Java. The acquisition of Sun from Oracle certainly contributed to make this time longer;
• At the moment of the launch, Java was under Oracle's hand for 18 months. Currently, the development team for Java is the biggest one in the history of the platform, showing the commitment of Oracle to the technology (it was mentioned that the company has billions of dollars invested in business that involve Java);
• Another demonstration of Oracle's commitment to Java was the announcement of several events promoted by the company, like JavaOne, which happened in San Francisco last October (see Links
) and the launch of the bi-monthly free Java Magazine, which is sent free of charge via email to anyone who registers on the website (see Links
• Version 7 was the first one developed entirely over OpenJDK, that is, in open source. This promoted a series of external open source contributions, such as the Fork/Join framework (by Doug Lea and colleagues), the XRender pipeline for Java 2D (by Clemens Eisserer and Dmitri Trembovetski), the Gervill sound synthesizer (by Karl Helgason, which replaced the earlier proprietary solution with an open one with better performance), etc.
• Also for the first time in Java's history, a new bytecode instruction was added to the Java Virtual Machine (invokedynamic
). With this, the JVM starts to get new functionality, independently of the Java language and compiler, based on what other languages that will also execute over the JVM need. Furthermore, in the future, this can make it easier to bring features of these other languages to the Java language;
• Success stories of the Java platform were presented by big companies such as the Royal Bank of Scotland (clusters with 15 thousand CPUs and memory capacity measured in terabytes executing Java), Travelex (which had been recently acquired by Western Union) and Rio Games (creator of the League of Legends, massive multi-player game with the largest user base in the world, using Java in their servers). Big IT companies, such as Accenture, IBM and HP, also showed their support to the Java platform during the vent. The Eclipse Foundation was present too, with a video in which announced Java 7 support in their IDE through a new plug-in.
The event highlighter the new features of Java 7 which, in the words of the Chief-Architect for the Java Platform at Oracle, Mark Reinhold, is an evolutionary release, not revolutionary. Java 7 is faster (thanks, for example, to the Fork/Join framework, XRender, Gervill, etc.), easier (thanks to the modifications on the language brought by Project Coin), more inclusive (thanks to the new support for the integration of dynamic languages like Ruby, Groovy, Python, Scala, etc.), other than bringing a new and more complete API for file system manipulation (the “NIO.2”) and updating Unicode to version 6.1, which brings support for two thousand new characters. A complete list of features can be found on OpenJDK's website (see Links
Sun had created a plan of alternating between revolutionary (odd version numbers, lots of new features, like Java 5) and evolutionary (even version numbers, improvements on what was already there, like Java 6) versions. Therefore, it was expected that Java 7 would bring more revolutions (like, for instance, the inclusion of closures in Java) but, for commercial and political reasons, this was not possible. The old rule is, then, inverted – odd version numbers are now evolutionary, whereas even version numbers mean revolutionary – and the big new features are expected for Java 8.
Functionalities that were planned for Java 7 and postponed to Java 8 include modularization of the platform (project Jigsaw), closures and batch operations (project Lambda), more improvements to the language (Project Coin, part 2), a framework for Swing applications, among others. Full convergence between the JVMs JRockit and HotSpot is also planned for Java 8, but the effort for this task was already started during the development of Java 7.
In four technical sessions, experts from Oracle detailed the main new features of the platform: Project Coin (small changes in the Java language), the Fork/Join framework (for parallel processing), the “NIO.2” (new I/O API) and the integration of multiple languages to the Java Virtual Machine. These new features will be described in more depth in subsequent articles of this series.
Download page for Java 7 (and any other Java SE version).
Video of the Java 7 launch event organized by Oracle, called “Moving Java Forward”.
TIOBE index, measuring the popularity of programming languages through web searches.
Website of Oracle's Java Magazine.
Website of JavaOne, the biggest Java conference in the world.
OpenJDK website, listing the new functionalities of Java 7.