Google App Engine Limitations

I’m really digging the concept that is Google App Engine, but I think they a little bit of work to do before I would be willing to put any effort into porting to their platform. Their marketing points for this include the fact that it allows you to build, deploy and iterate your application quickly, but the fact that I have to now port just about every Python library out there to use BigTable and URL fetcher is a serious productivity loss.

  • Python Only – This doesn’t bother me, but is still a deal breaker for a lot of people.
  • No way to schedule tasks. (cron)
  • No way to dynamically route subdomains. You can’t point * at a single script. So your urls have to look like and not
  • You can’t use any existing libraries that make network fetches. Google forces you to use their URL Fetcher class. Which is broken in several ways:
    • No way to set timeout
    • No HTTP Auth Support
    • Does not follow redirects
  • You have to user BigTable for your Database Layer, so you have to port any existing database code you have. There is also no ORM for Django to use BigTable yet, which means Django Admin interface will not work.

On the bright side, their publishing and versioning process is outstanding. The administration interface is pretty sexy so I’ve take quite a few screen shots for anyone who didn’t get an invite and would like to see it.

Picture 1