Programmieren: Wahl der Programmiersprache: Skriptsprachen

Aus Wikibooks

Wechseln zu: Navigation, Suche
Bild:Wikibooks buchseite.svg Zurück zu Auszeichnungs- und Darstellungssprachen | Bild:Wikibook.svg Hoch zu Inhaltsverzeichnis | Bild:Wikibooks buchseite.svg Vor zu Lernmöglichkeiten



Eine andere Entscheidung ist noch zu treffen: die zwischen Hochsprachen und Skriptsprachen. Skriptsprachen sind z.B. Perl, Python oder Ruby, die oft interpretiert werden. Alle diese Sprachen haben gemein, dass sie leicht zu benutzen sind, dass sie eine flexible Syntax haben, und dass man damit eine einfache Aufgabe in ein paar Zeilen Code schreiben kann. Sie sind dazu geschaffen worden, um alltägliche Probleme zu lösen, eignen sich aber weniger, um große, komplexe Anwendungen zu schreiben. Eine Ausnahme hiervon gibt es natürlich auch, wie z.B. Applikationen die in Python geschrieben wurden: MayaVi oder Zope. Ein entscheidender Nachteil von Skriptsprachen ist die langsamere Ausführungsgeschwindigkeit und der höhere Speicherverbrauch.

Ein wichtiger konzeptioneller Vorteil von Skriptsprachen gegenüber Compiler-Sprachen ist, daß der Interpreter zur Laufzeit eines Programms mehr über das zugrundeliegende System weiß, als jeder Compiler zum Zeitpunkt der Kompilierung. Das betrifft vor allem die Themen Hardware und Betriebssystem, sowie verfügbare Bibliotheken und Hilfsprogramme, die sich, selbst wenn das Programm auf diesem Rechner entwickelt wurde, seitdem verändert haben können.

Inhaltsverzeichnis

[Bearbeiten] Perl

Perl ist eine der bekanntesten Skriptsprachen und besitzt eine Syntax, die sich sehr an andere Sprachen wie C oder Basic anlehnt, aber auch an UNIX-Werkzeugen wie grep, sed und awk. Perl wurde von Larry Wall nach der Philosophie entwickelt, es dem Nutzer so einfach wie möglich zu machen, sich natürlich und individuell auszudrücken. Larry akzepiert zwar Practical Extraction and Report Language als eine Abkürzung für 'Perl', der Name bezieht sich aber auf ein Bibelzitat.

Perl bietet eine große Bibliothek freier, fertiger Module, das sogenannte CPAN. Reine Perl-Skripte ohne Binär-Module sind ähnlich wie Java-Programme betriebssystemunabhängig. Perl ist auch für alle gängigen Betriebssysteme frei verfügbar und wird ständig weiterentwickelt.

Eine besondere Stärke von Perl ist das Durchsuchen und Bearbeiten von Textdateien, weswegen es sehr häufig zum Programmieren dynamischer Webseiten verwendet wird. Aber auch große Programme mit graphischer Oberfläche sind in Perl ebenso möglich. Perl bietet ein zwangloses Nebeneinander strukturierter, objektorientierter und funktionaler Sprachelemente, typenfreie Variablen, eingebaute Arrays, Hashes, Formate, Filehandler, Pipes und vieles mehr. Dieser reichhaltige Syntax der auch viele Abkürzungen für gängige Wendungen beinhaltet, erlaubt einen sehr kompakten, prägnanten Schreibstil, aber auch viel Freiraum für Humor und schwer verständliches.

Perl erhält gerade mit der Version 6 eine vollständig erneuerte und erweiterte Syntax, sowie einen schnelleren Interpreter der auch andere Sprachen verstehen wird.

Anfänger sollten sich nicht zu Beginn schon an Perl wagen, weil die Mächtigkeit der Sprache vor allem unerfahrene Programmierer dazu verführt, undiszipliniert zu programmieren. Wenn Sie etwas Erfahrung mit anderen Programmiersprachen gesammelt haben, ist Perl aber in jedem Fall eine Bereicherung.

[Bearbeiten] Python

Python wurde von Guido van Rossum entwickelt und gilt als die jüngere und hübschere Schwester von Perl; der Leistungsumfang ist in etwa vergleichbar. Python ermöglicht objektorientierte Programmierung mit Mehrfachvererbung ebenso wie prozedurale Programmierung. Der Name ist eine Huldigung an Monty Pythons Flying Circus. Python ist ebenfalls für alle gängigen Betriebssysteme frei verfügbar, wird unter der Leitung des Benevolent Dictator for Life van Rossum kontinuierlich weiterentwickelt und verfügt über einen großen Schatz von Bibliotheken für alle möglichem Zwecke.

