Wednesday, April 8, 2009

Seriously this time, the new language on App Engine: Java™


Today, Google has announce the availability of a new programming language for Google App Engine. Please welcome the Java runtime!


Realized that the chance to bring this kind of simplicity to Java developers was too good of an opportunity to pass up. When App Engine launched publicly, that Java language support was both the first and the most popular request filed in the Issue Tracker. I am thrilled to see that this enthusiasm extended beyond the Java language to all of the various programming languages that have been implemented on top of the Java virtual machine -- not to mention all of the popular web frameworks and libraries.
Also knew that Java developers are choosy:
  • They live by their powerful tools (Eclipse, Intellij, NetBeans, Ant, etc.).
  • They try to avoid lock-in and strive for re-use. Standards-based development (defacto or otherwise) is key.
  • They harness sophisticated libraries to perform language feats which are nearly magical (GWTGuice, CGLIB, AspectJ, etc...).
  • They even use alternate languages on the JVM, like Groovy, Scala, and JRuby.
Google wants to give developers something that they could be ecstatic about, but google knew that it would have to marry the simplicity of Google App Engine with the power and flexibility of the Java platform. Google also wanted to leverage the App Engine infrastructure -- and by extension Google's infrastructure -- as much as possible, without giving up compatibility with existing Java standards and tools.
And so that's what Google did. App Engine now supports the standards that make Java tooling great. (Google is also working on the tooling too, with Google Plugin for Eclipse). It provides the current App Engine API's and wraps them with standards where relevant, like the Java Servlet API, JDO and JPA, javax.cache, and javax.mail. It also provides a secure sandbox that's powerful enough to run your code safely on Google's servers, while being flexible enough for you to break abstractions at will.
There is a vast amount of Java code out there, much of it written without consideration of sandboxing, and we can't test it all. 
The google team has also been working on many other improvements to App Engine, which we're really excited to launch to you as well:
  • Access to firewalled data: grant policy-controlled access to your data behind the firewall.
  • Cron support: schedule tasks like report generation or DB clean-up at an interval of your choosing.
  • Database import: move GBs of data easily into your App Engine app. Matching export capabilities are coming soon, hopefully within a month.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.

No comments: