< Vorwort ^ Übersicht ^ Pilosophie > Gemeinschaft >>

Geschichte

Wie alles begann

Perl ist ein Kind der quelloffenen Unix-Hackerkultur. Damals gab es weder das Web,
Python, Ruby noch Linux. Der stolze Vater (Larry Wall)
hatte sich bereits durch den Mailclient rn und das Werkzeug metaconfig einen Namen
erworben und seine Erfindung patch ist heute eine Vokabel, welche die meisten
Programmierer verstehen. Deshalb schenkte man ihm auch im Dezember 1987 Beachtung,
als er eine neue Sprache veröffentlichte, die nach einer sehr mächtigen Shell aussah.
Sie vereinte grundlegende C-Syntax (Schlüsselworte, Operatoren und geschweifte Klammern),
Dateitestbefehle, Spezialvariablen und Kommentare der Shell, die Unix-Kommandos (chown bis unlink)
und verstand sogar die aus sed, awk oder grep bekannten Regulären Ausdrücke.
Das erleichterte nicht nur das Erlernen, sondern auch die Entwicklung kleiner Programme,
die bisher zu komplex für Shellskipte waren, mit C aber um ein vielfaches aufwändiger
zu schreiben wären. Und so wurde Perl zu einem wichtigen Werkzeug für Administratoren
um Dateien auszuwerten, andere Rechner zu überwachen oder
an Sockets zu lauschen und darüber übersichtliche Berichte zu verfassen.
Und es blieb bis heute dieses wichtige Werkzeug. Das nachträglich gefundene Akronym
"Practical Extraction and Report Language" beschreibt genau dieses Anwendungsgebiet.

Perl 5 - der große Sprung

Wesentlich mehr Felder erschloss sich die Sprache 1994, mit der von Grund auf neu
entwickelten Version 5. Erweitert um eine Schnittstelle für das Einbinden von
Perl-fremden Programmteilen (XS), Referenzen für komplexe Datenstrukturen,
jederzeit ladbare Pakete, Namensräume, lexikalisch lokale Variablen und eine
sehr lässige Objektorientierung war Perl bereit für größere Vorhaben.
Dann kam auch schon das "WWW" und Perlskripte warenganz vorne mit dabei,
per CGI Webseiten mit Inhalten aus Datenbanken zu versorgen.
Dank der einheitlichen Datenbankschnittstelle DBI war das nicht allzu schwer.

Selbst heute, da wegen des einfacheren Verteilungsmechanismus PHP hier sehr weit
verbreitet ist, verwenden bekannte Firmen und Institutionen wie Amazon, IMDb,
Slashdot, Booking.com, die BBC, New York Times, ORF und viele mehr Perl für ihren
Internetauftritt. Sogar Online-Spiele wie Lacuna Expanse nutzen es.
Allerdings wird hier kaum noch CGI für die Schnittstelle direkt eingesetzt.
Neue Projekte werden heute mit komplexen Webframeworks gebaut,
welche die meiste Arbeit abnehmen. Perl hat hierfür Catalyst, Mojolicious oder Dancer,
die auf Augenhöhe mit Pendants wie Rails, Django oder Sinatra stehen.
Auch im Bank- und Nachrichtenwesen sowie in der Bioinformatik fand und findet Perl
weite Verbreitung.

Jede Linux-Distribution enthält neben Perl eine Reihe von Programmen wie
Frozen Bubble, Shutter oder gmusicbrowser, welche in Perl verfasst sind.
Programmierer und Administratoren freuen sich eher über ack,
einer intelligenten grep-Alternative. Des Weiteren läuft es oft an
von außen nicht sichtbaren Stellen. Es ist in git enthalten,
in den Quellen des "Libre Office" gibt es kleine Perlskripte für Konvertierungen
und selbst Google beschäftigt Perl-Spezialisten, um nur 3 Beispiele zu nennen,
warum manche Perl als das Klebeband bezeichnen, welches das Internet zusammenhält.

Ende der 90er Jahre wurde Perl auf Mac und Windows portiert und heute gibt
es nur eine Handvoll sehr seltene Betriebssysteme, für die es Perl nicht gibt.

