2010. december 11., szombat

The case for a new Apache/Google "Java"

I believe it is high-time that Apache and Google created a new, Java-like programming language, platform and VM which can easily accomodate the ports of the Java base libraries, all of the Apache developed Java libraries/applications and the typical, popular open-source libraries like Hibernate.

Java should start off on the same road as LibreOffice under a different name.

The new "Java" language should be sufficiently close to Java that a one-to-one source converter tool can be written for trivial porting of Java libraries. Apache Harmony is a good basis for this but Snoracle patents will have to be worked around.

The platform should be completely modular and compatible with the packaging systems of Linuxes (apt/yum) and other repository based packaging systems, so that self-containing application packaging can be avoided (this is the case now with most Java applications).

While the language should be backward-compatible with Java, it should incorporate most of the new language advancements of .Net, Python and Ruby. Of course only those which don't kill basic Java language features like strong-typing.

The new "Java" platform should have an Apache-led, democratic governing body. Similar to the JCP but without veto rights for anyone.

When the platform matures to 1.0 (if Google backs the project with enough cash, it could be reached quickly, since Harmony is likely a good starting point), Apache and Google should publicly announce that they stop active Java development, freeze all of their Java-based projects until they get ported to the new platform. Google should deprecate Java in the App Engine and thus forcibly move developers to the "new" Java. This migration should be easy/trivial.

This would of course practically kill Java but the new "Java" platform would become much stronger than Java has ever been because of the following:

  • Since it would be distributed under the Apache license, it would be very commercial-friendly and appealing to companies. We can expect every sane company moving to the new platform in the medium term especially because:

    • This platform would be truly open and the stewards (Apache/Google and possibly others) respected and trusted (esp. Apache)

    • Nobody actually believes that Oracle will be a good steward of Java.

    • Oracle will want to squeeze every last penny of Java (will hurt Java developers/users) without actual development of the platform. Just like they did with Oracle Forms and Reports.



  • Due to the open-source nature, packaging and modularity of the new platform, all Linuxes would happily include the new platform and this new "Java" would soon become the primary  development language of Linux projects, completely ousting Mono/.NET on the way. Those Linux projects would run on Windows as well so they would strengthen the migration path from Windows to Linux.

  • Strong Linux support would bring a substantial developer base to the platform (the open-source developer crowd).

  • Google would officially switch to this platform and the success of Android would help its rise considerably.

  • Android would bring a substantial developer base (huge number of Android developers)

  • Running Android applications on desktops would become possible which doesn't make sense now but it will soon, since a lot of Android apps will be soon rewritten for tablets and thus become eligible for desktop use.

  • The new language should become a primary citizen on the LibreOffice platform. Possibly a basis for every new, larger development in LibreOffice.

  • When projects like Maven and Ant get frozen on the old Java platform, developer migration will ensue en-mass to the new "Java".


The new platform would quickly dominate the server-side, where Java is the strongest currently and Linux is on the rise. It would also quickly dominate the mobile space due to Android.

It is possible that the new platform would also become successful on the desktop, at least in the enterprise space where a lot of Java desktop applications are deployed. The Linux desktop would be the first, possibly it would be followed by the Windows desktop.

Java in its current form, under the stewardship of Oracle, is destined to slow decline. Only a radical renewal like this could put it firmly back to the map of relevancy.