Blog Entry
Google Appengine - Die Chance fuer Python Posted on May 30, 2008
Ich programmiere inzwischen schon viele Jahre mit PHP aber richtig konnte ich mich damit nie anfreunden. Auf der Suche nach alternativen bin ich sehr früh auf Python gestoßen. Schnell habe ich mich in Python verliebt. Leider konnte ich meine Python Skills selten für das Web einsetzen. Es sind aber Desktop Tools, Gimp Plug-ins und viele kleine Scripte entstanden. Das Redesign meiner eigenen Seite vor ca. 2 Jahre war das 1. Python Web Projekt.
Die Gründe warum sich Python im Web nur zaghaft durchsetzt sind einfach:
- PHP und Perl bereits dominant.
- Java und .NET haben sich im Enterprise etabliert und man setzt hier gern auf bewahrtes statt Innovation.
- PHP Hosting ist günstiger da ohne Probleme 1000 Domains auf einem Server laufen können. Für Python ist ein eigener Server oder VPS notwendig. Es geht auch mit mod_python, fast-cgi bei shared hosting ....aber dies ist auch bisher (falls überhaupt angeboten) mind. mit 2-3 fachen Kosten verbunden. Einen SSH Zugang in der Regel ebenfalls notwendig.
Goggle unser Retter und Vorreiter bei Innovationen
Es ist schon lange bekannt das Google Python intensiv für interne Applikationen nutzt. Der Python Erfinder Guido van Rossum arbeitet nun bereits seit geraumer Zeit bei Google. Seine Aufgabe ist es die Entwicklung von Python 3 voranzutreiben. Es war also nur eine Frage der Zeit bis Google mit einer neuen Innovation auftaucht.
Als ich dann Zufällig in einer Mailingliste über Appengine gelesen habe wollte ich selbstverständlich Beta Tester werden. Es gab nur 10.000 invites. Aber ich habe es geschafft einen Accounts zu bekommen ;)
Die Idee ist genial, man kann die Infrastruktur von Google verwenden und Applikationen sind praktisch beliebig skalierbar. Es ist also mehr als einfach nur Python Hosting. Es gibt eine API für alles was das Programmierer Herz höher schlagen lässt :)
- Datastore API - Datenbank mit Transaktionen, beliebig skalierbar
- Mail API - Die komplette Funktionalität wie man bereits von GMail kennt.
- Users API - Authentifizierung mit Google Accounts
- URL Fetch API - Zugriff auf externe Dateien
- Memcache API - in-memory data cache
- Images API - Bilder manipulieren z.B. resize, rotate, flip, crop, enhance images
Das webapp Framework
Aber das ist noch nicht alles. Bei Python hat sich WSGI als Standard fuer die Kommunikation durchgesetzt. Man kann somit alle WSGI fähigen Frameworks einsetzen. Mit dabei ist das Framework von Google webapp. Es erinnert sehr an das mir vertraute webpy. Mit der Kombination der oben genannten Services lassen sich damit sehr schnell geniale Web Applikationen erstellen.
Django onboard
Aber auch das bereits populäre Django Framework ist mit dabei. Allerdings lässt sich Django nach meiner Meinung noch nicht sinnvoll mit Appengine einsetzen. Für einen Großteil der Funktionalität benötigt man eine relationale Datenbank wie Mysql. Somit kann man keine Sessions, Auth, Django ORM oder das beliebte Admin Interface nutzen. Es müsste sehr viel bei Django geändert werden damit dies alles mit Appengine funktioniert. Somit kann man auch gleich beim wesentlich einfacheren webapp Framework bleiben - ohne große Nachteile.
The downside??
Die oben genannten Vorteile sind wie so oft für viele auch Nachteile. Google genießt nicht gerade großes Vertrauen besonders im bezug auf Datenschutz. Meines Wissens bisher völlig unbegründet, den Google hat schon mehr offen gelegt als die meisten anderen Firmen. Trotzdem ist es für viele Firmen ein großer Schritt komplett von der Google Infrastruktur abhängig zu sein. Aber man weiß nie, vielleicht gibt es irgendwann eine API kompatible alternative. vorstellen könnte ich mir das sehr gut.
Ich habe vor einige interessante Applikation für Appengine zu entwickeln. Dazu gehört z.B. ein Forum sowie einen Shop. Aber noch bin ich bei einem einfachen Blog ;)
Weiteres wird hier in kürze Folgen.