Google is working on a tool to improve data portability in its App Engine after developers using the software to create a cloud-computing platform found the only way to import or export data is using a Python-based API.
The Google App Engine is intended to help developers build and scale applications to run on Google's infrastructure, says Peter Koomen, Google's product manager for App Engine. "It's still difficult to build web apps," he says.
Here's why in a nutshell: a web developer who has a bright idea has a steep ramp to climb before they can really get underway. They have to set up an infrastructure stack-renting or buying servers, setting up a web server, configuring a database engine-burning up both time and money. That's before a single line of code is written. Then, when her website gets popular (see, it was a bright idea), it can't handle the load. The site needs to scale, and to do it quickly. So the developer has to burn even more time and money (under pressure) to rent or provision more infrastructure, while figuring out how to split access across multiple web servers. It isn't an easy job.
It's also a common issue. "You see this a lot with the newer social apps coming out," says Koomen. Certainly we can point to several such examples, including Twitter's scalability problems, but the need is similar for any cloud-based enterprise application. Business developers, too, need to worry about getting the right infrastructure in place and making it secure and scalable.
Google App Engine, says Koomen, fixes these problems. The application developer can focus on the application, because the App Engine takes care of the infrastructure. Web technologist Niall Kennedy said in a blog: "Google App Engine lets any Python developer execute CGI-driven web applications, store its results and serve static content from a fault-tolerant geo-distributed computing grid built exclusively for modern web applications."
Sounds cool. So what's the problem? The Google App Engine uses a data store that is... different. It's not precisely SQL, says Koomen, because the data store is built to run across multiple servers. While most developers who are familiar with SQL databases (from Microsoft SQL Server to MySQL) won't have a problem using the data store, some things aren't technically possible. "These restrictions aren't as terrible as you'd think," adds Koomen.
Using Google App Engine today also requires Python, which might present a problem to developers who are more familiar with other languages-whether dynamic languages like PHP and Perl, or traditional languages like Java or C#.
NEXT PAGE: The bigger question