Saturday, April 12, 2008

Google App Engine ... PyNing?

There has been a lot of excitement this week about the Google App Engine, and it deserves the press. Most people are comparing it to the Amazon's triumvirate of S3, EC2, and SimpleDB. That is a fair comparison, but there is another one that came to mind for me: Ning.

Ning co-founder Marc Andreessen wrote a now famous (famous in SiValley at least) blog about the three kinds of platforms on the Internet. Andreessen claimed that Ning was the only Level 3 platform, where your code runs directly on the platform. Clearly the Google App Engine is also a Level 3 platform.

Ning and App Engine seem different, and they are. Ning has built an application called the Ning Social Network, which is an application that runs on the Ning platform. When you use Ning, you get the code for your own instance of the Social Network and then customize it from there. Can you rip it all out completely and build something from scratch? I don't know. But essentially that is what Google gives you: Ning with non Social Network app.

But wait, what about BigTable? Ning has a little thing called its content store which lets you store your own data structures and then query them ... a lot like BigTable. I am no expert on either, but any Level 3 platform has a similar need that is satisfied by these technologies.

Of course the other big difference between Ning and App Engine is that Ning is PHP based and App Engine is Python. That is also a major difference they both have from the AWS collection. They both support a single language with a set of advanced platform APIs implemented in that language. The other big difference is that both Ning and App Engine are free.

Personally I am thinking of writing a generic web proxy to deploy on App Engine. This would be useful for any Flash/Silverlight development to allow scripting to a site that does not have a nice cross-domain policy, such as ... Ning and Google :-)


terry chay said...

Tiny correction. The language Ning runs is PHP, but the platform it is based on is Java.

Take care,


Michael Galpin said...

You are right Terry. If you are writing code to deploy on Ning, you are writing PHP. If you are writing code to deploy on the App Engine, you are writing Python. However the application environment and the platform implementations are independent of each other. The Content Store on Ning was built using Java. I don't know if Google has said what was used to implement App Engine, BigTable, etc.