Sun is planning to release its Java Kernel, a subset of the Java Runtime Environment tuned to particular programs, early next year.
Formerly known as Java Browser Edition, the Java Kernel is planned for release as part of Java Standard Edition (SE) 6 update 4, a Sun representative said. Developers will have early access to the code to provide feedback.
An original intent was to make Java like a Flash plug-in and enable a resurgence of Java on the browser. Applications would specify which features they need, such as Swing and XML parsing, said Sun staff engineer Ethan Nicholas, who is working on the project.
"The basic idea was that the current Java Runtime Environment is simply too big, and most programs require only a small subset of the functionality," Nicholas wrote in September 2006 on his blog. "The 'browser edition' that I suggested would enable you to install exactly the subset of Java that your particular program required, but you would be able to download all of the other functionality on demand (and thus be fully compatible with J2SE)."
Some Sun employees doubted the project would fly, according to Nicholas. Even a detailed analysis of the idea painted a bleak picture, he said.
"The feature did in fact get submitted as a proposal for Java 7 under the name "Java Kernel" (the idea being that you download a small "kernel" of Java functionality, which is in turn capable of downloading the rest of it)," Nicholas said.
Nicholas said he developed a stripped-down JRE installed containing only enough functionality to run "System.out.println," or "Hello World."
To determine which files were necessary for the project, Nicholas wrote a program to iterate through the JRE files.
"After going through all of the files in this fashion, I was left with an extremely minimal JRE that could run Hello World and ... well, that's about it. But it at least provided a starting point. Building a working installer from this JRE was itself a challenge because several of the files that weren't necessary to run Hello World were still necessary to successfully install the JRE, but I persevered and now have a fully functioning, minimal JRE," Nicholas said.
Comments about the project posted on Nicholas's blog varied.
"I also believe modularization of the JRE is the solution. Not just for the size of the download, but also for different other issues," one commenter said in 2006.
"The problem here is that Java isn't just a browser based technology, it's a platform. When I write a Java applet or application, I expect the platform to be there," said another respondent.