I’ve gotten a chance to play with the technology a bit in the last few weeks and have a few things to say about it. My first response towards it was pretty ‘whatever.’ There was the fact that the last over-hyped Google for developers launch (GWT) isn’t really all that. Automatically scalable web apps are pretty neat, but there are already a bunch of grid offerings available. MediaTemple, EngineYard, and Amazon’s EC2 are all variations on this theme. Compared to these production services, Google’s offering is a little weak. First, like all Google products, it’s Beta. Only 10,000 invites are available. You can only have 500MB of storage. You can’t upload a file larger than 1MB (found this out the hard way while building Apptunes). You can’t launch a background process. You can’t take too long to service a request. And so on. Of course, it’s a free private beta, so all the whining is only slightly applicable. The end result was, we built support for it, built a demo, then I forgot about it and moved on to other things. Until I few moments to mess around at work. Our demo didn’t make much use of Google’s model support. Nor did I have to write a lot of Python. So I set out to build a more complex demo application that would let me play around with the persistent storage engine. It wasn’t before long before the App Engine (and python) really started growing on me. A major benefit to using Appcelerator is all the service backends are structured similarly. So although I’m a Rails and Java person, I didn’t have to think too hard about where to put things in my App Engine project. Instead I could focus on learning Python. The good I found about Python:
- It’s a stickler for spacing. I like this since when I was a TA I had to look at a ton of indecipherable code.
- I don’t have to write a lot of punctuation or litter ‘end’ everywhere
- The ternary operator is there, but a little weird (
return1 if <condition> else return2
- Munging arrays is syntactically very sweet:
notes = [{'note': note.text} for note in query]