Wednesday, May 28, 2008

Rapid Development with Python, Django, and Google App Engine with Guido van Rossum

First off, most of what attracted me (Andy) to this session was the presenter. Guido is the creator of the Python programming language. Currently he works at Google, and actually refers to himself as the benevolent dictator of the Python community. Even though I don't really have much experience at all with Python, I was excited to here a presentation from such a prevalent language's creator.
Regarding App Engine in general, I really have to question Google's decision that their entry into the cloud computing world would only address web applications. With all that nasty computing power, they're only going to let developers deploy web applications on it? Why not allow raw data processing? I think this is a major drawback from their offerring in comparison to Amazon's Web Service engine. While a little more complex (and requires a credit card to start), I see much more promise in Amazon's offerring. Either way, I'll go with it that Google only intends to address the developers who need to get their application of the ground quickly, and don't want to shell out any dough or effort in obtaining another deployment environment.
Moving on to App Engine, your code (and the system itself) will only ever handle HTTP requests, nothing more or less. When you deploy your code in the cloud at Google's data centers, the App Engine framework will automatically scale the resources. As a developer, you'll never need to worry about any of the infrastructure. As the use of your application grows, App Engine's magic will handle this nastiness for you. Not unexpectedly, the development of your application happens on your desktop using App Engine's SDK. The SDK provides a one click deployment of your application to the cloud. Another interesting note is that Python is the programming language in which App Engine applications are coded. Again, this is yet another differentiator for enterprises. I'd guess that ASP/C# and J2EE are the two most prevalent platforms for web application development in the enterprise today, and obviousily the Microsoft solution has siginificantly less market share than Java. So why would Google choose Python? Maybe it integrates better with how they wanted to package App Engine and integrate with their other systems? Maybe they intentionally don't want to address the enterprise need for cloud computing? Discussions with Googlers and other conference goers throughout the day never really shed any light on this question. Maybe their reasons for offering a cloud computing solution are different from those of Amazon? Guido continued overviewing the quick development of a basic guest book application using technologies of App Engine. Nothing too exciting, and nothing really all that different from what is covered in the App Engine documentation. Well, except for one thing. Django is a Python templating framework that App Engine choose to include with its distribution. Like Python, Django is nothing new, its just something Google decided to provide with App Engine. The only thing, the version they provide is extremely old, and in fact, they recommend that you upgrade to the latest version before development! This seemed really annoying.

No comments: