Zum Inhalt springen
Der Guide für ein smartes Leben.
Skriptsprachen für das Web

Teil 2: Skriptsprachen für das Web

Autoren: Redaktion pcmagazin und Tobias Hauser • 7.10.2007 • ca. 4:50 Min

Inhalt
  1. Skriptsprachen für das Web
  2. Teil 2: Skriptsprachen für das Web

In den Lücken, die PHP lässt, versuchen andere Open-Source-Sprachen Fuß zu fassen. Eine schon etwas ältere ist Python. Im Gegensatz zu PHP arbeitet man in Python zeilenorientiert, sprich eine Anweisung ist immer eine Zeile lang. In PHP endet eine Anweisung dagegen erst mit einem Strichpunkt. Auc...

In den Lücken, die PHP lässt, versuchen andere Open-Source-Sprachen Fuß zu fassen. Eine schon etwas ältere ist Python. Im Gegensatz zu PHP arbeitet man in Python zeilenorientiert, sprich eine Anweisung ist immer eine Zeile lang. In PHP endet eine Anweisung dagegen erst mit einem Strichpunkt. Auch sonst unterscheidet sich die Sprachsyntax von Python ein wenig von PHP. Python bewegt sich in Sachen Marktanteil allerdings deutlich unter PHP. Dementsprechend gibt es auch wesentlich weniger Anwendungen, Materialien und natürlich auch Entwickler.

Skriptsprachen für das Web
Python kommt unter anderem bei Google zum Einsatz (www.python.org)
© Archiv

Das bei weitem bekannteste System, das auf Python basiert, ist das Zope-Framework und das wiederum darauf aufbauende Content Managmenet System Plone.

Ein weiterer PHP-Herausforderer, die Sprache Ruby, hat vor allem in Sachen Objektorientierung neue Maßstäbe gesetzt. Sie besteht schon seit 1996. Da sie allerdings von einem Japaner namens Yukihiro "Matz" Matsumoto entwickelt wurde, hat sie es erst um 2000 zu einer englischsprachigen Dokumentation und damit zu weiterer Verbreitung gebracht.

Skriptsprachen für das Web
Ruby on Rails hat Ruby zu neuer Blüte verholfen (www.rubyonrails.org und www.rubyonrails.de)
© Archiv

Alle Sprachelemente von Ruby sind Objekte. Die Syntax ist für Kenner klassischer Programmiersprachen etwas gewöhnungsbedürftig, aber nach der Einlernphase auch gut zu beherrschen. Furore macht Ruby vor allem in Kombination mit dem Framework Rails als Ruby on Rails (RoR).

Ruby on Rails verfolgt einen modernen Programmieransatz namens MVC (deutsch MPS), der die Programmierung in drei Teile auftrennt: das Modell (M für Model), die Präsentationsschicht (V für View) und die Steuerungsschicht (C für Controller). Mit dem Framework lassen sich sehr einfach Datenbankmodelle anlegen und ausgeben. Außerdem besitzt Ruby on Rails einige integrierte Bibliotheken beispielsweise für Ajax. So entstehen auf Knopfdruck ganze Webanwendungen.

Skriptsprachen für das Web
ASP.NET ist im Moment die Nummer zwei am Markt (www.asp.net).
© Archiv

Ähnliche Rahmenwerke nach dem Ruby-on-Rails-Vorbild gibt es mittlerweile auch für PHP. Zu nennen sind beispielsweise CakePHP und Symphony. Aber bei allem durchaus berechtigten Lob für die Ruby-on-Rails-Kombo; der MVC-Ansatz ist nicht trivial, sprich weniger erfahrene Entwickler tun sich schwer, wenn sie mehr machen müssen als nur die Standardbeispiele zusammenzuklicken. Und zum anderen hat Ruby on Rails dieselben Nachteile wie Python: durch den geringen Marktanteil gibt es wenig Materialien und auch relativ wenig günstiges Hosting.

Enterprise

Die bisher vorgestellten serverseitigen Technologien haben alle eines gemeinsam: sie sind Open-Source-Projekte. Selbstverständlich gibt es aber auch serverseitige Technologien von Software-Unternehmen. Einer der Hauptkonkurrenten von PHP war in den Anfangstagen ASP (Active Server Pages) von Microsoft. ASP hat schließlich den Kampf verloren, weil es nur eine recht eingeschränkte Funktionsmenge geboten hat und das Hosting von ASP-Seiten teilweise recht teuer war.

Skriptsprachen für das Web
Viele verschiedene Klassen bilden den Rahmen für das sprachunabhängige ASP.NET.
© Archiv

Mittlerweile hat sich der Nachfolger von ASP, ASP.NET, als zweite Kraft hinter PHP etabliert. ASP.NET basiert auf dem .NET Framework, einer umfangreichen Bibliothek mit Klassen. ASP.NET ist sprachunabhängig, entwickelt wird also in einer beliebigen Sprache. Als Standards haben sich aber Visual Basic.NET und C# etabliert.

Eine weitere Besonderheit von ASP.NET ist der Ansatz, deklarativ zu programmieren. Deklarative Programmierung bedeutet, dass man wie in HTML Tags schreibt. Die serverseitige Technologie generiert dann aus den Tags den HTML-Code.

