Cloudy weather developing, are you ready for the storm..

After my speculation last week on Google’s cloud play, yesterday they announced Google Application Engine (GAE), I figured I would wait a day before providing a response. Overall the speculation was about right but the language implementation was some way off, here are my initial thoughts.

Guido van Rossum (GVM) obviously pulled rank on Steve Yegge (SY) and presumably GAE was already under way before GROR. I would certainly imagine SY’s GROR seeing light of day along with Google’s CVM (Cloud Virtual Machine) with JVM languages. I’m now thinking the language order might even be Python (obviously), Java, Javascript (GROR) followed by the rest and excluding C++, my assumption here is that they build their CVM on Sun’s JVM. Although they could pull an android and not use the JVM but instead use there own Java runtime. If Google was paranoid and wanted complete control in their cloud infrastructure, using their own Java engine removes the third party reliance on Sun for the JVM. The disadvantage to this route is they loose all that has been built on the JVM, like extra language support etc..

But what do you get with GAE, what’s the real killer benefit of using it? As someone who has been building and maintaining web applications for nigh on a decade I have come to appreciate the advances in frameworks and libraries. When Ruby on rails (ROR) appeared web app developers suddenly found they could create basic prototypes in record time. In many ways ROR was the climax of MVC domain modeling based around the combination of web server, MVC code and SQL backends. Unfortunately ROR is the climax of an old paradigm that does not scale as easily as it could. If you look at the backend of successful web players like Ebay, Amazon, Google etc..Their architectures are very different from the traditional 3 tier model ROR was built on. The architectures that are used by these organisations are designed with rather different goals for example.

  • Huge distributed storage
  • Load balanced storage
  • load balanced models/views
  • Distributed session replication
  • Joins replaced by indexes
  • Map reduce rather than SQL
  • High fault tolerant
  • Transparent failover
  • Multi datacenter and location

All of these features solve issues that we (My companies & clients) have had to deal with manually in the past. Building solutions to these features is hugely time consuming and implementation is extremely costly. Google with GAE have just delivered most of these absolutely free of charge, with GAE you don’t need to worry about this stuff anymore it’s done for you. This isn’t just evolution it’s the next logical stage in web app development and what’s more it will be available to anyone with an PC, internet connection and rudimentary knowledge of Python. Oh and for the traditionalists they even provide GQL so you 3 tierers feel right at home! So guess what, if you are a small web apps developer do yourself a favour learn python and get coding for GAE it’s a lot easier than building everything on the list, you will be laughing all the way to the bank at your ROR competitors. There are also some great killer development features such as instant deployment and version control along with an administrative console.

Of course anything thats is as innovative as this is bound to put a few noses out of joint, those that have most to loose by its arrival. Already I hear negative rumblings in the ROR community, my take on that? Do what Google has done with python on their infrastructure, build something scalable and competitive that supports your beloved framework. The biggest problem for anyone competing is likely to be ‘Free’, you could build a ruby applications engine using AWS, but who would sponsor the ‘Free’ version?

Where is Microsoft in all this, well I guess they have their own cloud (red dog?) ideas based around similar features and using their own preferred languages like C# and Basic/ASP on their CLR. They might even throw a bone to the ROR folks via an ironruby cloud infrastructure, but I wouldn’t hold my breath.

But we also need to consider what we are getting into with GAE, if we build into GAE we are locking ourselves into Google’s future. During the campfire announcements the presenters kept using the ‘P’ word (‘Platform’,’our platform’ etc..),so lets be careful out there folks, we know how it turned out with the Microsoft Platform don’t we..

P.S. Anyone spot my purposeful error in this post regarding GAE features?

About this entry