Web-Scriptsprachen

Gelesen bei AboutWebDesign.de
URL: http://www.aboutwebdesign.de/awd/content/1002215672.shtml

Wer seine Web-Inhalte dynamisch machen will, der hat viele verschiedene Möglichkeiten, die Idee in die Praxis umzusetzen. Am besten funktioniert das wohl mit einer Scriptsprache. Wir werden im folgenden Artikel einen kleinen Überblick über die derzeit populären Sprachen geben. Dabei konzentrieren wir uns auf die Scriptsprachen, die server-seitig ausgeführt werden: in erster Linie Java (Server Pages), ASP, PHP, Perl und Cold Fusion/CFML. JavaScript z.B. gehört also nicht dazu.

Anforderungen

Zunächst jedoch wollen wir einige Kriterien vorstellen, auf die es bei Web-Scriptsprachen in erster Linie ankommt. Wir werden auf einige dieser Kriterien in den Detail-Texten zu einzelnen Sprachen eingehen. Die Beschreibung der Kriterien wird Ihnen dabei helfen, die unterschiedlichen Bereiche selbst gut einschätzen zu können, also zu beurteilen, wie wichtig ein bestimmtes Kriterium für Sie persönlich ist.

Vorkenntnisse

Hauptkriterium bei der Auswahl einer Scriptsprache sind sicherlich oft die Vorkenntnisse. Wer schon eine Web-Scriptsprache beherrscht, der hat es leicht. Aber auch Vorkenntnisse in anderen Sprachen wie C oder JavaScript helfen. Wer z.B. C gut kennt, dürfte mit Perl keine größeren Probleme haben (einmal von der etwas gewöhnungsbedürften Variablen-Kennzeichnung abgesehen). Im Allgemeinen gilt sowieso: moderne Programmiersprachen ähneln sich recht stark. Wer einmal das hinter einer Variable oder Funktion stehende Konzept verstanden hat, kann von seinen Kenntnissen bei wohl fast jeder anderen Programmiersprache profitieren.

Finanzierung

Wer Wert auf möglichst geringe Kosten legt, der setzt auf LAMP: die Buchstaben stehen für "Linux", "Apache", "mySQL" und "Perl" bzw. "PHP". Ein solches System kostet nämlich - zumindest auf die Software bezogen - prinzipiell erst einmal nichts. Wer sowieso eine Windows NT/2000/XP-Server-Lizenz hat, bekommt den Microsoft-Server IIS und die ASP-Engine direkt dazu.

Teuer dagegen sind CFML und Java Server Pages: die entsprechenden Engines kosten einige Tausend Mark.

Interoperabilität

Wer ein Script programmiert, will das auf möglichst vielen Systemen einsetzen können. So ist ja z.B. ein Wechsel des Server-Betriebssystems oder des Providers durchaus möglich. Daher spielt die Interoperabilität bzw. Portabilität für viele Webmaster eine große Rolle.

In diesem Bereich führt Perl nach Punkten: es heißt, dass Perl die Programmiersprache mit den meisten unterstützten Betriebssystemen überhaupt ist. De facto kommt es aber nicht darauf an, ob ein Script auch auf einem PDA läuft, auf den Server kommt es an! Perl, PHP und Java funktionieren auf fast jedem Server, egal, ob Linux, Unix oder Windows. Wer CFML verwendet, legt sich auf Windows, Linux und Solaris fest. ASP schneidet hier am schlechtesten ab: nur Windows wird als Plattform direkt von Microsoft unterstützt.

Erweiterbarkeit

Das Rad neu zu erfinden, macht ganz schön viel Arbeit. Deshalb sollte die Programmiersprache der Wahl gute Erweiterungsmöglichkeiten bieten.

CFML und Java unterstützen die Erweiterbarkeit über CORBA - ein Pluspunkt. PHP-Programmierer sind auf Java-Objekte angewiesen, ASP-Programmierer können nur COM-Objekte nutzen. Und wer Perl verwendet, ist hier ziemlich uneingeschränkt: COM-Objekte und CORBA sind kein Problem, auch eine Interaktion mit Java ist möglich. Besonderer Pluspunkt: das CPAN (Comprehensive Perl Archive Network) ist eine kostenlose Sammlung vorgefertigter Perl-Erweiterungen und kostenlos verfügbar.

Entwicklungsgeschwindigkeit

In allen Sprachen ist eine effiziente Entwicklung möglich. Wenn es jedoch auf Schnelligkeit ankommt, wird der Einsatz von Java etwas problematisch: die strikte Objektorientierung macht die "quick and dirty"-Methode schlecht anwendbar.

Fazit

Geeignet sind alle diese Programmiersprachen für fast jedes Vorhaben. Im Endeffekt ist es wohl meist Sache der persönlichen Vorlieben, für welche Programmiersprache man sich entscheidet. Es folgen die Details zu einzelnen Sprachen.

Perl/PHP

Perl ist wohl eine der umfangreichsten Scriptsprachen überhaupt. Eingesetzt wird es in diversen Bereichen: z.B. Biotechnologie, Finanz-Software (ein Perl-Witz sagt, dass der nächste Börsencrash durch einen Bug in Perl verursacht wird), Betriebssystem-Administration und eben Web-Entwicklung. Wer das CGI-Interface benutzt, wird in 90% aller Fälle Perl programmieren. PHP dagegen ist der Newcomer: angetreten, um speziell die Bedürfnisse von Web-Programmierern zu befriedigen, wächst seine Verbreitung stetig.

