Google App Engine: Thanks for the Java, but What I Really Need is a Better Database

It is official: Google App Engine now supports Java in addition to Python.  While I am a happy about the news, it doesn’t change my view of app engine: good for hobby and side projects, but not a platform for a “real” application.

What makes it limited in my eyes is not the language support, but the database support.  Python is a fine language.  There are things I like about it compared to Java, and some things I don’t like.  On the whole, it is easy to learn and yet very powerful.  I can not think of any web application I have ever made that I could not implement in Python just as well as I did in Java.

On the other hand, I do not know of any web applications I have made professionally that could run on the app engine’s database.  Even my side-project WhereDoKidsEatFreeToday site is running into database limitations.  Some of the showstoppers for me include:

  • Very limited query logic (no OR statements, cannot do inequality comparisons on multiple columns, etc)
  • No aggregate functions
  • No full text search
  • No data schema migration support
  • No data backup ability for rollback

I understand that they are bulding a non-relational database that is designed for scalability.  I understand that, and I understand choices like limiting to 1000 rows returned and no table joins.  I can work around those.  The issues listed above and others like it, however, do keep me from considering it as a platform for application development–even if I can code in Java.

Leave a Reply