Tuesday, April 15, 2008

Google App Engine Beta First Impressions

For a day job I work as a Smalltalk developer on a win32 system. However for a long time I have been meaning to get into web development. I tried to get started with Ruby on Rails, but spending an evening just setting up the database and the web server was no fun. And that was just to play around with it on my own machine, if I actually wanted to share my creation with the world I would be in for a whole new set of pains.

This, claims Google, is where Google App Engine comes in. According to the this spiffy Google video getting my Python powered web site up and running will be a breeze. However what really excites me is that App Engine also gives you access to Google's super-cool distributed datastore, basically you get a bit of storage space and CPU-time on the Google super-computer. Sounds good to me.

At the moment there are only 10000 beta spots available, and it seems I missed out, so I'm in the queue. Hopefully Google will be kicking inactive accounts and giving spots to people like me who are waiting. Not to worry though, you can still get started with the SDK. I happen to be in front of a Windows XP box at the moment so I'm trying out the Windows version.

The first step is to get Python 2.5 from here. The Windows version comes with a spiffy MSI installer, so you can't go wrong.

Next up we need the SDK itself. Once again the install is quick and easy.

next it's time for Google's getting started guide.

The guide is quite nice. Note that the SDK doesn't come with a fancy IDE or anything like that. You will be playing around with the command line and your favorite text editor, but it's all fairly simple. The SDK does however included a web server to test your code on your development machine. Running it is as easy as a single command. Hooray! no more screwing around with DBs and complex web servers on developer machines. The tutorial will also give you an introduction to some of the cool stuff that comes with App Engine: integration with Google user accounts, using the 'datastore' (not 'database'), using django templates etc. One thing you will notice is a lot of this stuff is very specific to the App Engine platform. This is very much a double edged sword. On one hand tight integration makes traditionally hard stuff like account management almost trivial. On the other hand it means you will have a hard time moving to another platform if you ever decide you don't like Google's hosting.

On another note I did come across a bug in the tutorial see:
http://groups.google.nl/group/hosted-settingup/msg/378021de6ae22895

Before you get too excited another thing to look out for is that the App Engine environment is fairly well locked down. You can't do anything to close too the OS, like writing to files. Also if you want to import a Python module if needs to be pure Python. That means, for example, the Python Imaging Library is out, which probably kills off a lot of cool ideas, though Google may decide to support this library in the future. Also at the moment SSL is not supported, though I'm sure it will be ready when the beta finishes.

All in all I was very impressed with the beta. Google have managed to make getting started dead simple. But time will tell if the platform will be flexible enough for "real" websites, or just toys.

No comments: