The future is distributed: Google App Engine
My love for Python begun many years ago, when a friend lent the Python Bible to my brother. After reading the first pages, I fall in love with this language. It was easy to read and didn't make me feel stupid, something I still feel when programming in Perl. Python is simple, powerful and displays a mathematical beauty. I considered it for the development of Blogalia but Python was not suitable for web programming at that time (end of 2001). Zope was around, but it was the 800-pound gorilla, with a steep learning curve. Then it came Ruby on Rails. At first, it was a shock for the Python community. Ruby wasn't a popular scripting language, but Rails was a killer app for it. Fortunately, Django and another Python web frameworks appeared shortly after.
Yesterday, Google presented its scalable app service, called Google App Engine. This platform allows to build a site a forget the scalability issues, and easier than anybody else. As Read Write Web says in Google App Engine: Cloud Control to Major Tom:
«Google App Engine is similar to the Amazon Web Services stack, which rolled out at the end of 2006 and has since gone on to be utilised by many startups for their infrastructure needs. But it is not a set of standalone services like Amazon's - which includes S3 for storage, EC2 for hosting and the SimpleDB database. Google App Engine is an end-to-end service and bundles everything into one package.»
At this moment, the only programming language available for Google App Engine is Python, and Django is one of the recommended frameworks. This is why so many Python fans are happy (just like me).
Let's see the big picture. This is one of the most exciting news about the future of the web I've seen in a long time. Now that web programming is very easy, the problem right now is not to how to be productive developing web applications. Django and Rails allows it to do it fast. The issue is success: how to scale the app once it's done. That's was my main criticism about Django, Rails and other web frameworks: good improvement for development, but don't address how to grow. I experienced this on first person. TypePad grew from a few thousand users to millions of them and it supposed a huge invesment in programming, infrastructure and human resources for Six Apart. Django and Rails and similar frameworks just let the headaches happen in the deployment stage (remember Twitter issues?). To me, the ideal web frameworks is the one which makes easy development, deployment and scalability. Zope is close to this ideal, but is not easy to develop with.
Amazon saw a good opportunity in this field. S3, EC2 and Simple DB use Amazon's know-how in massive storage, virtualization and cloud computing and put them in the hands of the average joe. In a similar way, Facebook and Salesforce also do application hosting, and abstracts the hosting layer for the developers' benefit.
However, Google goes a step further. We just need to design and develop an application in Python (at this moment), and Google takes care of the rest. No need to fight against Xen or httpd.conf or MySQL optimizations. No more worries because Digg, TechCrunch and Slashdot have linked to your site. Google App Engine makes very easy to develop, to deploy and to scale.
Google App Engime are good to small developers. Not all programmers are good sysadmins, and not all good sysadmins are good PHP/Apache/SQL optimizers. So if a small company has a good idea, the consulting and hosting fee will be the most significant part of the business plan. Google App Engine, hopefully, will cut this expenses (at least, the IT headaches for sure). The services based on this scalable platform will have a serious competitive advantage.
Traditional hosting companies must move quickly. Six months ago, a friend asked me which project did I have in mind. To me, one of the most exciting was a data center to make the ideal web framework real. Most of hosting companies are still in the PC era, reting individual servers. But the future is distributed, not just data storage but also web applications. Right now, hosting customers must develop their in-house software solution for scalability and rent the servers to deploy it. But, why the wheel is re-invented over and over? Scalability must be a commodity. That's what Google has done. However, I think there is still room for many others. Hosting companies can offer a closer relationship and more personal service to companies and users. However hosting companies don't have a ready-to-use scalable solution: opportunity for software and hardware vendors.
I don't foresee any revolution in the short term. Applications for Google App Engine must be developed ad hoc. But they will appear and some of them will be open sourced, ready to be installed and used. Incarnations of Drupal, Joomla, WordPress, Movable Type for this platform will appear, as well as clones of your-favorite-social-network. This will force competition (Yahoo, Microsoft) to offer alternatives. i.e. Yahoo has been pushing Hadoop, an open source implementation of Google distributed APIs, but ATM doesn't offer it as a service (however, there exist HOWTOs for Amazon EC2). Yahoo, Microsoft and Amazon will offer similar services. We should be sure Google App Engine API doesn't become the new Win API, and that openness, standardization and data migration is still a priority.
Legal issues aside, the idea behind Google App Engine excites me. The most innovative times in computer history has been possible when a couple of guys in a garage could develop crazy ideas that challenged an entire industry. I'm happy if the web stays that way.



