Thursday, April 16, 2009

Google broke Java -- Boo Hoo!

Seems to be a lot of teeth gnashing over Googles incomplete Java support in their new Java Google App Engine.

Talk about looking a gift horse in the mouth.

This new limited JGAE environment single handedly advanced the Java Online presence farther than anyone, including Sun, ESPECIALLY Sun, could have.

Up till now, if you wanted to host a Java application, you couldn't do it cheap, much less free, without being severely hamstrung in terms of the actual environment you were forced to live. Both stability and resources were severely limited for the "cheap" plans. If you wanted to host a Java application before now, you were pretty much relegated to finding a VPS for it.

VPS's are wonderful, but they're expensive, and you get the great joy of effectively being responsible for every aspect of the underlying system. You get to become admin, deployer, programmer, the whole kit. 

Sure, it's fun!

Sorta...

Well...once. Maybe. 

Actually...Yea. 

Actually it's not fun at all. Cron jobs, backups, init scripts. No thanx.

Coding is better.

Now, with JGAE, you get to focus pretty solely on your code. The administration is handled for you. You don't get a "machine" any more, you get a folder, on some cloud, in some unmarked, nameless data center. You don't even have to maintain the database. How cool is that?

Oh, and it's also Free. Gratis. Even with the upcoming reductions in the Free quotas, you get a LOT of capacity for nothing more than a login.

So, now Java has a truly cheap hosting platform which can do nothing if not accelerate the adoption of Java as a server programming language, especially for the hobbyists, hackers and other practitioners that have made PHP what it is today (for good and bad).

But are you coding Java? Really? With the whitelist, and other limitations? Of course you are. Despite these limitations, there is an enormous amount of existing Java code that will run on this platform. The Java code itself won't have to change to run here, though your designs most certainly will.

Python programmers certainly had to go through the same process as JGAE coders will, adapting to the new platform. Now, I don't frequent the Python community, so I don't know what kind of backlash the original GAE might have brought. No doubt, someone, somewhere, was cranky about something (it IS the Internet, after all).

But, even so, the Python community doesn't have the standard base that the Java community has. I think the Java folks have a fair gripe about the whitelist, as, like it or not, the Java Library IS part of what makes Java, well, Java. But, saying that, that doesn't mean the Google couldn't have necessarily offered a similarly limited platform while still staying within the Java specification. "Sure, we have all these classes, you simply can't use them."

If Google had release a fully compliant Java library, but locked it down hard using the Security policies, would the outcry be the same? Are folks really arguing pedantic nits about The Standard when a compliant, but equally restricted library could have offered the same lack of functionality?

Perhaps Google simply didn't want to take the time to vet the entire library for their platform in order to get something out (it is Beta, after all, but then, so is most everything Google releases). Rather, they started with the base assumption of what they wanted to offer, a Java Servlet environment, and worked forward from there to a point when they felt they had a large enough chunk of the platform to do what they needed to pull that off.

See, someone like Sun could NOT have done what Google did. The Sun way would be trying to make the whole of the Java platform workable, to keep it as "unlimited" as practical. They really have such a commitment and investment to Java that if they did what Google did, it would have hurt far more than it would have helped. It would be like hobbling your own children for expediency sake. Imagine the screams if Sun had released this rather than Google.

But as for Google, Java isn't their "baby", and they can be more pragmatic. Taking what they need and tossing aside the rest, and shrug off the criticism. They're not the flag holder for the Java banners. Google isn't making a Java platform that runs Servlets, they're making a Servlet platform and all the Java they need to support that.

The complaints about missing APIs will be addressed, to a point, in time. "Here's the Swing classes, but, no you can't render anything."

In the meantime, though, even with the limitations, I think that the benefit of what Google offers to Java programmers, particularly new programmers, is a greater good than the damage they may cause by offering that opportunity on a limited platform.