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

Fazit

Mit allen hier genannten Techniken lassen sich heute sehr gute Web-Anwendungen entwickeln. Viel wichtiger als der eine oder andere Pluspunkt im Vergleich ist, dass die Sprache zum Unternehmen, seinen Mitarbeitern, seinem Anwendungsumfeld und seinem Entwicklungsmodell passen muss. Legt man Wert auf saubere Modellierung der Geschäftslogik, die Verwendung von Enterprise-Application-Servern und auf die ausgereifte Einbindung von Legacy-Anwendungen, sollte man Java auf jeden Fall in die engere Wahl einbeziehen, schon allein wegen der überzeugenden Werkzeuge. Liegt der Schwerpunkt eher auf der GUI-Präsentation und der schnellen Entwicklung, sollte man die klassischen Skript-Techniken wie PHP, Python oder Ruby ins Auge fassen. Welcher der letztgenannten man den Vorzug gibt, ist eher eine Geschmacksfrage und bedarf individueller Abwägungen. (ue/sh)

Kurzbewertung

Java

PHP

Python

Ruby

Entwicklungsaufwand

0

++

++

++

Erweiterbarkeit

++

+

+

+

Wartungsfreundlichkeit

+

0

++

++

Robustheit

+

0

+

0

Ausführungsgeschwindigkeit

+

+

0

-

Skalierbarkeit

++

+

0

0

Monitoring

++

0

0

0

Laufzeitumgebung

++

+

+

+

Hosting-Markt

0

++

0

0

Tool-Unterstützung

++

+

0

0

Benötigtes Know-how

0

++

++

++

Personalmarkt

+

++

0

0

Glossar

• Monitoring: Um Web-Anwendungen während der Laufzeit zu überwachen, gibt es unterschiedliche Tools und Verfahren. Java bietet mit den Java Management Extensions (JMX) eines der führenden Konzepte der Branche.

• Robustheit: Eine Web-Anwendung muss eine Vielzahl von Anfragen gleichzeitig beantworten. Bei dieser Aufgabe kann man nicht tolerieren, dass ein Programm des Öfteren hängen bleibt.

• Skalierbarkeit: Kann ein Programm, das für 1000 Benutzer ausgelegt ist, auch 10.000 mit überschaubaren Änderungen verkraften? Wenn dem so ist, ist das Programm skalierbar, lässt sich also an einen wachsenden Ressourcenbedarf anpassen, ohne dass die Performance leidet.

• Widgets: Widgets sind die Bausteine einer grafischen Oberfläche, mit denen der Benutzer das Programm steuern kann, so zum Beispiel über Schaltflächen. Sie werden auch häufig Controls, Beans oder Javabeans genannt.

Vergleichskriterien

Wer Techniken zur Erstellung von Web-Anwendungen vergleicht, muss Schwerpunkte setzen. Der Grund dafür ist, dass es nicht die eine Tool-Umgebung für alle Einsatzbereiche gibt. Die Bandbreite der Web-Anwendungen reicht von monolithischen, schnell zusammengeklickten und kurzlebigen Anwendungen über gut strukturierte, langlebige Programme bis hin zu unternehmenskritischen Anwendungen, bei denen die Kopplung mit Legacy-Systemen eine wichtige Rolle spielt.

Eine Möglichkeit, etwas Orientierung in einen Vergleich zu bringen, ist zum Beispiel, nach der Bedeutung des Oberflächenanteils und der der Geschäftslogik zu unterscheiden. Es gibt Web-Anwendungen mit stark ausgeprägter, komplizierter Geschäftslogik wie Web-Services, die vollkommen ohne Oberfläche auskommen. Das krasse Gegenteil sind Web-Anwendungen ohne viel Geschäftslogik, bei denen der Schwerpunkt weitgehend auf einer ausgefeilten grafischen Oberfläche liegt.

Der Beitrag vergleicht namhafte Web-Entwicklungstechniken anhand der Kriterien Entwicklungsaufwand, Erweiterbarkeit und Flexibilität, Wartungsfreundlichkeit, Robustheit, Ausführungsgeschwindigkeit, Skalierbarkeit, Monitoring, Laufzeitumgebung, Tool-Unterstützung und dem benötigen Know-how.