The Real Strategy Behind Google App Engine
I just had an "OMG this will change the world!" kind of moment while playing for just 5 minutes with Google's App Engine. Let me explain.
A bit of background first: The Google App Engine is a newly-launched service from Google, that for a change, seems to be well thought out. The service offers a Python-only environment (for now) to build applications locally and host them on Google's vast infrastructure. The idea here is that you don't have to worry about scaling your application to handle massive traffic and let the App Engine running on Google's servers deal with it. The Engine comes with lots of goodies like handling database stuff, user logins (and what a boon that will be for Google accounts), and others. All in all, a nice comfy environment for rapid application development and reliable hosting.
But from all the buzz on the net, I think there is something missing that I just hinted at above:
to build applications locally and host them on Google's vast infrastructure
App Engine comes with its own development setup that runs off your computer (available for Windows, OSX, and Linux). You develop the application on your computer, run it, test it, add features, and then upload it to Google's computers. My question is this: What's stopping Google from turning the local development code into a full desktop-based runtime for web applications? Why keep it as a development-only environment?
Let's look at this from another angle: the desktop-webapp integration market. Adobe recently released their oddly-named AIR (Adobe Integrated Runtime). In the AIR-world, you can write applications in HTML/CSS/JS or Actionscript and package them into desktop applications that run within AIR or within the Flash player in the browser. The AIR environment is available for Windows and Macs, and Linux support is on the way. Brilliant move: one code base, both browser and desktop functionality.
Microsoft also has a similar play in the form of .Net, and more specifically Silverlight. The .Net runtime is available for many devices and platforms (mobile, desktop, and I think even the XBox). With Silverlight, Microsoft's play is to give developers a platform to use .Net in the browser; this is coming in Silverlight 2.0 this summer. So with this, again, one code base can be used on the web and on the desktop to give true multi-platform programming.
There are other entries in this market, Mozilla Prism being a prominent example. They all promise the same thing: one code, many places to run it with varying details.
Now back to App Engine and to the question I posed: imagine Google comes out with a desktop runtime/environment that turns App Engine webapps into desktop-based apps. This will be directly parallel to Adobe's AIR but with a big difference: the same code will also be easily deployable on a reliable and scalable infrastructure - Adobe doesn't have that.
There is another difference: because of the way App Engine works, you could easily imagine it talking to Google Apps like Google Docs etc. A desktop App Engine will bring Google's applications onto the desktop and open up a market-disrupting war: direct office productivity competition with Microsoft. To rephrase, App Engine could be Google's way to enter Microsoft's turf on the desktop.
So any evidence for this? Nothing solid, so it's all speculation, but I'll point to three hints:
- The name. It's not App Server or App Service but App Engine. Google understands branding well enough (it's arguably the main source of their traffic) so their choice of words here is intriguing. And I can't help but think that Google's App Engine will drive some sort of Google Gears. Nudge, nudge, wink, wink.
- When creating an application, you can specify that only users of a certain Google Apps domain can use the app. This integration with Google Apps is perhaps hinting at bigger things to come.
- The APIs available in App Engine: already App Engine supports dealing with mail, and given the point above, you can imagine an API for the other Google Apps. This would enable a go for the desktop market.
What do you think? I think this is the best move out of Google yet and as disruptive as AdWords was.
Subscribe to Things of Sorts
If you liked this post, please subscribe to the Things of Sorts RSS feed: ![]()

April 9th, 2008 at 12:42 am
Everyone is moving Web applications off the web. Why? Because of the inherent limitations in today’s “web”. As well as a tiny feeling of dependence on the OS vendors… I have a feeling Google is not trying to do that here, but only a hunch. When Guido said earlier today “no writing to the filesystem”, that made me definitely think of them throwing this stuff around their clusters and not on a desktop. Plus with the WSGI interfaces and all… ah…
My intrigue this week is… anyone following what Tim Berners-Lee is up to this week? And his “grid”? Now thats what I’m looking for, true “cloud computing”.
April 9th, 2008 at 1:35 am
As someone hinted at the possibilities of available scalability before, Google can easily buy, use and spread the apps that work out really well. They won’t have to blink to make it happen, since the apps are already on their servers and the external developers are already familiar with their engine.
And yes, your story is even much more astounding
April 9th, 2008 at 4:19 am
Don’t forget about WebKit, the engine under Safari and Apple’s stealth (which turned out to be a bad idea) install on Windows and that apps are already coming out that run on WebKit.
And Eric Schmidt, Google’s CEO, is on Apple’s board.
April 9th, 2008 at 8:02 am
Thanks for the comments everyone.
@Justin: By limiting access to the filesystem, they’re basically forcing you to abstract everything to use their libraries to get work done. This abstraction can be translated to the desktop very easily. Example: App Engine’s local development toolkit has a local data store that works just fine when building an application locally.
@Steve: Webkit is at the heart of Adobe AIR, as well as being the heart of Konquerer in KDE (on Linux) and Safari. The interplay between Apple and Google is very interesting (iPhone-Android being an excellent one). How this will evolve in the future is going to be fun to watch.
Pierre
April 9th, 2008 at 8:47 am
I think that they are using their own platform to be able to purchase the latest and greatest apps…
One issue that any large company has is when they buy a smaller company they must integrate their product into their infrastructure.
Now if google sees some really popular sites or products, they can offer a decent amount of money for it… and have it integrated in one foul swoop.
For Example, when they bought JotSpot, it took them a year to get it ready for prime time… That will not happen with any product built on the App Engine
my 2c
April 9th, 2008 at 10:10 am
Mark,
Yes that’s another good side-effect of getting startups to use their platform; thanks for pointing it out.
Another side-effect is making it oh-so-easy to use Google Accounts (try porting that to another platform!).
Pierre
April 9th, 2008 at 10:02 pm
[…] on Amazon’s (AMZN) platform. And Google is competing with Amazon to develop the the future Operating System for Web applications. And Google is winning. Posted by phpimpact Filed in Internet, Programming, Web […]
April 9th, 2008 at 10:56 pm
Why would you want to run this on a desktop? I think you don’t fully understand the concept and the advantages of cloud computing (i.e. users don’t have to install or upgrade anything, accessible from anywhere, etc.).
April 10th, 2008 at 7:31 am
Jake,
Thanks for your comment. Let me try to rephrase the argument to answer your question.
There are different computing models as you noted: cloud computing and desktop computing. Cloud computing through a browser has significant advantages but also significant disadvantages: the security model of browsers, the lack of important features in browsers (drag and drop anyone?), and simply, sometimes, there is no net connection.
Installing a web app on the desktop will side-step a lot of these shortcomings and my argument is centered on making this easier for developers. AIR’s promise is exactly that, and Google’s can with one step also have that promise.
Am I making any sense?
Thanks,
Pierre