Diesen Ansatz verfolgt auch das vom Flash-Erfinder Macromedia entwickelte ColdFusion. Allerdings werden dort Tags auch für die Programmierlogik verwendet, während ASP.NET nur Steuerelemente einsetzt, ansonsten aber auf eine "normale" Programmiersprache setzt. ColdFusion hat sich vor allem in Europa nie durchgesetzt und wird nach der Übernahme von Macromedia durch Adobe voraussichtlich von Serverlösungen abgelöst, die auf Action- Script basieren.

In größeren Unternehmen ist der Hauptkonkurrent von ASP.NET eindeutig Java. Mit strikter Objektorientierung, umfangreichem Framework und auch einigen Sammlungen mit Controls bietet Java schon seit vielen Jahren vieles, was auch die Konkurrenten bieten. Dass es für Java-Anwendungen im Web nie zu mehr als Platz drei gereicht hat, lag und liegt am notwendigen Know-how und teurem Hosting. Diese Probleme hat auch ASP.NET.

Allerdings wirkt Microsoft dem mit einer umfangreichen Windows-Hosting-Initiative und mit der kostenfreien Entwicklungsumgebung Visual Web Developer entgegen. Im Java-Bereich hat sich dagegen die Entwicklungsumgebung Eclipse zum Quasi-Standard gemausert und damit Java an sich zu einem neuerlichen Boom verholfen.

Was nun?

Welche der Sprachen ist jetzt also der Gewinner? Diese Frage kann nicht beantwortet werden. Doch die gelieferten Fakten helfen, für das jeweilige Vorhaben die richige Sprache zu wählen. JavaScript war lange Zeit verpönt, weil man nicht davon ausgehen konnte und kann, dass der Nutzer JavaScript aktiviert hat. Dementsprechend hat man nur dann ein Skript eingesetzt, wenn es für das Funktionieren der Seite nicht essentiell war.

Skriptsprachen für das Web
Eclipse hat auch der Java-Entwicklung einen Schub verpasst (ww.eclipse.org).
© Archiv

Heute hat sich das vor allem durch Ajax-Anwendungen und Web-2.0-Websites gewandelt. Sie basieren oft komplett auf JavaScript und funktionieren nicht mehr ohne. Insofern ist es natürlich für alle, die das nächste Google Map, Flickr oder Youtube entwickeln möchten, unerlässlich, JavaScript zu beherrschen. Für die eher klassische Unternehmenswebseite sind zumindest umfangreiche JavaScript-Kenntnisse nicht unbedingt nötig.

Der Programmiereinstieg fällt sicherlich mit den einfacher zu testenden und oftmals besser strukturierten serverseitigen Technologien leichter. Bei ActionScript ist die Entscheidung klar: wer eine Flash-Anwendung möchte, wird heute kaum um die zugehörige Skriptsprache herumkommen. Empfehlenswert ist hier heute der Einstieg mit ActionScript 2.0 oder 3.0 und der darin enthaltenen fortgeschrittenen Objektorientierung.

Eine serverseitige Technologie braucht, wer eine Datenbank anbinden oder Formulare auswerten möchte. Auch, wenn Sie ein Open-Source-System wie Joomla!, Typo3 oder WordPress erweitern wollen, sind Kenntnisse in der zu Grunde liegenden Technologie notwendig. Die Wahl fällt gerade für den Einstieg heute meist auf PHP. Aber auch ASP.NET ist eine gute Alternative, vor allem, wenn man bereits mit Basic oder C-basierten Sprachen gearbeitet hat.

Ruby on Rails verkörpert ähnlich wie ASP.NET einen spannenden Ansatz und lohnt auf dem Weg zur professionellen Entwicklung auf jeden Fall. Zu Java greift, wer seine Webanwendung in eine Unternehmensarchitektur mit Java-Anwendungen einbetten möchte. Die anderen Probanden sind zwar noch manchmal anzutreffen, spielen aber für neue Projekte keine Rolle mehr.

OBJEKTORIENTIERUNG

Ein mittlerweile auch im Web häufig verwendetes Konzept ist die Objektorientierung. Bei der Programmierung stehen in diesem Fall die Objekte im Vordergrund. Eine Klasse definiert die Struktur eines Objekts, also was für Eigenschaften es besitzt und was es kann. Das erste Ziel bei der Objektorientierung ist es, Code wiederzuverwenden. Man schreibt beispielsweise eine Klasse Warenkorb für einen Shop. Hier ein Grundgerüst von einer Teilfunktion in PHP:

Skriptsprachen für das Web
© Archiv
class Warenkorb {
private $menge;
private $produkte;
public function isCheckOut() {
//Anweisungen zum Bestellen
}
}

Anschließend kann dann ein Nutzer vom Warenkorb zum Checkout wechseln. Dazu erstellt das Programm das Objekt (in der Fachsprache instanziiert), das für den Warenkorb die Weiterverabeitung vornimmt:

$warenkorbX = new Warenkorb();
if (warenkorbX.isCheckOut()) {
//Weitergehen
}

Die Objektorientierung selbst ist allerdings nur die syntaktische Basis für die komplette Anwendungsarchitektur, die aus vielen untereinander verflochtenen Klassen besteht. So genannte Entwurfsmuster helfen dabei, häufige Probleme zu lösen. Ein solches Entwurfsmuster ist z.B. der MVC-Ansatz von Ruby on Rails.