This must come from the “They know something we don’t know” department, because Google’s newly announced Google App Engine lets you program in any language you like, as long as it is Python. The new service lets you run your own web applications on Google’s infrastructure, freeing you from maintaining servers and giving you the benefits of Google’s scalability... ahem... as long as your apps are written in Python.
To be fair, the Google App Engine is a brand new "preview release", and the docs say “we look forward to supporting more languages in the future.” But why didn’t GAE support Java from the start, and will it ever? Well, I can think of several reasons right off the top of my head, and I imagine some of you who understand the problem better than I do can add even more.
Jarmageddon: Java’s equivalent of nuclear proliferation! The typical Java app uses so many JAR files, and there are so many versions in active use, that providing and maintaining the supporting libraries for your app to run would be a daunting task. Which version of <insert library name> does your app need, and is that compatible with <insert other library name> version 1.02.beta7.4Z? The combinations and permutations are nearly infinite, creating a maintenance nightmare.
Memory Madness: Does this really need to be explained? Look at the in-memory footprint of your running Java web application? Can you multiply that by 12 kazillion and support everyone running their apps, too? Neither can Google.
Threads Gone Wild: Without a stringent quality assurance and validation process, it is entirely possible that a Java-based user application could begin spawning threads that run completely out of control. The GAE infrastructure would have to police the runtime environment for these on a constant basis, and shutting them down could have problematic consequences.
So, will Google App Engine support Java? Personally, I hope so, but I would understand if even the mighty intellects at Google ultimately judge this challenge to be insurmountable. What do you think? What are the main problems? What are the solutions?