At its annual I/O conference, Google unveiled the newest release of App Engine, version 1.5.0. The latest edition of its platform-as-a-service (PaaS) offering features new Backends for both Java and Python.
So what exactly is a Backend? It's a special App Engine instance with no request deadline, higher memory and CPU limits, and a persistent state across requests. If you're creating an application that takes up a lot of memory and runs for a long time, you'll appreciate how a Backend can be a “potential game changer.” That's the word from Peter Magnusson, the engineering manager in charge of Google's App Engine.
Backends give programmers a lot more flexibility than they might otherwise have. Illuminating this point in answer to a question, Magnusson explained that “Backends allows you to add your own services for your own applications.” Elaborating on the current state of affairs for programmers without Backends, Magnusson noted that “Whenever you need long-running code or computational intensity or persistent state and it doesn't match directly to a combination of data store or memcache or even HTTP requests, it becomes very cumbersome to express it.” Backends make it “delightfully easy” to write the code to cover such situations. It's easy to see why this release should make a lot of Java developers very happy.
In addition to the new Backends, users of this release will find improvements to Task Queues. The changes will allow developers to create better apps that control the ways in which tasks are executed. Also, in support of Google's commitment to an open development platform, programmers will be able to share their work easily using new REST-based APIs.
One slightly surprising feature of Google App Engine 1.5.0 is its support of GO, an open source language released by the search giant in 2009. Why did the company not choose the PHP dynamic scripter, which boasts a wider base of support? Apparently, speed was the deciding factor. Go, which Google has described as “Python meets C++,” compiles very quickly.
“Go was designed from the outset to be quick to compile,” Magnusson noted, “even with a very large application.” For App Engine, this means you can easily “upload the source code and compile, link and run it. The compilation linking [with Go] is so fast, that it's just as fast as uploading the binary, or even faster. So it provides a fundamental benefit that Python and Java don't.”