Author: Mark C. Chu-Carroll
Publisher: Pragmatic Bookshelf
Aimed at: New users of Google AppEngine
Pros: Well-written, slow-paced introduction to Python and Java GWT
Cons: Lacks depth, uneven coverage
Reviewed by: Alex Armstrong
As its subtitle indicates, this book is about using the Google AppEngine rather than general cloud computing.
However, it starts off with a look at the general idea before moving on to setting up a Google AppEngine account and how much it will all cost you. Unfortunately Google has changed its pricing structures since this book was written, so you need to take the advice with caution and checkout the current terms and conditions.
Part II of the book is where the real work begins - programming AppEngine in Python. You get the impression that the author doesn't really like Python but has to use it because it is one of the main ways of working with App Engine. The example used is a chat room using HTTP as the communications protocol. The workings of HTTP are described in some detail so basically all you need to know is Python.
Chapter 4 shows how to use persistent storage. This is a very slow and gentle introduction to using AppEngine's database. Chapter 5 moves on to authentication via the users service. The next chapter starts a section on the UI It looks at the UI in terms of HTML and templating using Django and chapter 7 extends this to include CSS. Both are very basic and the chapter on CSS assumes you know nothing about it and so it explains selectors and the basics of flow layout with float and clear.
Part III of the book is about programming AppEngine with Java. Once again we are reminded that the author doesn't really like Python and is relived to be back in Java land. The case is put for using Java even if you are a Python fan. There then follows an argument that GWT is the best possible way to create a web app. There are arguments in its favour but it still isn't a mainstream approach to the problem. What you make of this part of the book really does depend on what you think of Java and more specifically GWT. After a simple example we move on to managing server-side data and then on to building the UI with GWT widgets. Finally we have a chapter which returns to the Chat room application and shows how to work with the server side.
The final part of the book is about advanced topics. Chapters 13 and 14 are about using the datastore with Java and Python including queries and indices. Chapter 15 describes some of the other AppEngine services such as Memcache, mail and chat.
The final few chapters are a sort of general round out. Chapter 16 explains how to arrange for your programs to run at timed intervals using the chron scheduler and task queues. Chapter 17 deals with security and 18 deals with issues of administration. The final chapter is a final look at cloud computing and where to go next.
Overall this is a book that doesn't go very deep into the subject and it would make a good introduction for the beginner who wanted a quick start to Python and Java GWT with App Engine.