Skip to main content


Posted by editor on January 22, 2008 at 6:52 AM PST

If you want innovation, open things up

Here's a bit of compare and contrast for you, using today's front page. Start in the Java Today section, where we find that IcedTea contributor Gary Benson has been blogging about his efforts to develop a Hotspot implementation for Linux that requires no assembler code, potentially making it infinitely portable:

"Lately I've been experimenting with the idea of a generic Linux port of Hotspot. I updated the templater and generated a new set of stubs, fixed the build system to build them, then started filling them in. I got into interpreter code in a couple of days, which is where the fun starts."

Dalibor Topic, who originally pointed me to Gary's blog, clarifies what this effort involves: eliminating the CPU-specific assembly parts of the Hotspot code base. Since Gary had already been working on a PowerPC port of Hotspot, he was presumably already well aware of how much assembly is in Hotspot, and where.

Last Friday, Gary reported that Hello World was working, and just over an hour later, he got the zero-assembler javac to compile Hello World.

A lesson to take away from this: was anyone considering doing this before Java was open sourced? Discussing the project on the #javaposse IRC this morning, Dalibor pointed out that before OpenJDK, most companies would license the JDK and then only tweak it enough to run it on their own platform. Gary Benson's effort to "run anywhere" anywhere may have been technically possible before OpenJDK, but perhaps wasn't practical from a business standpoint, and apparently wasn't on anyone's radar.

Contrast that with a still very-closed Java API, the BD-J standard that provides the interactivity of the Blu-Ray Disc format. Last year at JavaOne, speakers on BD-J panels indicated that the Blu-Ray Disc Association hoped to make some sort of overture to the open-source and independent developer communities, but hadn't decided how or when to do so, and were keeping the standard close to their chest for now. In today's Forums, user billshepp indicates this is still the case:

Many of us agree, but for better or for worse some of the BDA Director companies take a far more cautious approach to the platform. We're working to find a good compromise that makes developer information accessible to those with a bona fide interest without lowering the bar so far that tire-kickers clog up the system...

That prompted a vociferous reply from Endre St


The zero-assembler port currently focuses on the interpreter, as there you can get by without writing assembler, and relying on gcc builtins for the fun low level stuff. An assembler-free jit would be quite a bit harder, I'd say, unless one just 'outsources' the jit engine to libjit, GNU lightning or LLVM (coincidentally, that's the plan for Kaffe ;).