Python ist sehr leicht lesbar -- im Unterschied zu Perl, das den Ruf einer Write-only-Programmiersprache hat. Wesentlich hierfür ist, dass die Einrückung des Codes signifikant ist: Schleifen usw. werden also weder durch Klammern noch durch bestimmte Schlüsselwörter zusammengefasst, sondern durch Einrückungen angezeigt. Dadurch erzieht Python zur sauberen Einrückung des Codes. Die strukturierten Datentypen Liste, Tupel und Dictionary sind sehr leicht verwendbar und werden mit eckigen, runden und geschweiften Klammern notiert.

Beim ersten Aufruf eines Python-Programms wird eine vorübersetzte Fassung erzeugt und gespeichert; bei wiederholten Aufrufen wird automatisch diese Fassung verwendet, solange sie nicht durch neuerliche Änderungen am Quelltext überholt ist.

Python ist hervorragend sowohl für Anfänger als auch für Fortgeschrittene geeignet. Es besteht allerdings die 'Gefahr', dass man anschließend keine andere Sprache mehr will.

[Bearbeiten] PHP

Ursprünglich wurde PHP als einfache Möglichkeit entwickelt, Datenbankabfragen in HTML-Dokumente zu integrieren. Daraus hat sich zuerst eine prozedurale Skriptsprache entwickelt, die dann mit objektorientierten Erweiterungen angereichert wurde. Inzwischen ist PHP eine mächtige, wenn auch mit Altlasten befrachtete, Programmiersprache, die auch für andere Aufgaben als dynamische HTML-Seiten verwendet wird.

PHP ist leichter zu lesen als Perl, aber nicht so leicht wie Python. Es orientiert sich wie Perl an der C- bzw. der Java-Syntax. PHP unterstützt mittlerweile verstärkt objektorientierte Methoden der Softwareentwicklung.

Wenn Sie vorhaben Webanwendungen zu programmieren, sollten sie PHP in die engere Wahl nehmen. Die Sprache ist leicht zu erlernen, erfordert aber auch etwas an vorher geübter Disziplin. Wie bei Perl ist es deshalb besser PHP erst als zweite Sprache zu erlernen.

Die zunächst in den Anfangsjahren der Sprache von Profis aberkannte Leistungsfähigkeit ist spätestens durch die Wikipedia selbst überzeugend bewiesen: Auch sie läuft auf einer PHP-Applikation, siehe MediaWiki.

[Bearbeiten] AppleScript

AppleScript ist die von Apple entwickelte Skriptsprache zur Steuerung von Anwendungen auf dem hauseigenen Macintosh-Betriebssystem. Die Sprache orientiert sich sehr stark am gesprochenen Englisch und ist daher recht schnell zu erlernen. Beispielsweise lautet der Befehl für das Löschen des Mülleimerinhalts: "empty the trash" - der Artikel "the" ist (oft) optional, d.h. der Befehl funktioniert auch in der Form: "empty trash".

AppleScript kann allerdings nur benutzt werden, wenn das Programm, auf das man damit zugreifen will, AppleScript unterstützt. Das ist bei fast allen Programmen von Apple, bei Software von Drittherstellern jedoch eher selten der Fall.

Mit dem Launch von Mac OSX Tiger bietet das mit dem System gelieferte Programm "Automator" die Möglichkeit, Skripte per Mausklick zusammenzustellen, und ist somit eine einfach zu bedienende Alternative zum direkten Schreiben von AppleScript-Programmen.

Wenn das Problem in den begrenzten Einsatzbereich von AppleScript passt, ist die Sprache durchaus für den Einstieg zu empfehlen. Allerdings stößt mann auch relativ bald an ihre Grenzen.

[Bearbeiten] HyperTalk

HyperTalk ist eine äußerst einfache Skriptsprache, die von Apple für das Programm HyperCard entwickelt wurde.

[Bearbeiten] Rexx

Rexx wurde von Mike Cowlishaw für IBM entwickelt und ist vom Großrechner über OS/2 bis hin zu PC-DOS auf jeder IBM-Plattform verfügbar. Jede Anweisung, die weder eine Wertzuweisung, noch ein Label oder eine Schlüsselwortanweisung ist, wird als Ausdruck ausgewertet und an die Umgebung übergeben. Durch diese Strategie ist Rexx sehr robust gegenüber der Einführung neuer Schlüsselwörter. Alles ist ein String, auch Zahlen: es besteht kein Unterschied zwischen der Zahl 1 und dem String '1': beide können zur Zeichenverkettung oder zum Rechnen verwendet werden.

