There have been several big news stories related to Java development this month. Several of these stories are sure to have long-term impact on Java developers. These stories include more definitive information on what to expect in Java SE 7 and the continuing consolidation of Java-related companies.
Update on Java SE 7's Project Coin
Project Coin is the aggregation of "small language" changes for Java SE 7. I have blogged about some of the potential features to be added to the Java programming language as part of Project Coin in blog postings such as Small Java 7 Language Changes, Java SE 7 New Features: Latest News, and 2009 JavaOne: Project Coin.
This week, we have learned more information on which small language proposals will be delivered in Java SE 7. Several blog posts have relayed this news and the DZone Top Links currently has the top four links as related to Java SE 7 (three specifically related to the small language changes announcement).
The big announcement of which small language changes will be delivered with Java SE 7 was provided in Joseph D. Darcy's weblog entry Project Coin: The Final Five (or So) (DZone link). Other popular blog postings covering this development include JDK7 Tackles Java Verbosity (DZone/JavaLobby links) and The Seven Small Language Changes that will be in Java SE 7 (DZone link). The last linked post provides additional background detail on some of the implementation progress for the accepted small language changes.
The seven new small language features accepted for inclusion with Java SE 7 are:
1. Switching on Strings
I have written about the lack of Java support for switching on String and on this proposed new Java SE 7 feature. Many other languages have this feature and I have known several developers new to Java who have wondered why it has not been there all along. I feel less interest in it now with the addition of enums in J2SE 5, but it will still be a handy feature to have occassionally.
2. Automatic Resource Management (ARM)
This Joshua Bloch-authored feature proposal is covered thoroughly and relatively succinctly on this Google docs page.
3. Improved Generic Type Inference (Diamond)
I generally like the compile-time type safety provided by Java generics, but there are some ugly things about the generics support. Some improvement in experience with Java generics will be available in Java SE 7 with the generic type inference support. It's not generics reification, but it will still be welcome.
4. Simplified Varargs Method Invocation
Like the improved type inference addition, this new feature will improve developer experience with generics, in this case particularly with mixing generics and varargs.
5. Language Support for JSR 292
This feature is especially attractive to developers who like to use dynamic languages that run on the Java Virtual Machine. JSR 292 is the Java Specification Request called Supporting Dynamically Typed Languages on the Java Platform and the Project Coin portion is specifically related to language support for dynamic languages.
6. Language Support for Collections
In his announcement, Darcy mentions that this accepted Project Coin feature is actually a combination of Collection Literals and Indexing Access Syntax for Lists and Maps. The "Collection Literals" feature would allow for a much more concise and potentially clearer syntax where the Collections class is used today. A main benefit of the "Indexing Access Syntax for Lists and Maps" is the consistent syntax for accessing elements of arrays, Maps, and Lists.
7. Better Integral Literals
Like the last one covered here, this feature is actually a combination of multiple feature proposals. The binary literals proposal and underscores in numbers proposals are the two key proposals Darcy cites as part of this feature.
The Features of Java SE 7
I must confess a little disappointment at the new Java SE 7 small language features from Project Coin. There are some new features that I will be glad to have, but I really wish that Elvis and other null safe operators would have not been voted off the island.
The small features that do appear to be headed for Java SE 7 will be useful and, of course, there are other advancements expected in Java SE 7 of larger magnitude than the Project Coin features such as the improved modularity.
More on the features of Java 7 and a downloadable Java SE 7 preview are available at http://java.sun.com/features/jdk/7/.
SpringSource Acquires and is Acquired
We learned on August 10 that SpringSource was being acquired by VMWare. Just days later, on August 19, we learned that SpringSource had acquired Cloud Foundry.
Terracotta Acquires ehcache
SpringSource was not the only one involved in Java-related mergers and acquisitions this month. We also learned on August 18 that Terracotta has essentially acquired ehcache.
Oracle Acquisition of Sun Approved in United States
The largest Java-related acquisition of the year passed a significant milestone in August with the late August announcement of approval of the Oracle/Sun deal by the United States Department of Justice. The deal also has shareholder approval, but still requires European regulatory approval.