On App Engine

Paul Hammond, 4 December 2008

Behind the scenes, Minimuni is written in Python and hosted on Google App Engine.

My initial impressions of App Engine have been good. Really good. Everything just works good.

Like Rails, Django and Merb you're up and running in minutes. But unlike those frameworks, once you're done building an app there's no long complex deployment tutorials to follow, you just type appcfg.py update and your app is live.

The tutorials and documentation are also clear and easy to follow. I spent much longer remembering how Python works than I did learning the nuances of the AppEngine APIs. I wish more developers (particularly the Ruby crowd) remembered how important documentation is; it doesn't matter how awesome a library or framework is if nobody can work out how to use it.

The only problem I had was that the process to get things running under my own domain was stupidly over-complex. This is mostly because the flow was set up to sell me Google's domain groupware hosting, even though I'm just not interested in it. This is big company thinking in action - making individual products worse in an attempt to cross promote, and forcing code reuse even when it doesn't make sense. Compare it to Tumblr's awesome implementation of custom domains to see how easy this process could be.

Minimuni is deliberately not a complex application. It stores no data behind the scenes, so I've missed some of the problems other's have had with App Engine. On the other hand, I've developed plenty of small one-off applications over the years, and I'm bored of running a server underneath them. Every time I upgrade Apache or MySQL or a random Perl module something breaks in another project which I then need to fix. Of course, the App Engine API is going to change over the years, but hopefully in a much more controlled and backward compatible way.

App Engine is pretty much perfect for apps like this, and I can see me using it a lot more in the future...