When Google released App Engine, Pythonistas were thrilled to receive such high-profile publicity for their favorite language. They should be, since a lot of people are jumping into Python for the first time, (or the first serious time), because they want to work with App Engine. I think that's cool since Python is a great language, but even in this recent dynamic language renaissance for some reason has not received the same hype-factor as Ruby and RoR.
While a somewhat exotic choice on the surface, it was actually perfectly natural and understandable for Google to go with Python out of the gate. It has long been known that Google uses Python behind the scenes for a great many things, from managing the bazillions of servers and other in-house systems to the implementation of Google Code. I mean Guido works there... on App Engine. I'm sure having the language's creator on staff helped when architecting this thing.
It's not all about Python though. Google has said that they are going to be offering the service in other languages in the future, and those who have played with it know about the 'runtime' property in the app.yaml config file. The documentation states plainly that "Additional runtime environments and languages may be supported in the future."
So what's the next supported runtime gonna be? I have no idea, but if I'm going to speculate I think a good case could be made for Java.
At first blush, that seems pretty divergent from the way that the platform is setup right now. Another dynamic, scripty language with a *nix heritage like PHP, Ruby or Perl would be a much closer match as far as management characteristics in a hosted offering like this go. But Google has no history of using any of these languages, and are reported to be pretty averse to language proliferation in their systems.
So how reasonable would it be to offer a hosted Java environment? While almost any hosting provider currently gives you the option of running PHP, lots of 'em give you Perl, etc. virtually nobody except boutique hosting providers let you run Java. There's a good reason for this. First of all, Java is an enterprisey language and the apps that use Java on the server side are not especially well suited to run in a shared environment. Secondly, even if the market existed, there are technical limitations that make running Java in a shared resource pool problematic. While you can chroot PHP to prevent people from accessing the shared, underlying filesystem, with Java you can spawn threads and do lots of other things that make implementing resource consumption quotas problematic. The fact that you can't just run a Java program using an Apache module or through CGI, and the fact that there tends to be a mismatch in the skill sets that *nix ops people usually have and the skill set required to effectively manage a Java app just further muddies the waters.
What you would really need is a customizable JVM that let a hosting provider limit what hosted apps are allowed to do. You may be able to do this with a locked down SecurityManager, but doing the kinds of things that Google is doing with the App Engine Python implementation would be even better. Not very many people have the chops to write their own VM. Google is one of them, and oh yeah, they've already sorta done it. Twice.
Google is pouring a lot of resources into Java lately and in a public way. Guice is getting lots of attention lately as a Spring competitor.
So here's the prediction: The next App Engine language is going to be Java, but with a limited API, utilizing some kind of translation in the compiler and potentially running on something like Dalvik. They will offer a framework like they do with webapp in Python, but based on Guice.
You heard it here first...