One of the joys of being a Web programmer is heading to a dinner party, a haircut, or a reunion and fielding the pitches for everyone's dream for a brilliant Web application. Everyone is always happy to cut you in for 5, 10, maybe even 15 percent of the equity if you just build out the Web site that's sort of like a combination of Twitter, AltaVista, Eliza, TurboTax, and the corner pharmacy, but cooler.
Google App Engine is meant for dreams like these. You write a bit of code in Python, customize some HTML, and bingo, you've got your database-backed dynamic Web site up and running in a few short minutes. The magic comes when the world starts flocking to your Web application, and Google's cloud of computers quickly adapts to the load, handling everything the public demands. There's no need for you to buy servers, load balancers, or special DNS tables. Google's application cloud handles all of the grungy deployment headaches.
[ See also " What cloud computing really means" and "Early experiments in cloud computing." ]
I played around with the App Engine SDK and, sure enough, developed and deployed applications on my desktop with just a few minutes of work. I didn't upload them to the cloud because I didn't make it into the beta program, but I was able to simulate the experience on my office server. The billions of hits haven't shown up yet, but it has only been a few hours now. It works and it is quite simple.
Google me this
A trickier question is deciding whether this is really what a future Web application really needs. There is little doubt that App Engine makes it simple to get incoming data, make some decisions, store it in a database, and then move on. The more complicated questions are often political, technical, and almost aesthetic. There will be a number of programmers who look at App Engine and melt with excitement, and there will be many who tilt their head like a dog that can't understand his master.
Being a Python lover certainly helps, but it isn't necessary because the language isn't that much different from the other scripting languages. A good programmer should be able to shift gears quickly and easily. There are rumors that Google has a number of other languages waiting around the corner, but there are equally good arguments that this may not be happening as soon as some devotees would like.
Java programmers, in particular, are used to being known as providing the most scalable and flexible applications because the language and the API are some of the most sophisticated ensembles around. The J2EE standard nurtured tools that simplified some of these problems, even though it never really turned out to be as simple as the sales literature promised. Today, Java's sophistication is probably hurting the language as much as helping it. A quick survey of Web hosting services shows that shared hosting for JSP applications begins around $10 a month, while Python shared services can cost as little as $2 a month. The JVM may speed things up and provide better service, but it comes with a hefty memory footprint. If the brutally competitive Web hosting business can support five Python sites for every Java site, then perhaps Google is more interested in the long tail, the niche Web sites, than the big iron.
Read on: First look: Google App Engine
Related articles
Analysis: Do new Web tools spell doom for the browser?
The Web is evolving into a full-fledged app-delivery platform, calling into question the browser's ability to fulfill the needs of today's rich Internet apps
Special report: Rich Web development tools bring bling to the browser
The Test Center guide to rich Web app dev tools
Frameworks for rich Internet applications can be lightweight or heavyweight, open or closed, and almost anything in between
Analysis: AIR gets rich apps right
Adobe's AIR is safe, fast, versatile, and open, and it will be the standard platform for rich Internet applications
Hands on: Adventures in lightweight Internet app development
Follow InfoWorld's first steps in lightweight app development for emerging mobile devices and desktop widgets
Review: Adobe breathes fresh AIR into RIA
Adobe's rich Internet application toolkit lifts Flash and AJAX out of the browser and onto the desktop
Review: Microsoft Silverlight rivals Flash, AJAX
Redmond's new rich Internet application boasts strong development tools, a small browser footprint, and cross-platform support
Review: Curl 6.0 enrichens the rich Internet toolkit
Latest release is highlighted by easier customization, more sophisticated effects, AJAX interoperability, and a native-looking Mac port
Review: WaveMaker’s point-and-click Java
WaveMaker Visual Ajax Studio and Rapid Deployment Framework make a fast and simple facade for Hibernate and Tomcat
Review: Refining the art of enterprise Web apps
JackBe Presto and Nexaweb Enterprise Web 2.0 Suite converge on a powerful and productive model for server-side mashups supporting AJAX clients
Review: Top AJAX tools deliver rich GUI goodness
Backbase, Bindows, JackBe, and Tibco General Interface bring fat features to enterprise Web clients
Review: Inside open source AJAX toolkits
Dojo, Ext, Google Web Toolkit, jQuery, MooTools, Prototype, and Yahoo User Interface perform amazing tricks with JavaScript; we explore what makes each tick to help you determine which one to pick
Blog: Neil McAllister | Fatal Exception
Blog: Martin Heller | Strategic Developer
Blog: Tom Yager | Ahead of the Curve