Perl 5 und Perl 6

2000 kündigte Larry Wall schließlich Perl 6 an, um der etwas eingeschlafenen
Gemeinschaft wieder ein großes begeisterndes Ziel zu geben. Aus diesem anfangs
ungenauen Vorhaben entstand mit der Hilfe mehrerer hundert Vorschläge eine sich
immer weiter verfeinernde Spezifikation (Synopsen genannt).
Mehrere Interpreter und Compiler, darunter besonders Rakudo und Niecza,
erfüllen bereits große Teile dieser Spezifikation, laufen auch relativ stabil, aber sehr langsam.
Sie werden regelmäßig veröffentlicht und bereits für kleinere unkritische Aufgaben eingesetzt.

Rakudo ist ein Aufsatz für Parrot, einer quellfreien virtuellen Maschine, ähnlich der JavaVM
oder der CLR von Microsoft. Sie ist besonders für dynamische Sprachen wie Perl, Python
oder Ruby ausgelegt und wird auch mit dem Ziel entwickelt, daß in einer Sprache
geschriebene Bibliotheken ebenfalls in allen anderen Sprachen nutzbar sind.

Perl 6, ist ein vollständig neue, klar strukturierte Sprache, die wesentlich umfangreicher
und auch mächtiger ist als Perl 5, der sie nur oberflächlich und in ihrerer Philosophie ähnelt.
Sie besitzt optionale Datentypen und vollständig überarbeitete Reguläre Ausdrücke,
die zu Klassen (Grammatiken) zusammengefasst werden dürfen.
Das kann genutzt werden, die Syntax sauber zur Laufzeit zu verändern.
Somit könnte es zum wirkungsvollen Gegenmittel der um sich treibenden Komplexität
in der Softwarewelt werden. Eine vollständige Liste der Fähigkeiten ist kaum möglich,
19 von 20 Fragen "Hat Perl 6 eine Syntax für ...?" können mit ja beantwortet werden.

Deshalb wird Perl 6 in absehbarer Zeit weder Perl 5 ersetzen noch endgültig fertiggestellt
werden. Aber viele Ideen daraus wurden in Module gepackt (beginnen meist mit "Perl6::"),
und können in Perl 5 genutzt werden. Das bekannteste dieser Module ist Moose,
welches mit seinen vielen Erweiterungen nicht nur ein modernes System zur Objektorientierung
in Perl 5 bereitstellt, sondern auch Teilklassen, Typisierung von Parametern,
eigene Subtypen und sehr sehr, vieles mehr. Ein Teil der neuen OOP-Syntax könnte
in den nächste Jahren in den Sprachkern wandern.

Seit Version 5.10 sind bereits einige der nützlichsten und portabelsten Ideen aus
Perl 6 diesen Weg gegangen. Sie müssen aber mit "use v5.10;" zugeschaltet werden,
da sie das Funktionieren älterer Programme stören könnten.

Die "Renaissance of Perl"

Moose, Catalyst sowie die meisten hier genannten Pakete sind Beispiele für eine
neue Generation Module und auch einen neuen Geist, der seit etwa 3-4 Jahren einzog.
Enthusiasten gründeten sogar die EPO, die enlightened perl organisation um diese
Entwicklung zu fördern und zu steuern. Lange ausstehende Probleme wie die umständliche
Kompilierung von XS-Modulen unter Windows wurden z.B. mit Strawberry Perl gelöst
und fast sämtliche wichtigen Webseiten wurden neu gestaltet oder ersetzt.
Sogar eigene Entwicklungsumgebungen und Editoren werden in Perl verfasst.
Dazu gehörte auch, die Quellen von Perl in ein git-Archiv zu portieren und der Wechsel
zu vorhersehbaren Zyklen, in denen neue Haupt- und Nebenversionen erscheinen.


< Vorwort ^ Übersicht ^ Pilosophie > Gemeinschaft >>

-- HerbertBreunung - 2011-06-29
Topic revision: 2011-11-05, HerbertBreunung
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.