Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Programming Google App Engine Book Review

December 30, 2009

While the Google App Engine has been available to developers for some time, the degree of adequate documentation beyond the SDK online docs has been sparse.  Author Dan Sanderson, a member of the Google App Engine team, has attempted to address this deficiency with this book.  Has he succeeded?  Read on to find out.

The Google App Engine is the predominant hosted solution system that helped define the cloud computing paradigm.  Partly due to its success, other major players from Amazon to Microsoft have entered this recently lucrative arena.  Programming Google App Engine provides developers with an excellent analysis combined with numerous tutorials on how to leverage this powerful hosted service solution.

The book consists of 15 chapters, beginning with the obligatory introductory chapter describing the overall intent and architecture of the service.  The next two chapters walk readers through the creation of a simple Python and Java-based web clock with Google account login and simple data backend interaction.  Chapters 4 though 8 dive into Google's proprietary datastore and how to access this using the SQL-like Google Query Language (GQL) and its respective Java and Python Query API's.  Chapters on the memory cache, URL fetching and asynchronous requests, bulk data operations and remote access, task scheduling and queues are also provided.  There is also a chapter on email and XMPP messaging that shows how the GAE can autonomously interact with systems beyond HTTP.  Finally, the book concludes with a very useful chapter on deploying and maintaining GAE-hosted applications.

Unlike the book Using Google App Engine published by O'Reilly earlier this year, Programming Google App Engine is considerably deeper, more methodical dissertation on the architecture, design principles and application development best practices around the GAE.  As such, it is a book ideally written for developers, predominantly those comfortable with Java and Python.  Although JRuby is mentioned, shimming Ruby on Rails on top of the GAE is not explored.  Conversely, riding Django on top of the GAE is detailed in a chapter dedicated to the subject, with the majority of pages devoted to tweaking Django's ORM to work with Google's proprietary data storage system.

Reading this book unquestionably provides readers with a richer, more comfortable understanding of how to leverage the GAE for hosted, cloud-based web applications.  However, like the previously released Using Google App Engine book, the author fails to explore nagging questions like the ownership, management, liability, reliability and highlighted successful case studies to further encourage the use of the GAE by wary developers concerned about hosting their codified intellectual property on Google's systems.  Perhaps that investigation belongs in a separate book analyzing the cloud computing question on a broader scale, since these questions apply to other providers beyond Google.  Regardless of this business analysis omission, the author accomplishes his primary objective of educating readers with a comprehensive understanding and appreciation of the sophisticated web app delivery system Google has created for its customers.


Title: Programming Google App Engine
Author: Dan Sanderson
Publisher: O'Reilly Media
ISBN: 978-0-596-52272-8
Pages: 400
Price: $44.99 US


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.