Tuesday, April 7, 2009

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

Today, we're very excited to announce the availability of a new programming language for Google App Engine. Please welcome the Java runtime!

When the two of us first heard the promise of Google App Engine, we 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, we were excited to see that Java language support was both the first and the most popular request filed in the Issue Tracker. We were also 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.

But we 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 (GWT, Guice, CGLIB, AspectJ, etc...).
  • They even use alternate languages on the JVM, like Groovy, Scala, and JRuby.

We wanted to give developers something that they could be ecstatic about, but we knew we would have to marry the simplicity of Google App Engine with the power and flexibility of the Java platform. We 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 we did. App Engine now supports the standards that make Java tooling great. (We're 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. We know that there will be some rough edges when it comes to compatibility, but we're looking forward to working with you to smooth those out. To that end, we're giving the first 10,000 interested developers an early look at Java language support, so please sign up, give it a whirl, and give us lots of feedback.

The 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.

Last but not least, the App Engine team will be at the upcoming Google I/O developer event on May 27-28 in San Francisco, so please come meet us in person.

We look forward to seeing your applications. Get coding!

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United States and other countries.

1 comment:

Sutikshan said...

no support for Database Import yet, using Java :(