Wednesday, October 15, 2008

GAE

Google App Engine is supposed to let you seamlessly scale your app on Google's hardware. But I'm afraid it isn't so. Not only does GAE not scale (they put caps on everything), but the non-relational backend they force you to use (for scalability) makes Django support horribly painful. It's a miracle that Django manages to work at all, and it's an even greater miracle how much of Django you can actually get working with something like app-engine-patch or appengine-helper. But though it works somewhat, it doesn't quite work enough.
ModelFormSets! I need them desparately, but for some reason they work not one bit. I try to use them and I get metaclass exceptions--presumably the result of messy leftovers from the app-engine-patch. So instead of using them I must not use them, and make do with regular FormSets, and the consequent data ingress/egress code which I must write manually. It is a recipe for spaghettization, which is what I'm experiencing. And however desparate I feel to stamp out this crufty code, without a fully operational Django it seems I cannot.
So that brings me to my point, which is that if GAE is to be useful at all, it can't be incompatible with the standard way of doing things. What's the point of hypothetically scaling, when none of the technology interoperates smoothly, and I (the humble developer) must spend ridiculous amounts of time puzzling out why some feature I desparately need simply won't work? And then after I'm done puzzling I have to out and spend more ridiculous amounts of time reimplementing the feature for myself; or worse, not implementing the feature and just letting my code overpopulate with redundant crud.
To hell with app engine. Give me back my relational database and real python.

0 comments: