Developing With Google App Engine

Building Web Applications on the Shoulders of Google, With Python.

App Engine is Google’s framework for letting external developers write software on Google’s infrastructure. As such the book serves three purposes: explaining what exactly Google App Engine is (not to be confused with Google Apps of course), what services are available through it and how to create an application. The first part of the book covers what App Engine is and how to create a simple “Hello World” application. Afterwards, readers are taken through planning a del.icio.us-like bookmarking service, and then the rest of the book shows how to implement the design using the services App Engine provides access to.Readers are first introduced to the App Engine and are shown how to download and install the Eclipse-based IDE on their system and create the mandatory “Hello World” application. Like a lot of Google’s offerings, App Engine is intentionally marked as an unfinished preview release, as opposed to Google’s usually highly-functional “beta” releases. So developers have come to expect several changes along the way such as the announcement of Java and other enhancements in Spring 2009. The first and second chapters cover a lot of what you can and can’t do with the App Engine SDK. App Engine currently uses Python as a primary development language, though Java support is being introduced at the time of writing. Learning the Python language is left up to the reader- the book does not try to teach it. Developers familiar with Python will find coverage of what libraries are and are not available to run under App Engine as well as mentions of some libraries being ported to App Engine. What readers will know by the end of these chapters is how to create an App Engine application they can install on Google or one of their domains.

See also  Programming Python

From chapter three on, readers are being taken through the design of BookmarksBin, a bookmark system inspired by sites like del.icio.us. For readers familiar with programming under LAMP or another stack, this requires a bit of an adjustment of thinking: there’s no MySQL, file access is a limited and Python programmers will find that some of their favourite libraries have been modified or are not available. All this is because App Engine applications run in a sandbox that’s necessary to prevent individual applications from affecting the performance of others. Add in factors like the somewhat-undefined maximum execution time, and you can see there are some challenges ahead. Or the ability only to read files that were uploaded as part of the application and there’s a few things to get used to; fortunately, the book points these things out clearly. Programmers familiar with Python might find themselves missing ordinary libraries because of certain restrictions placed on App Engine application. However, some applications like the Django framework are being ported, and App Engine comes with its web framework, web app, that should feel familiar to developers used to other frameworks.

After the design is created, readers learn how to build an application using a web app framework, and the services App Engine provides access to.  When Google buys a company it sometimes seems like it takes a while for the service to disappears for months, occasionally never surfacing again is that the application has to be often re-written completely to run in Google’s environment. It’s probably worth keeping this in mind when porting your web application to App Engine. Besides using Python, you have to use the database, file system and other services and even with this book and the on-line documentation this case take some time. GoogleAccounts take the place of a user-management functionality—Memcache for fast storage or the datastore for a database system. There is also “URL fetch” for calling web services. Basic image manipulation (scale, rotate, crop, enhance), and email are provided.

See also  PHP and MySQL Web Development

In conclusion, this small volume — only about 160 pages– provides an excellent introduction to App Engine. App Engine is maturing with a host of improvements being announced in just last month, so it looks like Google Apps is here to stay.

The book’s layout is clean, couple of screen-shots, break-out boxes explaining things like: “What is YAML” or pitfalls to watch out for. Since App Engine is still listed as a preview release, I’d expect there to be plenty of changes before it reaches a beta stage, but the book should still give readers an understanding of what App Engine can do for them.