Last week Google opened the doors to their AppEngine beta, their new platform for entry level web application development. I signed up and spent some time getting familiar with the space.
I haven't built anything of substance in python (a few scripts and some maintenance work), so the learning curve for me includes the language and API, relevant web frameworks like Django templates, and the Google platform and practices.
I started out be getting familiar with what AppEngine is all about by watching the videos from the launch of the preview release (closed beta) of the product in early April (2008): Part1, Part2, Part3, Part4, Part5, and Part6. Part2 was the best, providing an example of writing a simple guest book application and deploying it on the platform. Some of the later parts were good for demonstration applications and overview of the application dashboard.
Signing up was trivial, although requires a mobile phone to which Google SMS you a security code for application verification (I had to use my sisters). I had a little bit of trouble with unique sub-domain names (*.appspot) for my project, even at this early stage. The free package provides 500MB of storage (BigTable and GFS it seems), approximately 5 million page views per month, and 3 distinct applications. Quotas are applied to each application and are assessed each day.
The AppEngine home provides a wealth of documentation for getting off the ground quickly. The overview is nice, and I took the time to write out all the code by hand in the getting started tutorial that involves building and deploying a similar simple guest book application. The application dashboard looks slick, although I need to build and launch something (get some data in there) before I can really comment on its features.
The docs section of the site provides detailed information on the tools and development environment, which includes a simple webapp framework, the API for the datastore, and a local development server that mimics the features of the production environment (among other things). There is also a good and growing set of articles for specific application and development features, and a very active user group hammering away with Q/A.
It's early days for me, and I intend of spending a week or two learning the language, the relevant frameworks, the platform, and somewhere in there prototype a toy application. At this early stage I really like the whole package. I get the same feeling from App Engine as I did nearly 10 years ago learning Java coming from a C/C++ background. It feels as though the platform is clamped down to promote best practices and to focus effort on business logic.
Java hid all the mess of myriad of platforms, promoting a focus on the language and what you wanted to do, and App Engine is doing the same, although shifting the focus to web site infrastructure. You still need to know what you want to build and how to use the tools, but the best practices for data IO and organising your code for a scalable and maintainable web application are locked from the get-go. With Java, when I wrote a library or a GUI, I felt more productive given that my code would work the same any/every-where (whether this was completely true or not). I get the same kind of feeling when hammering out python for App Engine, that a well written application that is found to be useful will easy scale to the moon. Time will tell just how true/costly that implicit promise will be.
The platform looks competitive with Amazon Web Services now, and the loss in granular control will likely be a worth the trade-off for simplicity for most small to medium web applications, presumably their core market.
Monday, June 2, 2008
Priming with Google App Engine
Subscribe to:
Post Comments (Atom)



1 comments:
There is a great set of example web applications with source code in this google code project: google-app-engine-samples.
Post a Comment