At the Sun Tech Days Australia Conference last week, I attended Chuk-Munn Lee's presentation "Java SE 6 Top 10 Features and Java SE 7".
Lee said some of the top features of SE 6 are a Vista look-and-feel, JTabbed pane enhancement, Tray icon programming, Desktop class, custom annotations and a scripting architecture.
Below are some features we can expect to be introduced in Java SE 7:
|> Closures: Closures are blocks of code or functions containing other functions that are executed at a later time. For more information about this proposal, see the latest specification.
|> Swing Application Framework: The aim of the framework is to simplify Swing development. A class that handles application lifecycle would provide the following methods: launch(), initialize(), startup(), ready(), exit(), shutdown(). This would help programmers structure their application, which they now have to do themselves.
|> Beans binding: This feature would simplify joining of bean properties and keeping them synchronised. Since the Swing API contains many java beans, this would benefit Swing developers.
|> Superpackages: Using packages can be become problematic if there is more than one part to an application. Currently if you put all the different parts of a system into one package, you will not be able to accomplish proper information hiding. To overcome this problem, the concept of a superpackage was proposed. A superpackage would be a set of one or more packages, whose public types would be accessible to other sub-parts. The public types would be available outside the superpackage only if they were exported.
|> Separate Compilation: There are usually many compilation units in an application which can be difficult to manage. This feature might be useful if some implementations haven't been developed yet or you haven't received code from another developer you're working with. An alternative way to do this is to create dummy classes, but this can be a pain.
|> New Bytecode: A proposal exists to provide support for dynamically typed languages such as scripting languages. A new instruction 'invokedynamic', similar to 'invokevirtual' but using dynamic type checking would make it possible to invoke methods prior to knowing their type.
These are some interesting features that could simplify many tasks for developers. However, they are still proposals only. It remains to be seen which of them will actually make it to SE 7.
— Posted By Lana Kovacevic