JSR to remove Java features? What will be first to go?

To ensure backwards binary compatibility as Java has evolved over the past 10 years, new features have been added but never have features been removed, to avoid breaking the binary compatibility. However over time, we’ve seen the Java JRE and JDK continue to grow from each release to the next. JSR 270, the JSR for JDK 6, proposes the first API to be removed from a future release, and I believe is the first JSR to propose that something be removed from the platform intead of added.

The approach suggested is that the JSR for release N can propose for feature X to be removed in future release N+1. It is then upto the team involved in the implementation of N+1 if they want to go ahead with the feature removal. Mark Reinhold discusses in more details in his blog here.

The feature currently on the chopping block? The javax.sound.midi package. I expect some developers or users of music software on Java may be upset by this, but I don’t expect there to be much resistance on this one.

Simplifying Swing development with Genesis: wiring Swing apps with annotations

Netbean’s Matisse GUI builder has made a huge difference in the effort required to build a Swing app – with Netbeans 5.0 now it is possible to build good looking Swing apps with minimal effort.

But what about wiring together actual code with your new GUI front end? Michael Santos has an interesting blog entry on java.net about a project called Genesis that allows you to use annotations to wire up your code to your Swing code. The examples in the article look very simple – this is an approach we should keep our eyes on.