Web

PHP, Python, Ruby, Java

Web-Programmiersprachen im Vergleich

11.08.2011
Von   
Bernhard Steppan arbeitet als IT-Chefarchitekt bei DB Systel GmbH (Deutsche Bahn) in Frankfurt am Main. Er hat 100+ Artikel und zahlreiche Bücher über C++ und Java verfasst. Er betreibt mehrere Blogs, unter anderem http://steppan.net, http://artouro.org und http://tourbine.com

Fragliche Skalierbarkeit

Es gibt nur wenige Erfahrungen und Berichte über die Skalierbarkeit von größeren Python-Anwendungen, so dass man hier keine zuverlässige Aussage treffen kann. Die Verwendung von Python für durchaus größere Websites wie Youtube mag allerdings ein Indiz sein, dass sich Python-Anwendungen durchaus skalieren lassen. Anders sieht es mit dem Monitoring aus, wo man Konzepte wie JMX vermisst.

Bei der Tool-Unterstützung liegt Python mit PHP etwa gleichauf. Die gängigen Java-IDEs verfügen zum Beispiel über Python-Plug-ins. Anfang dieses Jahres wurde sogar eine Unterstützung für Microsofts Visual Studio angekündigt.

Fazit: Python ist eine moderne, leicht lesbare, objektorientierte Skriptsprache. Sie vereint die einfache Erlernbarkeit von PHP mit vielen Vorzügen von Java. Es ist jedoch nicht so leicht, passende Entwickler für ein Python-Projekt zu finen, was den Einsatz der Sprache im Vergleich zu Java und PHP erschwert.

Ruby

Die Skriptsprache Ruby (Rubin) ist ungefähr genauso alt wie Java und stammt von dem japanischen Entwickler Yukihiro Matsumoto. Genauso wie bei Java war Auslöser der Neuentwicklung die Unzufriedenheit mit traditionellen Sprachen. Ruby ist quelloffen, plattformunabhängig und vollständig objektorientiert. Im Gegensatz zu Java gibt es also keine primitiven Datentypen und die damit verbundenen, notwendigen Wrapper-Klassen und häufig notwendigen Typwandlungen.

Die Erweiterbarkeit und Flexibilität von Ruby-Anwendungen ist exzellent. Es gibt inzwischen viele Bibliotheken, deren bedeutendste das Web-Application-Framework "Ruby on Rails" ist. Die Ruby-Implementierung JRuby basiert auf der Java-Laufzeitumgebung und verbindet die neue Skriptwelt mit der Enterprise-Architektur von Java-Anwendungen.

Nicht die Schnellste

Die Typisierung der Skriptsprache Ruby kann nicht so wie in Java auf Compiler-Prüfung ausgelegt sein, sondern funktioniert dynamisch, wobei Variablen nicht deklariert werden müssen. Was die einen als bestechenden Vorteil empfinden, kann sich bei Laufzeitfehlern als mangelnde Robustheit äußern. Es gibt Untersuchungen, die zeigen, dass Ruby die langsamste Sprache dieses Vergleichs ist. Wie bei Python bereits erwähnt, muss sich das bei einer Web-Anwendung nicht unbedingt so stark auswirken. Tatsache ist jedoch, dass sich die genannten Konzepte wie Interpreter und dynamische Typisierung im Laufzeitverhalten niederschlagen.

Kritisches in Java auslagern

Was die Skalierbarkeit von Ruby-Anwendungen angeht, gibt es keine guten Vergleiche und vor allem wenig Anwenderberichte. Es ist aber möglich, der Frage aus dem Weg zu gehen, indem man JRuby einsetzt und damit die Möglichkeit hat, den kritischen Teil des Codes in Java auszulagern. Monitoring ist wie bei den anderen Skriptsprachen zwar möglich, aber ein mit Java vergleichbares Konzept sucht man bisher vergeblich.

Als moderne Programmiersprache stehen die Lesbarkeit des Programms und die konsequente Objektorientierung im Vordergrund. Die Modularisierung und Kapselung (fünf Gültigkeitsbereiche) machen es einfach, wartungsfreundliche Programme zu schreiben.

Die Tool-Unterstützung ist im Allgemeinen nicht so gut ausgeprägt wie bei den anderen Techniken dieses Vergleichs. Dabei hat Ruby von Java-Entwicklungsumgebungen Unterstützung erhalten: Sowohl Netbeans und Eclipse als auch die interessante Eclipse-Web-Entwicklungsumgebung Aptana unterstützen inzwischen Ruby. Als Edelstein unter den Skriptsprachen konzipiert, ist Ruby hierzulande eher ein Exot. Mit Skala und anderen Sprachen, die auf der Java-Laufzeitumgebung basieren, erhält Ruby zudem Konkurrenz. Es bleibt also abzuwarten, ob sich Ruby mehr als eine Nische erobern kann.