Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2576 posts at DZone. You can read more from them at their website. View Full User Profile

Mark Reinhold Talks About JDK 7, Closures, JRockit, and HotSpot

02.16.2010
| 15691 views |
  • submit to reddit
The renewed Oracle TechCasts kicked off today with Mark Reinhold talking about JDK 7 and answering questions from viewers.  Reinhold discussed the significant things he is working on in the OpenJDK Project and he revealed some of the preliminary explorations being done to merge the JRockit and HotSpot codebases.  Project Lambda, commonly referred to as "Closures for Java", is also a topic of discussion.

The first feature in JDK 7 that Reinhold talks about is the effort to modularize the Java SE platform, called Project Jigsaw.  Along with addressing performance, Reinhold says that a key benefit of Jigsaw will be the ability to not only scale up, but scale down as well, specifically into small devices.  Project Jigsaw installs just a piece of the JDK in those small devices without requiring the cumbersome 60MB of space for the whole thing.  Project Jigsaw, he says, will also solve the problem of .jar hell once and for all.  Developers will finally get a chance to play with Jigsaw in mid-March when build 88 is released.  It won't be integrated into the core of the platform, but it will be available in a form that others can test-drive.

Improving support for various dynamic languages is another major goal of JDK 7.  The project will add general purpose extensions to the JVM in order to run non-Java languages with performance levels comparable to Java itself.  Project Coin will make other significant additions to the Java language akin to the set of changes in Java 5, said Reinhold.  The big language features for Java 5, he said, were generics and the for-each loop.  Much like those changes, Coin is intended to make everyday development easier.  Reinhold mentioned a few of the Project Coin additions such as the "surprisingly useful" strings and switches, and the diamond operator, which he called a "huge win for complicated generic types."  Project Coin also includes features that will make java syntax more compact, said Reinhold, "much like Python."

Other productivity enhancements that Reinhold mentioned were Type Annotations and a new I/O filesystem API.  He said that the changes in JDK 7 would finally bring in a real filesystem API.  He said that this feature on previous JDKs was a joke.  Type Annotations, he said, are a big improvement to static program checking.  He calls the new feature "a type checker on steroids."  At a high level, Reinhold says the new fork-join network is going to be very beneficial along with truly parallel thread-safe class loaders.  One viewer asked him about JSR 310, the Date and Time API.  He said he would love to see it finished since its been sitting around for so long.

Reinhold also discussed his motivations behind starting Project Lambda to add closures to Java 7.  When the idea of closures in Java was first brought up, he said there was less motivation at the time and he didn't see a proposal that fit well with the Java language.  The expansion of multi-core processing has been a game-changer for Java, and now Reinhold says it would be so much easier to harness multiple cores with real closures.  MapReduce-type bulk operations in Java "are a pain to express," he said, "it's nauseating."  The extended schedule for JDK 7 was the opening he needed to introduce closures now, rather than in JDK8.

Reinhold thinks that developers have a desire to see Java evolve and "show signs of life" while still maintaining readability of code.  He says that Project Lambda already has a number of people involved and the second draft for the spec is nearly complete.  Milestone 6 is on its way, he says, but it won't involve a lot of new features like the last milestone.

In addition to his work on the JDK, Reinhold has been in several meetings with developers from Sun, Oracle, and other sources to discuss the possible integration of HotSpot and JRockit.  They're very much in the exploratory stages right now, seeing how the two JVMs will fit together.  The plan is evolving, he says, and they are not dealing with easy problems.  JRockit and HotSpot have been in a tight race for many years and each one comes with its own advantages.  He says that JRockit, for example, has better serviceability.  Their primary goals will be to improve performance and see how much further the two codebases can be pushed.  

Another viewer asked Reinhold about working with Oracle and his hopes for the JCP.  Reinhold said he is confident that Oracle can make the JCP more participatory and he looks forward to the JCP not being jammed up like it has for so many years.  In his HotSpot/JRockit meetings, Reinhold says that Oracle has some very open-minded technologists.  When they buy a company, he says, they sometimes set aside their own technology if the acquired technology is better (BEA's WebLogic, for example).  Finally, Reinhold was asked about his plans for this year's JavaOne in September.  He said he'd probably do what he usually does - participate in a bunch of talks, socialize with the community, and stay out late.

Comments

Jeroen Wenting replied on Thu, 2010/02/18 - 2:07am

"Reinhold thinks that developers have a desire to see Java evolve and "show signs of life""
Oh boy, "Java has to change for the sake of changing or people think it's dead".

Philippe Lhoste replied on Thu, 2010/02/18 - 2:18am in response to: Jeroen Wenting

Well, nothing prevent you to still use Java 1.5; or 1.4 if generics and annotations disturb you... :-)

On one side, I understand your reaction, giiving electrochocs to move the body might be too artificial... On the other side, a language development is driven by user desire, which is driven by needs (simpler language/more productive, faster startup, etc.) and fashion ("I saw this cool feature in Xxx language!").
While being driven firmly to avoid zigzagging between fads and whims: still need a global vision.

Henk De Boer replied on Fri, 2010/02/19 - 5:02pm

I think it's natural for languages to evolve. I don't understand the desire from some for a language to remain absolutely static. Natural languages evolve too, computers evolve, the environment evolves... why should a programming language not be allowed to evolve along?

About the possible merging of Hotspot and JRocket. On the one hand I understand the desire for this. After all, it would be awkward for one company to maintain two independent JVM implementations and the attractiveness of having a single super JVM that combines the strong points of both Hotspot and JRockit is undeniable.

On the other hand, it would be kind of sad to see one of the few independent JVM implementations disappear. The entire idea of Java being a spec is that multiple implementations can be offered by vendors, which compete with each other on things like extra features, performance, stability, etc. This keeps everybody on their toes and creates an healthy competitive environment.

While the Oracle acquisitions may benefit the community because of Oracle's larger power, it is sort of a disadvantage that it reduces competition and choice for users. Regarding Java, this mostly concerns OC4J vs WebLogic vs Glassfish and JRocket vs Hotspot.

Kookee Gacho replied on Sun, 2012/06/03 - 6:56pm

On November 12, 2010, Apple Inc. just three weeks after deprecating its own Java runtime port and Oracle Corporation announced the OpenJDK project for Mac OS X. Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client. -Madison Pharmacy Associates

Carla Brian replied on Wed, 2012/08/01 - 6:01pm

 Changes to JDK 7 includes changes to javac, to HotSpot (and related tools), and to the implementation of the Java SE 7 API. - Paul Perito

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.