Weil Perl-Kundige eher Kommandozeilen-Spartaner sind, kann man integrierte Entwicklungsumgebungen für diese Sprache an einer Hand abzählen. Eine davon, Epic, bringt Licht in Eclipse, die Finsternis.
Weil Tippen zum Programmieren gehört, ist der Editor das unentbehrliche Handwerkszeug des Entwicklers. Noch besser taugt manchen eine Integrierte Entwicklungsumgebung (IDE), denn mit ihr kann man sich idealerweise allen Phasen des Entwicklungsprozesses vom Kodieren übers Debuggen und Testen bis zur Dokumentation widmen, ohne jemals das Werkzeug zu wechseln.
Auch unter unterschiedlichen Betriebssystemen lässt sich oft die gleiche IDE verwenden. Solche integrierten Umgebungen gibt es auch für Perl. Die bekanntesten sind das in Perl selbst programmierte freie Padre, die allerdings kostenpflichtige Komodo-IDE von Active Perl sowie Epic [1], die Open-Source-IDE auf Eclipse-Basis, um die es hier geht.
Epic nutzt die Meta-IDE Eclipse, deshalb muss es sich auch deren Begriffen und Regeln anpassen: Eine Epic-Instanz heißt im Eclipse-Jargon Workbench. Die speicherbare spezielle Konfiguration und Anordnung der Fenster, Menüs und Symbolleisten nennt sich Perspektive und zu den Unterfenstern, aus denen sie besteht, sagt man Ansichten oder Views. In Epic gibt es zwei grundlegende Perspektiven: Perl und Debuggen. Die Perl-Perspektive verwendet der Programmierer zum Schreiben von Programmen, die Debuggen-Perspektive zur Fehlersuche.
Zur Orientierung
Beide Perspektiven bieten vielfältige Hilfen und Arbeitserleichterungen. So enthält die Perl-Perspektive auf der linken Seite zwei Views, die die Navigation in den Dateien eines Projekts erleichtern (Abbildung 1). Der Project-Explorer führt in einer aufklappbaren Liste alle Files aller Projekte auf. Ein Doppelklick auf einen Dateinamen holt den zugehörigen Quelltext ins Editorfenster rechts.
Innerhalb eines Perl-Programms hilft dann die Gliederungs-View bei der Orientierung. Mit ihr kann man direkt alle Subroutinen, die dort aufgeführt sind, aufsuchen und hat auch alle Module im Blick, die eingebunden werden. Die Inhalte beider Listen lassen sich verstecken oder sichtbar machen sowie auf Wunsch alphabetisch sortieren.
Zusätzlich zur Gliederungsansicht kann der Benutzer an jeder Stelle im Code Lesezeichen einrichten, die er in einer eigenen View sammelt. Ähnlich wie Lesezeichen darf er auch selbst definierbare Tags wie »TODO« oder »FIXME« einsetzen, deren Vorkommen im Quelltext wieder eine eigene View vorhält.
Schließlich ist auch eine Orientierung an den Zeilennummern möglich, die sich bei Bedarf einblenden lassen. Der Übersicht kommt auch zugute, dass sich der Quellcode von Subroutinen bis auf die erste Zeile verbergen lässt (Source Folding) – wer Details braucht, klappt ihn mit einem Klick einfach wieder aus. Bei langen Listings kostet das allerdings etwas Performance.
Wo das alles nicht reicht, kann der Entwickler in allen oder in ausgewählten Dateien natürlich auch nach Wörtern oder regulären Ausdrücken suchen. Die Fundstellen zeigt eine eigene View, sie lassen sich von dort aus durch Doppelklick anspringen. Außerdem erlaubt die Suche das Austauschen von Strings, eine Funktion, die beispielsweise beim Refactoring willkommen sein dürfte. Neben der Suche sind auch Vergleiche zwischen mehreren Quelltexten oder Versionen auf Knopfdruck möglich.
Wünscht sich der Entwickler eine Speicherung aller Versionen seiner Software in einem Versionskontrollsystem, kann er Eclipse (und damit Epic) mit entsprechenden Plugins aufrüsten, die etwa einen integrierten CVS-Client zur Verfügung stellen.
Der Editor
Die obere View in der Mitte ist das Editorfenster. Es kann mehrere Quelltexte gleichzeitig in einzelnen Tabs öffnen. Der Code stellt das Fenster mit frei konfigurierbarem Syntax Highlighting dar und kennt auch die einschlägigen Formatierungshilfen, die zudem ebenfalls einstellbar sind. So kann der Programmierer etwa festlegen, dass öffnende Klammern immer auf neuen Zeilen erscheinen, bei Else-Konstrukten aber in einer Zeile (Cuddled Elses), dass eine schließende Klammer in dieselbe Spalte gesetzt wird, in der darüber die öffnende steht und so weiter.
Im Hintergrund verwendet Epic für das Aufhübschen des Codes das bekannte Perltidy-Utility, für das die gewünschten Optionen hinterlegbar sind. Damit lassen sich dann zusätzlich auch Einrückungen, Zeilenlängen, Kommentare und vieles mehr automatisch formatieren. Die Schönheitskur für den Code ist jederzeit über das »Source« -Menü beziehungsweise via [Shift]+[Ctrl]+[F] zu starten. Nebenbei: Manchmal sind spaltenweise Textauswahlen sehr nützlich: Epics Perl-Editor beherrscht selbstverständlich auch diese, das Zauberwort dafür heißt [Alt]+[Shift]+[A].
Der Editor in Epic kann dem Programmierer durch eine einstellbare Autovervollständigung Tipparbeit abnehmen. Das betrifft zum einen automatisch ergänzte Abführungszeichen und schließende Klammern. Zum anderen kann er sich auch nach Eingabe von »$« , »@« oder »%« eine Liste der bereits definierten Skalare, Arrays oder Hashes einblenden lassen, aus der er dann den benötigten Variablenname wählt. Das mindert zudem die Gefahr, sich zu verschreiben. Auf ähnliche Weise schlägt der Editor auch die jeweils möglichen Methoden vor, sobald die Instanzvariable eines Objekts und der Rechtspfeil-Operator »->« getippt sind.
Ein weiteres Feature im Interesse der Sicherheit und Bequemlichkeit sind Templates. Damit lassen sich vorbereitete Codeschnipsel an jeder Stelle im Quelltext einsetzen. Epic kennt zwei bereits ab Werk eingebaute Templates, die aber eher zu Demo-Zwecken zu gebrauchen sind. Nützlicher sind eigene Templates, die der Entwickler anlegen und ex- und importieren kann.
Aufgerufen werden sie, indem der Programmierer im Quelltext die Anfangsbuchstaben des Template-Namens gefolgt von [Ctrl]+[Space] tippt. Das vorbereitete Template »package« ergänzt daraufhin beispielsweise das Schlüsselwort »package« , setzt den Namen der geöffneten Datei und auch gleich das Semikolon dahinter und platziert den Cursor am Anfang der nächsten freien Zeile. Natürlich sind auch komplexere Konstrukte möglich, die zudem eine Reihe vordefinierter Variablen nutzen dürfen.
Je eher ein Fehler erkannt wird, desto einfacher ist er zu korrigieren. Epic prüft deshalb die Syntax schon unmittelbar während der Eingabe und markiert vermutlich fehlerhafte Stellen on the Fly durch Unterstreichen mit einer roten Wellenlinie, ein Icon am Zeilenrand und einen Eintrag in der Problem-View. Die Zeitspanne vom letzten Tastenanschlag bis zum Beginn der Syntaxkontrolle ist einstellbar. Im Hintergrund nutzt Epic dafür den Source Code Analyzer Perlcritic, der sich in den Epic-Preferences ebenfalls parametrisieren lässt.
Einfach nachschlagen
Deckt der Analyzer einen Syntaxfehler auf, den der Programmierer aber für korrektes Perl gehalten hatte, muss er wohl oder übel die Dokumentation konsultieren. Dafür braucht er Epic jedoch nicht zu verlassen. Markiert er ein beliebiges Schlüsselwort oder einen Modulnamen, lassen sich aus dem Kontextmenü oder über [Ctrl]+[Shift]+[H] die Perl-Dokumentation und Perl-FAQs nach Perldoc-Dokumenten zum Stichwort durchsuchen. Das Ergebnis erscheint als Tab in einer View, im Fall von Modulen zeigt ein weiteres Tab neben der Dokumentation auch den Modul-Quelltext an.
Falls Perldoc nicht installiert sein sollte, darf der Entwickler trotzdem auf Hilfe hoffen, denn zusätzlich gibt es noch das Quick-Reference-Feature. Markiert man ein Schlüsselwort und positioniert den Mauszeiger darüber, erscheint ein Tooltipp mit einer kurzen Erläuterung zu Sinn, Zweck und Syntax.
Der Debugger
Die zweite Hauptkomponente der IDE nach dem Editor ist der Debugger. Auch er lässt sich vollständig innerhalb der Workbench nutzen. Als Grundfunktionen bietet er zunächst die gleichen Features wie der in Perl eingebaute Kommandozeilen-Debugger: Es lassen sich Breakpoints setzen, das Programm ist schrittweise ausführbar, wobei in Subroutinen verzweigt werden kann oder nicht, und Typ und Wert aller Variablen sind jederzeit inspizierbar.
Das alles funktioniert in Epic aber grafisch (Abbildung 2). Der Klick in eine Spalte am Fensterrand setzt oder löscht Breakpoints, die Programmausführung startet aus dem Kontextmenü und für die Einzelschrittsteuerung gibt es eine Symbolleiste. Eine sich automatisch aktualisierende Variablen-View zeigt die Werte aller definierten Variablen im aktuellen Geltungsbereich, auf Wunsch zusätzlich deren deklarierten und/oder den tatsächlichen Typ.
Einen Stolperstein eigener Art in Perl-Programmen können komplexe reguläre Ausdrücke bilden. Epic bietet dafür ein besonderes Tool, das farblich hervorhebt, welche Teile eines Ausdrucks auf welche Passagen eines Beispieltextes zutreffen (Abbildung 3).
Ein besonderes Schmankerl bietet Epic durch die Möglichkeit, die Startvorgaben so einzustellen, dass es auch CGI-Skripte oder Perl-Programme auf entfernten Rechnern debuggt. Für die lokale Ausführung eines Programms sind nicht nur die Parameter definierbar, die via Kommandozeile zu übergeben sind, sondern auch die Shell-Umgebungsvariablen, auf die das Programm zugreifen können soll. Für Webanwendungen ist ein integrierter Browser ebenso wie Firefox oder ein anderer externer Browser nutzbar.
Fazit
Epic ist eine leistungsfähige Perl-IDE, die mit der Konkurrenz gut mithalten kann. Der eine oder andere Wunsch bleibt noch unerfüllt – beispielsweise der nach bedingten Breakpoints, die für Java-Programmierer unter Eclipse selbstverständlich sind. Doch die vorhandenen Features erleichtern das Leben des Perl-Programmierers deutlich, ohne dass er dafür zu anderen Werkzeugen mit einer jeweils anderen Bedienphilosophie wechseln müsste.
Zudem werden so alle Files eines Projekts an einem Ort zusammengehalten und auf Wunsch versioniert. Bei Epic stechen die weitgehende Konfigurierbarkeit so gut wie aller Features, die flexiblen Einstellmöglichkeiten für die Ausführungsumgebung inklusive CGI-Debugging und das Konzept der aufgabenbezogen einrichtbaren Perspektiven hervor.
Infos
- Epic: http://www.epic-ide.org









