More like observations, really. There's nothing here that's new or interesting, if you've been following it at all. But, if you've been mildly curious and haven't taken the time to really read anything at all, this may be worth your time.
I was really excited about the app engine beta. But that's mainly because I like messing around with new tools and technologies. And, unlike a lot of people I know, I consider it valuable to branch out into areas which most likely won't lead directly to a pay increase. Call it personal development or stupid hippy nonsense, depending on your personal preference.
Anyway, I've been playing around with the app engine for a couple of weeks now. Nothing serious or meaningful; really just trying to get my head around some of the differences. So a little toy apps (I still think of them as homework assignments) here or there to try out some concept, trying to keep up with the mailing list, that sort of thing.
Anyway, here are some random thoughts so far:
Python's still an incredibly fun and easy language. No, it isn't as powerful as ruby. But it's so much more intuitive that it's just silly. I thought I was just biased, but a couple of friends who have tried both agree. For you die-hard .NET fans, I highly recommend checking out Iron Python. Being able to open up an interactive interpreter and dink around with various classes is a great way to learn how to use those classes. (Or, for that matter, just to observe what they're doing and why something breaks. It's a lot faster for me than using a debugger).
App engine is still definitely in beta. There are some huge bugs on the bug list. But they're also cleaning bugs and adding features at an astonishing rate.
Some of the basics they left out will be deal-breakers for a lot of people, if alternatives don't appear quickly. One that I keep running across on the mailing list is the lack of XML support. I'm really shocked this hasn't been fixed. I think XML's way over-used, but it definitely feels an important niche.
The data model seems to be a huge learning curve for anyone who's ever done any database design/theory. For one thing, writes and joins seem to be ridiculously expensive. The "best practice" that I've seen most often seems to be "run one query, against one table, for each request. At the most." Since I tend to try to normalize everything, unless there's a reason not to, that's a little difficult to accept, deep-down.
They aren't really targeting the enterprise. Which is kind of ironic, since one of the biggest saling points (in my mind) is scalability. I suspect they're getting a solid basis with individual developers.
Have I mentioned the scalability? What they've given independent developers just blows my mind. You accept the limitations of their sandbox, and your app runs on their server cloud. I can't think of anyone besides amazon who's even close to that league. And, with their EC2 offering, you have to waste time setting up and configuring the server.
With google's offering, you run a little command-line app, it uploads, and possibly re-indexes (when that happens seems to be a little fuzzy, and it can be *brutally* slow...like I said, definitely beta) your database. You start getting tons of hits in Australia, they load your app onto servers down under and process requests there.
Anyway, it's a nice change of pace from SQL and C#.
Oh, yeah. The whole reason I started this post. With the latest SDK release, they've added a bunch of image processing functions. These seem to be based on the Python Imaging Library, because the local server complained about that being missing when I started it the first time. That was the only place I've seen this mentioned. I'm familiar with it from way back, but I thought this little hint might help some of the newer people who seem to be drifting in from PHP. So, if you get that error and the Image API doesn't work, go to that link, install the library, restart the GAE server, and you should be good to go.