Web 2.0-Anwendungen können grundsätzlich mit fast jeder Programmiersprache entwickelt werden. Das Ziel der meisten Web 2.0-Entwickler ist aber, möglichst schnell ans Ziel zu kommen und mit geringem Aufwand ständig zusätzliche Funktionalitäten und Möglichkeiten, wie z.B. Film, Ton, innovative Interaktionsmuster, etc. zu integrieren. Für viele ist der direkte Vergleich zwischen „dynamischen“ oder Skriptsprachen und klassischen Programmiersprachen nichts anderes, als der sprichwörtliche Äpfel- und Birnenvergleich. Der Grund hierfür liegt darin, dass Scriptsprachen dafür ausgelegt wurden, Komplexität zu verringern, gleichzeitig jedoch nicht die Einsatzmöglichkeiten zu begrenzen und „Sicherheit“ zu verlieren. Klassischen Sprachen wie Java hingegen ordnet man eher Applikationen für das Enterprise-Segment bzw. mobile Applikationen zu. Und dann gibt es wiederum Verflechtungen, etwa im Falle von C/C++, die normalerweise im Web 2.0-Umfeld nicht direkt verwendet wird, jedoch – wie im Falle von C – zur Realisierung der Scriptsprache PHP gebraucht wird. Trotz der Unterschiede lohnt ein Vergleich beider Spracharten hinsichtlich Produktivität und Sicherheit.
Produktiver dank Frameworks
Im direkten Vergleich auf dem weiten Feld der Web 2.0-Anwendungen haben dynamische Sprachen wie PHP, Groovy oder Ruby gegenüber den klassischen Sprachen den Vorteil, dass sie erheblich schneller umgesetzt werden können. Diese „Produktivität“ verdanken sie in der Regel dem Einsatz von Frameworks, wie beispielsweise Ruby on Rails, Zend Framework (PHP) oder Grails (Groovy). Diese Frameworks nehmen den Entwicklern viele Routine-Arbeiten ab.
Frameworks spielen bei den Scriptsprachen auch beim Thema Sicherheit eine Rolle. Viele Sicherheitsrisiken werden in diesen Sprachen im Hintergrund durch Frameworks adressiert, zum Beispiel um Sicherheitslücken wie das in jedem Web-Framework mögliche „Cross Site Scripting“, besser bekannt auch als XSS, zu schließen.
Klassische Sprachen wie die Java-Plattform (J2EE) haben hier den Vorteil, dass sie „out-of-the-box“ bereits viele Sicherheitskonzepte beinhalten und über eine eigene Laufzeitumgebung (Java-VM) verfügen. Diese Java-VM ist als Sandbox ausgelegt und bietet in punkto Sicherheit ihre eigene Dynamik. Dadurch wird sie auch für Scriptsprachen interessant, wie die Aktivitäten von Sun Microsystems (JRuby, Groovy), Microsoft (IronRuby, IronPython) und Caucho Technology (Quercus = PHP in Java) zeigen. Sie wollen an den schlagenden Vorteilen der Java-Integration teilhaben, zu denen Mächtigkeit, Stabilität, Skalierbarkeit sowie deren hervorragende Eignung für den Enterprise-Bereich zählen, gepaart mit einfacher Programmierung der jeweiligen Scriptsprache.
Eindeutige Zuordnung nicht möglich
Aus all dem deutet sich schon an, dass es keine eindeutigen Schwarzweiß-Zuordnungen geben kann, für welche Web 2.0-Anwendung welche Sprache geeignet ist. Die Wahl der Programmiersprache hängt in den meisten Fällen eher davon ab, um welches Geschäftsmodell es sich handelt, welche exakten Anforderungen damit verbunden sind, und vor allem, über welche Ausbildung und Erfahrungen die Entwickler verfügen. Dennoch zeichnen sich bestimmte Tendenzen ab.
Als Web 2.0-Shootingstar gilt derzeit sicherlich Ruby (on Rails). Ruby (on Rails) hat den großen Vorzug, dass es als objektorientierte Sprache die vielen Vorteile der Perl- und Python-Welt wie Einfachheit und Lesbarkeit verbindet. Mit JRuby ist Ruby mittlerweile auch in der Enterprise-Domäne angekommen. Ein Beispiel hierfür ist die im November gelaunchte Web-2.0-Plattform Oracle Mix von Datenbankhersteller Oracle. Und was die Programmier-Skill anbelangt, so kommt das Potenzial von Ruby (on Rails) am besten durch den erfahrenen Programmierer bzw. Architekten zur Geltung.
Vom Shootingstar zum Klassiker
Wenn Ruby der Shootingstar ist, dann ist Java ein Klassiker. In neuen Web 2.0-Projekten spielt Java meistens in Form der Plattform bzw. unter Zuhilfenahme des Springframeworks nach wie vor eine nicht unerhebliche Rolle. Die Gründe hierfür liegen in den bereits erwähnten Vorteilen wie Mächtigkeit, Skalierbarkeit, etc. Diese kommen vor allem bei ausgewachsenen Systemen, wie bei Enterprise-Komponenten wie CMS, Portal, ESB und anderen, zur vollen Entfaltung. In Kombination mit Scriptsprachen wie (J)Ruby, Groovy, Jython und dem JSR 223 (Scripting for Java Platform API) stehen der Java-Welt interessante neue Zeiten bevor. Allerdings braucht es erfahrene Entwicklerteams, um die Komplexität von Java – speziell in Verbindung mit den genannten Scriptsprachen – zu kompensieren.
Eine Verbindung zwischen Ruby und Java bietet die Programmiersprache Groovy. Sie versucht, eine „geschliffene“ Fassung der Java-Syntax mit den Konzepten von Ruby zu verbinden. Durch diesen Umstand kommt dem Jungstar Groovy derzeit in neuen Web 2.0-Projekten eine immer interessantere Rolle vor allem als Ergänzung in einer bestehenden Java-Landschaft zu. Wegen der nahen Verwandtschaft zu Java und von gleicher Eleganz wie Python ist Groovy für den Einsatz in der Java-Welt geradezu prädestiniert.
PHP prägte Web 2.0-Ära
Und „last but not least“ muss natürlich PHP gewürdigt werden, schließlich ist die Web 2.0-Ära in hohem Maße von dieser Sprache geprägt. PHP hat den Vorzug, dass es sich leicht erlernen lässt und gilt daher häufig bei Anfängern, aber auch bei Profis als erste Wahl. Mittlerweile ist auch in PHP die objektorientierte Programmierung möglich, verfügt aber noch nicht über den gleichen Reifegrad wie Ruby, Groovy oder Java. Übrigens ist die Standardbibliothek in PHP5 noch zu einem Großteil prozedural angelegt.
Als Fazit lässt sich ziehen: Ruby (on Rails) und Groovy eignen sich für Klein-, Mittel- und Großprojekte mit Entwicklerteams, die über die notwendige Expertise verfügen. Das gleiche gilt für Java, nur dass bei Klein-Projekten häufig Overhead-Gefahr besteht. PHP ist prädestiniert für Klein-, und Mittelprojekte, bei Großprojekten sollten vor allem erfahrene Entwickler zu Werke gehen.