At Web Expo 2.0, I attended the session on Google App Engine and listened to the Q&A between the Web applications developer community and the Google App Engine product development team. I also managed to get my own coveted code that will let me in to the beta program. Now, I just need to find a real developer I can work with to take advantage of this application platform. I’ve already gotten some push back from people who have looked at Google App Engine and claim that no real applications will wind up there. So I thought it would be useful to think about the kinds of Web Applications that are most likely to gravitate to Google and the kinds of people who will create them. The short answer is this: If your product or service is information, Google App Engine is of interest. If accessing and manipulating the information about your products and services is increasingly important to your prospects and customers, then Google App Engine should be of interest.
Information and Technology Architects Who Favor Flat File Structures. What appeals to me most about the Google App Engine is the very thing that has many developers scratching their heads. It isn’t based on a relational database model. Its structure is that of a huge object space with a flat, non-hierarchical “bigtable” of XML encoded, schema-less flat files. You can add new field definitions on the fly. You can sort, select, and query (using GQL). What I’ve discovered is that all the “best practitioners” among my client base have gravitated towards a technology architecture in which information is stored in XML-tagged flat files, and the middleware that is used to query, retrieve, sort, filter, and refine results is search.
Information Applications that Can Deal with Small Chunks of Data. The Google App Engine is currently optimized to handle applications that make requests and return responses in relatively small chunks. Responses are currently limited to 1 MB response sizes. But the Google team is working on support for larger response sizes, in order to support large media files, for example.
Application Developers Who Don’t Currently Need large Batch Updates. The Google App Engine—at least the current beta version—does not yet support large batch transactions. Nor will it run long-running Cron Jobs (scripts that wake up and run to generate reports at specific intervals).
Application Developers Who Are Comfortable Using Python (For Now). Right now, Python is the first programming language supported by the Google App Engine. The developers at Web 2.0 were quite vocal in asking for support for Ruby and PHP. I actually believe the Google product manager’s reassurances that additional programming languages will be forthcoming. I suspect that Python may get a boost, since there will be folks like me looking for Python developers. (Guru.com here I come.)
Businesses that Are Willing to Accept Google’s Terms of Service. The information privacy for anything hosted by Google in Google App Engine will be the same as what’s covered under its current privacy policies. That means that Google will absolutely crawl your data, as it does our email today, for those of us who use gmail. It does NOT mean that Google will expose your data to the rest of the world. So there’s a leap of faith and trust here that many people won’t be comfortable with. On the other hand, if the purpose of your Web applications is to make it easy for customers to find and use your information, it seems to me that Google App Engine would be a good platform on which to develop those applications.