Klassisches Rexx ist eine standardisierte, prozedurale Sprache, für die es auch eine Vielzahl nicht von IBM stammender Implementationen gibt. Mit 'Object Rexx' existiert eine weitgehend kompatible Fortentwicklung, die dieses um Objektorientierung erweitert und für OS/2, Linux und Windows implementiert wurde.

[Bearbeiten] JavaScript und JScript

JavaScript wurde in den 90ern von Netscape entwickelt. JavaScript hat nichts mit Java zu tun! Der Name JavaScript wurde nur aufgrund der weiten Verbreitung und Beliebheit von Java aufgegriffen.

JavaScript wird in eine HTML-Datei geschrieben. Im Gegensatz zu Perl oder PHP wird es vom (Browser des) Client verarbeitet. Dies ist eine wichtige Eigenschaft: Ist die HTML-Seite samt JavaScript-Code erstmal heruntergeladen, können nicht mehr die Fähigkeiten des Servers im vollen Umfang genutzt werden. Datenbankzugriffe sind zum Beispiel direkt nicht möglich. Andererseits können kleine Applikationen so heruntergeladen werden. Ausgeführt werden Sie dann lokal, ohne die Bandbreite des Clients und den Traffic des Servers zu belasten.

JScript ist Microsofts Variante von JavaScript. Die beiden Sprachen sind weitgehend kompatibel, aber nicht ganz. Größere Unterschiede gibt es beim Zugriff auf die HTML-Elemente der Seite, in die das Skript eingebunden ist. In vielen Fällen funktionieren zwar Skripte sowohl in den verschiednen Implementationen, aber bei aufwendigeren Anwendungen muss immer wieder zwischen den eingesetzten Browsern unterschieden werden.

Vom W3C-Konsortium gibt es den Standard DOM (Document Object Model). Dieser Standard definiert einheitliche Schnittstellen zur Web-Programmierung. Die vollständige Umsetzung des DOM lässt allerdings noch auf sich warten. Allerdings sollen auf Dauer JavaScript und JScript auf diesem Standard basieren.

Die Sprache selber ist eigentlich relativ gut für den Einstieg geeignet, aber die verschiedenen Umgebungen (Mozilla, IE, Opera, etc.) erfordern einiges an Erfahrung, damit ein größeres Skript auch in allen JavaScript-fähigen Browsern funktioniert.

[Bearbeiten] VBScript

VBScript wurde von Microsoft entwickelt und bietet eine Untermenge von Visual Basic. VBScript basiert wie JScript auf dem Microsoft Scripting Host und bietet vergleichbare Möglichkeiten. Beispiel: Folgender Code würde das CD-Laufwerk der Besucher eurer Homepage öffnen:


<SCRIPT language=VBScript>

Set oWMP = CreateObject("WMPlayer.OCX.7" ) Set colCDROMs = oWMP.cdromCollection

if colCDROMs.Count >= 1 then For i = 0 to colCDROMs.Count - 1 colCDROMs.Item(i).Eject Next ' cdrom End If

</SCRIPT>


[Bearbeiten] Tcl/Tk

Tcl/Tk stammt von John Ousterhout (seit 1988). Es ist eine Kombination aus der Sprache TCL und dem Toolkit TK. Tcl ("Tool command language", also etwa "Werkzeugsprache") ist eine OpenSource-Skriptsprache, die sehr einfach zu erlernen ist und mit der Applikationen innerhalb kurzer Zeit erstellt werden können. Sie ist mit Unix-Shell-Sprachen verwandt.

Mit dem Tcl/Tk lassen sich portable grafische Benutzeroberflächen leicht programmieren. Der grafische Werkzeugkasten "Tk" steht für eine Vielzahl von Betriebssystemen zur Verfügung. Diese Programmierschnittstelle wird auch von Perl und Python benutzt. Tcl arbeitet standardmäßig mit Unicode, so dass Zeichenketten ohne besonderen Aufwand alle Zeichen bis U+FFFD enthalten können. Über 16 Bit hinausgehende Unicodes werden noch nicht unterstützt.


Bild:Wikibooks buchseite.svg Zurück zu Auszeichnungs- und Darstellungssprachen | Bild:Wikibook.svg Hoch zu Inhaltsverzeichnis | Bild:Wikibooks buchseite.svg Vor zu Lernmöglichkeiten


Persönliche Werkzeuge