Oft stellt sich für den Programmierer die Frage, ob Perl oder PHP die bessere Wahl ist. Eine pauschale Antwort auf diese Frage lässt sich sicher nicht geben, die persönliche Vorliebe wird hier - wieder einmal - ausschlaggebend sein. Wir werden dennoch versuchen, ein wenig Licht ins Dunkel zu bringen. Bitte beachten Sie, dass wir hier nicht ein "nacktes" Perl mit einem "nackten" PHP vergleichen. Perl wird mit einer Vielzahl von Modulen ausgeliefert, die sich ohne Mehrarbeit direkt verwenden lassen. Dass diese Module auch berücksichtigt werden, erscheint logisch.

Vielzitiertes Argument ist die Einfachheit von PHP. Im Vergleich zu Perl soll es viel einfacher sein, PHP zu lernen. In gewisser Weise mag das stimmen: viele Funktionen sind direkt in den PHP-Kern integriert, für einen Anfänger sehen PHP-Scripts oft übersichtlicher aus als Perl-Scripts. Man sollte jedoch nicht vergessen, dass die PHP-Syntax durchaus große Anleihen bei Perl bzw. den Vorbildern von Perl macht. Soll heißen: sehr große, prinzipielle Unterschiede zwischen der Syntax bzw. Grammatik beider Sprachen gibt es nicht.

Die Behauptung, Datenbank-Anbindung mit Perl sei schwierig, ist ein Ammenmärchen. Über das DBI-Modul wird das eine Sache von Sekunden. Beispiel: (Details finden sich hier)


my $data2 = DBI->connect("DBI:mysql:datenbank", "benutzername", "Passwort", { RaiseError => 1 }) || die("Kann DB nicht öffnen!");


Der entsprechende PHP-Code sieht dem recht ähnlich:

$db = @mysql_connect("localhost","benutzername","Passwort") or die(mysql_error());
@mysql_select_db("datenbank",$db) or die(mysql_error());


Wer DBI verwendet, hat gegenüber einem PHP-Programmierer einen Vorteil: er ist von der verwendeten Datenbanktechnologie weitgehend unabhängig. DBI funktioniert sowohl mit Oracle als auch mit mySQL, der PHP-Code wäre bei einem Datenbank-Wechsel zu ändern.

Weiteres Argument ist die Möglichkeit, PHP direkt in HTML-Code einzubinden. An dieser Stelle sei zunächst angemerkt, dass das auch mit Perl klappt. Vielleicht nicht auf einem typischen Webserver, die technischen Möglichkeiten sind jedoch durchaus gegeben. Auch sollte man darüber nachdenken, ob man selbst überhaupt Programm-Code und HTML-Code vermischen möchte. Einiges spricht für eine saubere Trennung von Design und Technik. Ebenfalls wichtig: Perl verfügt über Module (z.B. Text::Template), die die Verwendung von Templates sehr einfach machen. Damit wird das "durch direkte Integration in HTML kann ich in PHP schneller und übersichtlicher programmieren"-Argument obsolet.

Auch die Geschwindigkeit, mit der Programme ausgeführt werden, ist für Programmierer wichtig. Perl und PHP zeigen hier keine allzu großen Differenzen. Wer mod_perl verwendet, ist mit Perl in vielen Fällen sogar etwas schneller als mit PHP.

Meiner Meinung nach sollte man die Situation auch aus der Sicht des "Power-Programmierers" betrachten, der vielleicht auch einmal ein größeres Projekt angehen will. Das weiter oben bereits erwähnte CPAN bietet einem solchen Programmierer enorm viele Möglichkeiten. Etwas Vergleichbares gibt es für PHP nicht. Gleiches gilt für den Internet-Support: zum Thema Perl gibt es Tausende von Dokumenten im Internet und viele hervorragende Bücher aus dem O'Reilly-Verlag. PHP ist hier noch weit abgeschlagen.

Nicht zu vergessen die sprachlichen Möglichkeiten: PHP bedient nur Web-spezifische Interessen, mit Perl ist dagegen so ziemlich jedes Projekt realisierbar. Wer also einmal über den Tellerrand hinausblicken will, ist bei Perl sicher besser ausgehoben.

ASP

ASP stammt von Microsoft und ist daher leider auf den Windows-Einsatz beschränkt. Eine nette Besonderheit: ASP an sich ist nicht wirklich eine Programmiersprache, treffender wäre der Begriff "Programmier-Umgebung". Schließlich stehen jetzt schon zwei Programmiersprachen (JScript und VBScript) zur Verfügung, um ASP-Anwendungen zu realisieren. Ab ASP.NET (noch nicht verfügbar) soll das auch mit Visual Basic, C++ und C# klappen.

Python/Tcl

Wir wollen nicht verschweigen, dass es zu den "großen" Programmiersprachen durchaus Alternativen gibt: so z.B.n Tcl und Python. Beide eignen sich auch für Web-Scripting, sind jedoch nicht so ausgereift wie die oben vorgestellten Sprachen.

Python ist eine objektorientierte Sprache mit einigen Besonderheiten: so z.B. die Kennzeichnung eines Blocks durch Tabulatoren. Auch um die Erweiterbarkeit ist es nicht schlecht bestellt.

Tcl dagegen ist eher simpel gehalten, inzwischen aber auch in einer objektorientierten Version verfügbar.