2008-09-20

Initial impressions of Google App Engine

Now that I have a *really* basic web app up for myself, I figured I would give my initial impressions of GAE.

So deploying on GAE is dead-simple. It is rather nice how easy it is to launch the development server locally, poke around, and then deploy to a live site. And all without having to make sure your web server stays up. And having Django included is handy as it lets you get up and going rather quickly. And using the Google App Engine Helper for Django really makes getting up and going really easy. And the library has been good along with its docs. And the articles have been handy. And with the docs easy to download and the GoogleAppEngineLauncher on OS X, the whole experience has been smooth and professional.

But then you run into the problem of the Google App Engine Helper for Django being developed outside of GAE itself (at least using the packaged version available for download). For instance, right now I can't run ``python manage.py test`` as the newest version of GAE verifies that environment variables are set up as expected. Unfortunately, if you use Django's test client, it skips setting that up and thus the tests error out in GAE itself. So as of right now I can't run my unit tests. Not a big deal as I do interactive testing by hand to make sure stuff works, but I am still a big enough fan of unit testing that I would like an automated way to make sure any site-wide changes I make don't break a single page without having to check manually and going through localhost. Hopefully this will be rectified once the Helper releases a new version that support Django 1.0 and I can then just move over to Django 1.0 for everything (I might not wait and run out of svn if it takes too long for the Helper to get an official release or use something like Twill to do automated tests for actual pages).

And I wish there were more unit test helpers in the GAE library. For instance, there is no programmatic way to log in. Yes, the dev server gives you a fake page to use that you can use, but I want a way to do it from code so I could log in through my unit tests.

Overall I am still very happy. Short of the testing issues everything has gone very smoothly. Considering GAE is a preview release and all the Django stuff is pre-1.0 I have faith the kinks I have run up against will get ironed out now that Django 1.0 is out and everyone has a stable target to aim for. And I probably should just bit the bullet and learn Twill or Selenium for page verification testing (I prefer the former since I have no issue emailing TIP or Titus for help =).