Wednesday, April 09, 2008

Google App Engine and Python

by Asim Jalis

Check out Google App Engine. There is a waiting list for developer accounts so I would recommend signing up ASAP. Google App Engine enables you to build web applications on the same scalable systems that power Google applications. No assembly required. Google App Engine provides a fully-integrated application environment. It's easy to scale. Google App Engine makes it easy to build scalable applications that grow from one user to millions of users without infrastructure headaches. It's free to get started. Every Google App Engine application can use up to 500MB of persistent storage and enough bandwidth and CPU for 5 million monthly page views. This might be a big breakthrough for Python: Google App Engine applications are implemented using the Python programming language. The runtime environment includes the full Python language and most of the Python standard library. Although Python is currently the only language supported by Google App Engine, we look forward to supporting more languages in the future. Here are my initial thoughts. 1. Their data model might work better than Amazon's S3. If they offer instantaneous updates and other semantic guarantees than using their data back-end would be a no-brainer. 2. They use Python. This is incredible. I suspect a surge in demand for Python developers. 3. Even though there is a waiting list for developers, the SDK is publicly available. So it should be possible create some test applications. 4. Django is supported. Google App Engine supports any framework written in pure Python that speaks CGI (and any WSGI-compliant framework using a CGI adaptor), including Django, CherryPy, Pylons, and You can bundle a framework of your choosing with your application code by copying its code into your application directory. 5. This takes care of the hosting and deployment issues connected with Python. 6. User accounts. The Python app can use Google user accounts. So no need to write CAPTCHA or manage user accounts on a fragile local database. 7. Database. The app engine provides a data model which is very similar to the way Django works: define your classes and fields and the engine generates all the object-to-relational mapping code. You can also use GQL (their variation of SQL). 8. Templates. They use the Django templating engine. 9. Uploading apps. The SDK comes with a tool called which uploads the app into Google. 10. The downside is that with this Google could become the next Microsoft. They could get a kind of API lock-in. But in the short-term it seems like a great opportunity, especially for people into Python. Here is the Hacker News story on this: An interesting observation from a HN reader: "I'm surprised nobody has mentioned this - does this mean the tech cost of a web-based startup is now $0?"