Java and Python Runtimes 'Closer to Parity' in Google App Engine Release

The recent release of Google's App Engine 1.4.3 brings its two supported runtimes -- Python and Java -- "even closer to parity," the company said.

The Python enhancements include a Prospective Search API and a testbed unit test framework for Python; the Java RT gets new support for concurrent requests and both a Remote and Deferred API.

Google's App Engine is a suite of the tools and services for building and scaling Web apps on the company's infrastructure. Applications developed using the App Engine Software Development Kit (SDK) can be uploaded and hosted by Google, and those apps can then utilize Google’s bandwidth and computing power.

The new Prospective Search API for Python users essentially function like Google Alerts, Google product manager Sean Lynch explained in an e-mail. "This means you can send massive amounts of data at Prospective Search and it will alert you when that data matches," he explained. "For example, your application could include a simple web crawler which visits all sites on the web and passes them to Prospective Search. At the same time, you can set subscriptions on terms to watch for, such as 'App Engine.'  When your crawler finds a page that contains App Engine, Prospective Search will execute code you specify that allows you to take action: send an email, record something in the database, etc.”

The new testbed suite provides Python users with an interface for using App Engine API stubs in integration tests, similar to the existing Java Testing Framework. Users can create tests for their application that do not rely on calling App Engine production services. The result is faster tests and freedom from external service dependencies, according to the company.

New support for concurrent requests is intended to allow each instance of a Java application to serve multiple user requests at the same time. In the past, the apps had to start additional instances to dynamically scale for higher traffic levels.

Previous versions of the App Engine supported the Remote API and Deferred API libraries in Python. This release adds support for those APIs in Java. Remote API will allow Java developers to perform operations on their applications' datastores from a local machine; the Deferred API makes it easier for users to write and execute ad hoc tasks.

With this release Google also introduces a new Blobstore writing feature. The Blobstore API is designed to allow developers to serve the data objects known as Binary Large Objects, or blobs, which are much larger than the size typically allowed for objects in the Datastore service. Think images, audio, and other multimedia stored as a single entity. The Blobstore service allows users to serve data objects that are up to 2GB in size.

Greg D'alesandre, a member of the App Engine Team, said in his blog announcing the release of version 1.4.3 that Google plans to include a change in release 1.4.4 that allows both designated code "owners" the person who uploaded the code to download it.

"In preparation for this, be sure to properly assign roles to all developers on your App Engine application in the Admin Console," he advised, adding that users will still be able to permanently disable the code download feature for their applications.

The App Engine went GA in May 2008 with a Python-only runtime environment. A Java runtime was added soon after.

More recent articles on this topic from

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].