Anleihen von anderen Sprachen geplant

Perl soll in der Version 6 von Grund auf erneuert werden

29.09.2000
MÜNCHEN (ws) - Die besonders bei Web-Entwicklern beliebte Scriptsprache steht vor einem grundlegenden Umbau. Bei einigen geplanten Features orientiert sich Perl-Erfinder Larry Wall an Python, Java oder Robol. Die geplanten Features erfordern das Neuschreiben des Interpreters.

Schon seit der Version 5 vermitteln einige Neuerungen den Eindruck nachträglich aufgesetzter Erweiterungen. Dazu zählte die mit Perl 5 eingeführte Objektorientierung. Auch die in der aktuellen Version 5.6 integrierte Unicode-Unterstützung konnte auf Basis des bestehenden Codes nur mehr mit Mühe realisiert werden. Larry Wall vergleicht in seinem Strategiepapier für Perl 6 (http://www.perl.org/perl6/pr/initial_meeting.html) die Internas der Scriptsprache mit einem Ventil, das zu drei Viertel geschlossen sei. Die Altlasten der in C geschriebenen Ablaufumgebung behinderten die Erweiterung der Sprache um interessante neue Funktionen. Der schwer verständliche Code hemmt darüber hinaus das Engagement von freiwilligen Programmierern, auf die das Open-Source-Projekt angewiesen ist. Perl 6 wird daher von Grund auf in C++ neu geschrieben.

Die Neuentwicklung des Interpreters soll nicht nur Ordnung in den Code bringen, sondern auch zu besserer Performance führen. Das Perl-Team nimmt sich dabei das "Mozilla"-Projekt zum Vorbild, dessen Browser im Vergleich zum schwerfälligen "Communicator" wesentlich schlanker und schneller geworden ist. Zur Beschleunigung von Perl-Programmen will Larry Wall einen Mechanismus von Python übernehmen, um vom Interpreter erzeugten Bytecode vor seiner Ausführung zu speichern. Unklar ist noch, wie weit der schon länger in Arbeit befindliche Compiler bis zur Fertigstellung von Perl 6 gedeihen wird. Die Readme-Datei der aktuellen Ausführung 5.6 beschreibt den Status des "perlcc" ausdrücklich als experimentell und als ungeeignet für Produktionsumgebungen. Ein bemerkenswertes Feature für ein Open-Source-Produkt repräsentiert die geplante Möglichkeit, Scripts mit dem Interpreter zu einem Programm zusammenzupacken, damit Entwickler ihren Quellcode nicht preisgeben müssen.

Als weiteres wichtiges Ziel für Perl 6 gilt die Unterstützung für Corba, COM und das Komponentenmodell von Mozilla namens "XPCOM". Erforderlich dafür ist allerdings eine strengere Typisierung von Daten in Perl, die das Update realisieren soll.

Anleihen bei Java will Larry Wall besonders beim Dokumentationssystem, beim Threading und der Fehlerbehandlung (Exception Handling) machen. Das bisher genutzte POD ("Plain Old Document") soll nach dem Vorbild von "Javadoc" ausgebaut werden, das aus Programmkommentaren Dokumentationen generieren kann. Direkte Unterstützung für die Programmierung von Threads soll laut Perl-Erfinder zu einem Eckpfeiler der Version 6 werden.

Angesichts des relativ engen Zeitrahmens bis Ende nächsten Jahres haben sich die Perl-Entwickler noch eine Vielzahl von Sprachänderungen vorgenommen. So sollen die so genannten Typeglobs, die mit Einführung von Referenzen in der Version 5 ohnehin an Bedeutung verloren, verschwinden. Das gleiche Schicksal ereilt auch die Globs, die einem neuen Konzept für File-Handels zum Opfer fallen. Auf der Abschussliste stehen zudem einige der Spezialvariablen von Typ $|, $ oder $_, welche, ist noch nicht bekannt.

Als Sprache, die besonders für die Manipulation von Zeichenketten gedacht ist, muss Perl auch für die Verarbeitung von XML-Dokumenten ausgelegt werden. Dazu zählen eine von Grund auf realisierte Unterstützung für Unicode sowie für ein Event-Modell, das beispielsweise Verbesserungen beim Parsen von XML-Daten bringen soll. Von Bedeutung ist dies besonders für das Simple API for XML (SAX). Bei den regulären Ausdrücken, die dem Finden und Ändern von Textmustern dienen, will Larry Wall schließlich einige Funktionen von Robol übernehmen. Worin diese Anleihen genau bestehen werden, steht noch nicht fest.