In todays presentation, you will learn what Java 7, and to some extent Java 8 will mean do you.What ”You” means can differ a bit, so I have grouped different ”You”s in 3 groups – IT professionals, Non java developers and Java developers. Not surprising, the Java Developer part will get the most slides. Finally, I will speak a little about the Oracle specific parts of the Java SE world.
The biggest news about Java 7 is that it’s shipping. For those of you that aren't up to speed with your classical paintings, what you see here is Alexander the great cutting the Gordian Knot.Java SE 6 came out in december 2006, more than 4 years ago. In internet time this is for ever. Twitter started 5 years ago, the first iPhone came 4 years ago. Between 2006 and 2010, no new Java versions were released, in contrast we saw 2 new versions of the .NET framework. Development platforms tend to move slower with increasing success - C hasn't been updated in more then a decade. It's still doing awfully well for that.That being said, and also adding that the rumors of Javascoboldisation were vastly exaggerated, the state of affairs were worrying people. At the core of this delay was a conflict between Sun and Apache regarding licensing terms. The war was about licensing terms, but the battle was fought over Java releases. What I just said is indented to be a truthful, but very simplified version of what happened. There are a lot more details to this, and it’s a source of much controversy. This was the state of affairs when Oracle came in and cut the metaphorical knot.Again, this is a topic of much controversy, but Oracle managed to rally enough support to break the blockade. Java 7 is happening. But it upset some people enough so that they left the Executive committee. Doug Lea, Tim Peierls and Apache all left due to this.
So for the JCP, Java 7 broke the staus quo. It also heralded the start of a JCP re-invigoration process. Patrick Curran, Oracles JCP ”chief”, is working on some changes to make the JCP more transparent and easier to join and participate in. The current ”contract” that one has to sign to actively participate in the JCP is quite intimidating, and it has to be since it covers all the rules and terms from a regular interested developer up to a specification lead. Patrick hopes to get a small and non-scary ”contract” for a regular developer, and only add more pages and terms as they take on a greater responsibility. He also plans to change the rules to that full transparency becomes mandatory, not just reccomended as it is today.A lot of people were worried that Oracle would cancel, or stop investing in OpenJDK. In fact the oposite happened. Oracle will keep investing in the OpenJDK, and move the vast majoroty of all new code written by Oracle engineers into OpenJDK. Perhaps even bigger news is that first IBM and later Apple joined the OpenJDK project.
Strangely enough, ”JSR 292” is the name that most people know this by, second people will use ”invokedynamic” and at third place, the most human readable name ”The Davinci machine”The name ”Davinci machine” is one of two puns in this release. The second on is ”Coin”, but more on that later. JSR 292 is ” a multi-language renaissancefor the Java™ Virtual Machine architecture”, with Da Vinci beeing the archetypical renaissance man... Pun or not, I love helicopter dukeInvokedynamic is the first new java bytecode since java 1.0. Technially, I guess you could call the new methods using the java.lang.invoke package, but in reality I would bet none of you will. With no details what so ever – Invokedynamic is created to drastically reduce the overhead for dynamic languages running on the JVM. The jury is still out on exactly how much this will improve things for different languages, but rumor has it that Jruby are seeing really good results.
I said that ”Coin ” was the second pun in Java 7. The project was intented to cover ”small language changes”. ”Small language changes” became ”Small changes” became ”Small change” became ”Coin”. We’re better coders than we are comedians.Coin was split between Java 7 and Java 8.
So that was a lot of details on Java 7, what about 8?It’s not set in stone yet, but the big guns are modularization, also known as project jigsaw, and project lambda.
One of our internally big deals is the JVM convergence project. We havent decided on what the convereged JVM will be called yet, but there are guerilla campaigns ongoing...We will ”converge” by moving and re-implementing the missing goodies from JRockit into the Hotspot codebase. Most of those changes will go into the OpenJDK, but some will remain premium features. E.g, JRockit Mission Control. Once all of the features are moved, we will prounce the convergence complete. Well, in all honesty, we will probably make a bigger deal than that from it, but it sounds less dramatic when you know how its done.Hopefully, the convergence will be completed by JDK 8 GA, but I’m making no promises today.
Java 7 and 8, what does it mean for you
Java 7 and 8, what does it mean for you?<br />
What does Java 7 (and 8) mean to you?<br />IT professional<br />(non java) Developer<br />Java Developer<br />Oracle<br />
Network and File System – JSR 203NIO.2 <br />NIO.2<br />NIO.2 Filesystem Provider for ZIP and JAR Archives<br />SCTP (Stream Control Transmission Protocol)<br />SDP (Sockets Direct Protocol)<br />Redirection for Subprocess<br />Vista IPv6 stack<br />(new) Enhanced JMX agent and MBeans<br />
Internationalization<br />Unicode 6.0<br />IETF BCP47 and UTR35<br />One language many character codes (Kanji, Hiragana, Katakana, Romaji)<br />Three-letter base language codes; three-digit region codes<br />Separate user locale and user interface locale<br />Currency data enhancements<br />http://en.wikipedia.org/wiki/File:Astrological_Glyphs.svg<br />
Other EnhancementsClient & Graphics<br />Added Nimbus L&F to the standard<br />Much better –modern- look than what was previously available<br />Platform APIs for Java 6u10 Graphics Features<br />Shaped and translucent windows<br />JXLayer core included in the standard<br />Formerly SwingLabs component<br />Allows easier layering inside of a component<br />Optimized Java2D Rendering Pipeline for X-Windows<br />Allows hardware accelerated remote X<br />
Other Enhancements<br />Better font configuration on Unix<br />Now uses standard Unix mechanism to find fonts.<br />JAXP 1.4.4, JAXWS 2.2 and JAXB 2.2<br />JDBC 4.1, Rowset 1.1<br />Upgrade class-loader architecture<br />Modifications to the ClassLoader API and implementation to avoid deadlocks in non-hierarchical class-loader topologies<br />Close URLClassloaders<br />Allows applications to proactively clean up classloaders, freeing up native resources and unlocking JAR files<br />Javadoc support for stylesheets<br />
JDK 7 Platform Support<br />Windows x86<br />Server 2008, Server 2008 R2, 7 & 8 (when it GAs)<br />Windows Vista, XP<br />Linux x86<br />Oracle Linux 5.5+, 6.x<br />Red Hat Enterprise Linux 5.5+, 6.x<br />SuSE Linux Enterprise Server 10.x, 11.x<br />Ubuntu Linux 10.04 LTS, 11.04<br />Solaris x86/SPARC<br />Solaris 10.9+, 11.x<br />Apple OSX x86<br />will be supported post-GA, detailed plan TBD<br />Note: JDK 7 should run on pretty much any Windows/Linux/Solaris. These configurations are the ones primarily tested by Oracle, and for which we provide commercial support.<br />
JDK 7 Project Plan<br />From 1/21 OpenJDK Schedule<br />2010/12/16 Feature Complete<br />2011/04/12 Rampdown start: P1-P3 bugs only<br />2011/04/28 API/interface changes: Showstoppers only <br />2011/05/11 All targeted bugs addressed First release candidate built <br />2011/05/18 Bug fixes: Showstoppers only <br />2011/06/08 Final test cycle starts<br />2011/07/28 General Availability<br />
Features from “Plan B”<br />Other Things On Oracle’s Wish List*<br /><ul><li>Modularization