<<

Perlen züchten

Für die Programmiersprache existieren ausgefeilte Plugins sowohl für die gängigen Editoren als auch für ausgewachsene Entwicklungsumgebungen. Ob der Einsatz solcher Plugins oder spezieller Anwendungen für die Programmierung mit Perl besonders hilfreich ist, wird hier nachgeprüft. Zum Einsatz gelangen der Editor , die Perl-Entwicklungsumgebung Padre sowie das Eclipse- Plugin EPIC. Harald Jele

Die Programmiersprache Perl zählt wohl nicht zu Das Vim-Plugin für Perl jenen, die in den letzten Jahren besonders viel von sich Aufhebens gemacht hat. Trotzdem darf nicht Ubuntu setzt Vim nicht als einen seiner Standard- vergessen werden, dass Perl seit Jahrzehnten sehr Editoren ein und installiert diesen auch nicht auto- beliebt, weit verbreitet und in so manchen Anwen- matisch mit. Etwas komfortabler als die konsolen- dungsgebieten einfach nicht wegzudenken ist. basierte Ausgabe dieses Editors ist, gerade für we- Perl findet sich sowohl in so manchem (komplexen) nig Vim-Affine, jene mit graphischer Oberfläche, Einzeiler als auch in umfangreichen Programmen die im Weiteren hier verwendet wird. Eine Suche wieder. Und kaum eine Frage, die sich der geübte danach in den Paketquellen mit Perl-Programmierer stellt, ist im CPAN [1] unbe- antwortet geblieben. apt-cache search gvim Der typische Perl-Programmierer scheint einer zu sein, der mit den Jahren seinen Lieblingseditor ge- bringt mehrere Installationskandidaten ans Tages- funden hat und damit im Wesentlichen sein Aus- licht, wobei sich diese ausschließlich durch die spe- langen findet. Wer sich in einem Editor wie dem zifische Ausprägung der Symbole an der Oberflä- Vim oder Emacs zurecht findet wie der geübte che unterscheiden. Hausmann in den Schubladen seiner Küche, ver- Ein misst beim Programmieren in Perl wohl selten eine umfangreichere Unterstützung zu dem was er ge- sudo apt-get install vim-gnome libperl-critic-perl rade tut. Daher stellt sich die Frage, ob es denn sinnvoll sein installiert schließlich die Ausgabe mit den für kann, bei der Bewältigung umfangreicherer Projek- Ubuntu-Anwender wohlbekannten GNOME-Sym- te, jene Hilfe anzunehmen, die ausgewachsene bolen sowie das Perl-Modul „Critic“, das immer Entwicklungsumgebungen (IDEs) üblicherweise dann zur Anwendung kommt, wenn der Program- mitbringen – oder ob es vielleicht doch besser ist, mierer seinen Perl-Code bezogen auf die Einhal- bei jener Arbeitsweise zu bleiben, die einem mit tung der zu verwendenden Syntax überprüfen will. den Jahren vertraut und lieb geworden ist. Das Perl-Plugin für den Vim, das hier zum Einsatz Die Beantwortung dieser Frage erfolgt hier in drei kommt, heißt „Perl-Support“ [2] und wird vom Ent- Schritten: wickler Fritz Mehner seit 2003 regelmäßig ge- • in einem ersten wird eines der beliebten pflegt und erweitert. Der Download der entspre- chenden Datei perl-support.zip gelingt über die Perl-Plugins „Perl-Support“ für den Editor leicht auffindbare Web-Seite Vim vorgestellt, das diesen in seinen Funk- tionen entsprechend erweitert, http://vim.sourceforge.net/scripts/script.php? • anschließend wird die Anwendung Padre script_id=556 besprochen, die maßgeschneidert Perl- Programmierer bei ihrer Arbeit unterstüt- Das Entpacken der Datei geschieht am besten zen will gleich im Verzeichnis $HOME/.vim. Mit • und zu guter Letzt wird das Perl-Plugin EPIC für Eclipse vorgeführt, dessen Erwei- unzip perl-support.zip terungen den Programmierer Perl-typisch unterstützen soll, wenn er mit dieser sehr wird die passende Verzeichnisstruktur angelegt. ausgereiften IDE zu arbeiten versteht und Beim Start des Editors über das Kommando gvim dies auch im Fall von Perl so belassen wird diesem im Menü ein Eintrag „Perl“ hinzuge- möchte. fügt, über den ab sofort die Funktionen des Plug- ins angezeigt werden. Der Menüeintrag ist aber Alle drei Tools sind Open-Source. Ihr Einsatz ist zu- nur dann zugänglich, wenn GVim erkennt, dass der dem sowohl unter Linux, als auch unter Mac OS Programmierer eine Perl-Datei bearbeiten oder er- und Windows möglich. stellen möchte. Im ersten Fall erkennt GVim dies Die Basis für das hier vorgestellte Vorgehen bietet am Filetype der geöffneten Datei im zweiten muss ein frisch installiertes Ubuntu 14.04 LTS. dieser auf der Kommandozeile von GVim durch :set filetype=perl

1 Abbildung 1: Der geöffnete Menüeintrag Perl im Editor. Abbildung 2: Die Textausgabe des gestarteten Debuggers. gesetzt werden. Dabei werden auch alle Abhängigkeiten berück- Abbildung 1 zeigt einen Ausschnitt der Erweiterun- sichtigt und die weiteren, notwendigen Module gen, die das Plugin dem Editor hinzugefügt hat. mit installiert. Die ersten Menüeinträge liefern jeweils leere Ge- Der Abschnitt „Run“ schließlich dient dem Ausfüh- rüste dafür, wie die unterschiedlichen Befehle syn- ren eines Perl-Programms. Zudem können einem taktisch korrekt in Perl umgesetzt werden. Zusam- Programm zum Starten auch gleich diverse Para- mengefasst sind diese in die Gruppen Kommentare meter mit übergeben werden. (Comments), Deklarationen (Statements) und Aus- In diesem Abschnitt sind des Weiteren der Zugriff drücke (Idioms). Da diese Einteilung zum Teil doch auf den Perl-Debugger sowie auf die Tools „Perl- deutlich von der in der Literatur üblichen Gruppie- Tidy“ und „Perl-Critic“ verankert. Mit dem Debug- rung abweicht, mag sie zu Beginn ein wenig über- ger muss man an dieser Stelle bereits vertraut raschend wirken. sein, da das GVim-Plugin keine weiteren Hilfestel- Insgesamt betrachtet ergibt sich mit der weiteren lungen zu dessen Bedienung anbietet. „Perl-Tidy“ Einteilung jedoch durchaus ein sinnvolle Struktur soll zu einer ordentlichen Formatierung des ge- über die der Programmierer effizient zum Ziel, also schriebenen Codes führen (was nicht immer gelin- letztlich rasch zum passenden Befehl, kommt. gen will), „Perl-Critic“ warnt vor schlampiger Syn- Wählt man einen dieser Einträge aus, so wird das tax, die besser vermieden wird, um nicht in die eine vorbereitete, aber noch leere Code-Gerüst in die oder andere Stolperfalle zu tappen, die zu einem geöffnete Datei übernommen. Der geübte Pro- späteren Zeitpunkt dann mühsam gefunden wer- grammierer erspart sich dadurch einiges an den muss. Schreibarbeit. Weniger geübte erhalten dadurch Sämtliche Ausgaben eines gestarteten Programms einen raschen Einblick in die Syntax von Perl. sowie der hier verankerten Tools (der Debugger Die anschließende Einteilung orientiert sich we- ausgenommen) werden standardmäßig in einen sentlich stärker an dem was regelmäßig gebraucht neuen Frame des GVim geschrieben. Wer die Aus- wird: Reservierte Variablennamen, Reguläre Aus- gaben lieber in einem Terminal mitlesen mag, der drücke, die POD (Auszeichnungssprache zur Doku- kann dies über den letzten Eintrag „output: Vim → mentation) und diverse Möglichkeiten, die Eigen- buffer→ xterm“ entsprechend konfigurieren. schaften von Dateien zu überprüfen. In den einzelnen Funktionen zum Menüpunkt Fazit zum Vim-Plugin „Snippets“ können Abschnitte aus vorhandenem Perl-Code als „Schnipsel“ verwaltet und weiterver- 1. Der allgemeine Mehrwert des Plugins gegen- wendet werden. über dem bloßen Editor ist, dass dieses in einer ei- Der nachfolgende Eintrag zum „Profiling“ gestat- genen Struktur Perl-Spezifisches dem Editor hinzu- tet einem, die Effizienz seines Codes zu überprü- fügt, ohne diesen selbst zu verändern. Für den Ein- fen. Dafür sind allerdings zusätzliche Perl-Module steiger in die Perl-Programmierung mag dies hilf- notwendig, die nicht als fertige Ubuntu-Pakete reich erscheinen, um sich in den Möglichkeiten ra- vorliegen. Am einfachsten werden diese mit dem scher zurecht zu finden, die diese Programmier- Tool CPANMinus aus den Paketquellen und folgen- sprache bietet. Dem Perl-Experten spart die eine den Befehlen direkt aus dem CPAN installiert: oder andere Funktion regelmäßig Tipparbeit. Ob sich allerdings ein geübter Perl-Programmierer, sudo apt-get install cpanminus der bislang mit dem Vim allein zurecht gekommen sudo cpanm Devel::SmallProf sudo cpanm Devel::FastProf ist, nicht ohnehin bereits die eine oder andere sudo cpanm Devel::NYTProf Krücke zurechtgelegt hat und deshalb das Plugin

2 nicht oder nur wenig nutzt, sei dahingestellt bzw. Padre: eine Perl-IDE kann hier nicht beantwortet werden. 2. Da sich Vim als Editor gut in typische Arbeitsum- Mit Padre [4] betritt eine Anwendung die Bühne, gebungen integrieren lässt, innerhalb derer meh- die selbst in Perl geschrieben ist und ganz gezielt rere Personen zusammenarbeiten müssen, kann Perl-Programmierer unterstützen und Einsteiger in dieser Ansatz, das Plugin zu verwenden, ein durch- die Programmiersprache einführen will. Dieser An- aus sinnvoller sein. Einen diesbezüglichen Mehr- spruch ist ein ganz spezifischer und wohl auch ein- wert (zur Steigerung kollaborativen Arbeitens) lie- maliger, da damit ganz gezielt Perl-Programmierer fert dieses aber nicht. angesprochen werden. 3. Das Plugin ist schlicht und zurückhaltend gestal- Besonders interessant – und das sei vorweg gleich tet und damit sehr übersichtlich, sodass man sich genannt – ist, dass mit Padre im Kern das Ziel ver- rasch zurecht findet. folgt wird, nicht nur unterstützend bei der Kodie- 4. Wer in umfangreichen Projekten mitarbeiten rung zu wirken, sondern zudem dabei, komplexen muss schätzt den Umstand, dass Programmiercode Code zu restrukturieren (Stichwort „Refactoring“), möglichst übersichtlich dargestellt wird und dieser sodass dieser auf Dauer besser lesbar, wartbar und einem rasch zugänglich wird. Üblicherweise hilft weniger fehleranfällig ist. Ein weites Anwendungs- dabei eine ausgefeilte Navigation, über die die ein- gebiet, in dem Refactoring mit den Jahren zuneh- gebundenen Routinen, die gesetzten Variablen, mend interessant werden kann, eröffnet sich dann, definierte Funktionen, die Schachtelung von Ob- wenn Perl-Programmierer ihren Code von Perl5 auf jekte und sämtliche Kontrollstrukturen rasch ange- Perl6 migrieren. Durch die in den beiden Versionen sprungen werden können. Diesbezüglich bringt mitunter sehr verschiedenen Syntax können auto- das Plugin keine funktionalen Erweiterungen mit. matisierte Tools dem Programmierer hier einiges Auch auf eine automatische Vervollständigung des an mühsamer und fehleranfälliger Arbeit abneh- Perl-Codes, die in modernen IDEs als selbstver- men. ständlich vorausgesetzt wird, muss man verzich- In den Ubuntu-Paketquellen liegt die Version 1.0, ten. die in einem Terminal mit 5. Der Perl-Debugger kann zwar aus dem Editor heraus gestartet werden, die Arbeit mit diesem er- sudo apt-get install padre folgt jedoch auf dem herkömmlichen Weg inner- halb eines Terminals. Eine bessere Integration des installiert wird. Debuggers in den Editor liefert das Plugin nicht. Nachdem das Programm installiert und gestartet 6. Der Code zum Plugin wird laufend gepflegt. Es ist, kann der Benutzer die Oberfläche im Menü- gibt Kontaktmöglichkeiten zum Entwickler und zu punkt View → Language von Englisch auf Deutsch anderen Benutzern über eine Mailingliste [3]. Fra- umschalten. gen, die man dort stellt, werden üblicherweise Ein erster Blick in das Menü verheißt nur Gutes. Al- rasch und kompetent beantwortet. les was sich das Programmiererherz wünscht, 7. Die Dokumentation des Plugins ist umfangreich scheint vorhanden zu sein. Auf Grund der Fülle und gut verständlich. können im Weiteren daher gar nicht alle Menü- 8. Die Performance entspricht jener des Editors punkte genannt oder deren Funktion beschrieben und lässt somit kaum Wünsche offen. werden. Dafür sollen vielmehr die gar nicht so we- nigen Highlights hervorgehoben werden. Nachsatz Unter Datei → Projektstatistik finden sich einige Zahlen (Anzahl der Zeilen, Zeichen, Kommentare Bevor dem Autor des Plugins an dieser Stelle zu etc.), die aus den Projektdateien gewonnen wer- unrecht vorgeworfen wird, dass dieses viele Funk- den, sowie eine Schätzung des geöffneten Pro- tionen einer modernen IDE nicht abdeckt, muss jekts nach dem „Constructive Cost Model“ [5]. Mit darauf hingewiesen werden, dass für den Vim un- diesem wird aufgrund des zugrunde liegenden Co- zählig viele Plugins existieren, die noch einiges des versucht, einerseits die Zeitdauer zu dessen Er- nachzurüsten in der Lage sind. Allein eine Suche stellung sowie andererseits die damit verbunde- nach „vim plugins“ oder „vim ide“ in der Lieblings- nen Kosten in US-Dollar anzugeben. Die Zahlen, die suchmaschine bringt Hinweise auf solche mit mit einer solchen Schätzung verbunden sind, kön- Code-Vervollständigung, Code-Browsing, Versio- nen durchaus interessant oder (wie im vorliegen- nierung und noch einiges mehr. Dass diese sehr den Beispielfall) auch ziemlicher Nonsens sein und spezifischen Funktionen im Perl-Support-Plugin einen dann zum Schmunzeln anregen, wenn die nicht mitgeliefert werden ist daher nur allzu ver- Schätzung ergibt, dass der Code in 1½ Monaten ständlich. Warum sollten Funktionen neu erfunden werden, die es weiland schon in sehr ausgereifter Form gibt?

3 Abbildung 3: Die Rahmendarstellung in Padre. Abbildung 4: Die Integration des Perl-Debuggers in Padre. geschrieben werden kann, man selbst aber Jahre das Tool CPAN-Minus (das auch bei Padre daran gefeilt hat, um diesen zu warten und zu per- im Hintergrund werkt) durchaus installiert fektionieren. Aber das kann Padre nun einmal nicht werden können, wissen. Es sieht immer bloß das Endergebnis. • die „Funktionsliste“ zeigt übersichtlich alle Im Menüpunkt „Bearbeiten“ finden sich all jene definierten Routinen an und stellt diese Funktionen, die man dort üblicherweise erwartet. zum Navigieren innerhalb des Codes be- Daneben verstecken sich hier jedoch auch die auto- reit, matische Vervollständigung, die mit STRG+BLANK • aus der „Projektansicht“ wird deutlich, wel- ausgelöst wird, sowie die Verwaltung von Code- che Dateien zu einem Perl-Projekt gehö- Teilen (Schnipseln), mit der Wiederkehrendes ele- ren. Über die angezeigte Liste können die gant vorrätig gehalten werden kann. Padre vervoll- zugehörigen Dateien geöffnet werden, ständigt dabei sämtlichen Perl-Code als auch die • mit der „Übersicht“ erhält ein Programmie- Namen von Variablen, Funktionen, Objekten und rer einen schnellen Überblick zu den gela- dergleichen, die innerhalb einer geöffneten Datei denen Perl-Modulen und den eingebunde- bereits verwendet wurden. Jene, die in anderen nen Methoden, Projektdateien vorkommen, werden beim ersten • mit „Ausgabe“ werden in einem Rahmen Aufruf leider nicht vervollständigt. Bei umfangrei- chen Projekten würde eine solche Funktion aller- die Ausgaben eines gestarteten Pro- dings sehr viele Ressourcen binden und das an- gramms sowie jene, die von Perl selbst sonsten flüssige Arbeiten merklich bremsen. Zu- stammen, angezeigt. Dies geschieht in dem sind in diesem Abschnitt das Patchen von Da- gleicher Weise, wie man es auf der Kom- teien und das Erzeugen einer Differenzdatei (Diff) mandozeile eines Terminals gewohnt ist, untergebracht. Beim Testen haben sich hier jeodch • über den „Syntax-Check“ werden die Mel- Probleme mit der Auswahl und Anzeige der zwei- dungen des Moduls Perl::Critic angezeigt, ten, abzugleichenden Datei ergeben, sodass diese wobei sich hier der Level der kritischen Funktionen nicht genutzt werden konnten. Kommentare (üblicherweise von sehr Als sehr nützlich stellt sich im Menüpunkt „Suchen“ streng bis eher nachlässig) nicht einstellen der Eintrag „Lesezeichen“ heraus. Sind Lesezeichen lässt, gesetzt, so können diese hinfort sehr einfach ange- • die „TODO-Liste“ ist ein praktischer Platz, sprungen und verwaltet werden. Als einziger Wer- um sich Notizen aufzubewahren. Leider mutstropfen bleibt der Umstand, dass diese Lese- wird auch diese Liste im Homeverzeichnis zeichen nicht innerhalb der Projektdateien, son- des Benutzers verwaltet und kann so nur dern im Homeverzeichnis des Benutzers verwaltet mühsam mit anderen abgeglichen werden, werden und daher nicht oder nur sehr mühsam • mit „Versionskontrolle anzeigen“ erhält über die Versionsverwaltung mit anderen abgegli- man einen Überblick zum Versionsstand lo- chen werden können. kaler Dateien gegenüber einem Reposito- Ist man beim Menüpunkt „Ansicht“ angekommen, ry, das mit Subversion oder vorgehal- so zeigt sich an dieser Stelle deutlich, wie viele ten werden kann. Leider ist die Konfigura- Tools Padre unter der Haube vereint und in eige- tion eines beliebigen Git-Repositories im nen Rahmen anzuzeigen in der Lage ist: Test gescheitert. Auch die Recherche nach • über den CPAN-Explorer kann ebendort den Ursachen blieb im Dunkeln. Nach dem nach Perl-Modulen gesucht und diese auf Installieren von einfachem Wege auch gleich installiert cpanm Padre::Plugin::Git und werden. Eigenartiger Weise werden immer cpanm Padre::Plugin::SVN wieder mal Module nicht angezeigt, die im können die beiden Plugins im Plugin-Mana- CPAN sehr wohl zu finden sind und über ger aktivert werden. Mit dem Git-Plugin

4 hat dies zu keiner funktionierenden Konfi- und Perl weiterhelfen. Als nette Idee kann gewer- guration geführt. Die Versionskontrolle via tet werden, dass hier auch die Möglichkeit besteht, SVN reiht sich anschließend als eigener via IRC „Live-Kontakt“ zu anderen zu bekommen, Eintrag im Menüpunkt „Werkzeuge“ ein was in turbulenten Zeiten (wenn also viele Mitglie- und kann fortan von dort aus gesteuert der online sind) für den einen oder die andere werden, dann durchaus sinnvoll sein mag. • die Funktion „Code-ausblenden“ sollte in diesem Menüpunkt noch hervorgehoben werden. Damit werden, wie auch in ande- Fazit zu Padre ren Editoren und IDEs, zusammengehörige Codeteile bei Bedarf ein- bzw. wieder aus- 1. Der allgemeine Mehrwert von Padre gegenüber geklappt, um in der Anzeige etwas mehr einem bloßen Editor ist sicher darin zu sehen, dass Übersicht zu bewahren eine große Fülle an Perl-Eigenheiten abgedeckt wird. Der Anspruch, dass mit Padre Programmierer „Refactor“ [6] verheißt dem Perl-Programmierer hin zu Perl geführt werden, kann allerdings nicht laut Beschreibung auf der Homepage, dass hier eingelöst werden, da das tatsächliche Kodieren nur Funktionen vereint werden, die das Umarbeiten über die Angabe externer Quellen innerhalb der komplexer Programme in besser lesbare unterstüt- Hilfefunktionen unterstützt wird. zen sollen. Dazu gehört das automatisierbare Um- 2. Padre lässt sich via SVN in typische Arbeitsumge- benennen von Variablennamen sowie das gleich- bungen integrieren, die Teamarbeit mit sich bringt. zeitige Einführen einer besser lesbaren Form in Externe Tools können jedoch nur mit einigem (Pro- „CamelCase“. Zudem stellt das Programm eine Un- grammier-) Aufwand über die definierten Schnitt- terstützung bereit, mit der Programmcode aus stellen des Programms eingebunden werden. Routinen herausgelöst und in andere eingefügt 3. Die Anwendung ist sehr übersichtlich gestaltet, werden kann. Leider traten bei allen Versuchen sodass man sich grundsätzlich rasch zurecht findet. Meldungen zu „unbekannten Fehlern“ auf, sodass 4. Padre bietet viele Möglichkeiten, umfangreichen auf das Refactoring momentan verzichtet werden Code übersichtlich darzustellen und darin zu navi- muss. Diesbezüglich sind im Padre-Wiki [7] Einträ- gieren. Wer häufig mit fremden Perl-Programmen ge zu finden, die darauf hindeuten, dass diese Feh- umgehen oder diese umarbeiten muss, wird dies- ler schon einige Jahre mitgeschleppt werden, ohne bezüglich gut unterstützt. dass diese je behoben wurden. 5. Der Perl-Debugger ist sehr gut integriert. Die al- Die Funktionen, die zum Menüpunkt „Debugging“ lermeisten Funktionen, die dieser bietet, sind über angezeigt werden, sind vorbildlich ausgeführt (sie- graphische Elemente zugänglich. Diese sind zudem he Abbildung 4). Die graphische Oberfläche führt übersichtlich umgesetzt. zu den wichtigsten Befehlen des Debuggers. In ei- 6. Der Code wird laufend gepflegt. Leider werden nem Rahmen am unteren Bildschirmrand sind des- lästige Fehler, die nütztliche Funktionen verhin- sen Ausgaben zugänglich. Am linken Rand werden dern, über Jahre mitgeschleppt ohne dass diese je in einem Rahmen die definierten Haltepunkte an- behoben wurden. gezeigt, am rechten Rand sind die Navigations- 7. Die Dokumentation ist sehr umfangreich. So- möglichkeiten durch den Code zugänglich, die der wohl die Funktionen als auch die Schnittstellen Debugger bietet. Auch eine Inspektion von Varia- zum Programm selbst sind umfassend und gut ver- blenwerten ist dort integriert. Insgesamt kann die ständlich beschrieben. Integration des Debuggers als gelungen angese- 8. Die Performance entspricht jener eines typi- hen werden, da sich hier sowohl Anfänger als auch schen Editors und stellt an gängige Hardware kei- Fortgeschrittene sofort zurecht finden. Der De- ne besonderen Herausforderungen. bugger mag so als durchaus hilfreich in der oft mühsamen Suche nach Fehlern empfunden wer- den. EPIC: ein Plugin für Eclipse Unter dem Menüpunkt „Werkzeuge“ findet man sämtliche Einstellungen, über die das Verhalten Ursprünglich war Eclipse als integrierte Entwick- von Padre konfiguriert werden kann, ein Editor für lungsumgebung [8] ganz auf die Unterstützung reguläre Ausdrücke, der gut umgesetzt ist und ei- von Java-Programmierern ausgerichtet. Das Kon- nem durchaus weiterhelfen kann, sowie der Plugin- zept, das über die Jahre entwickelt und im Weite- Manager, über die aus dem CPAN installierte Plug- ren verfolgt wurde, sah jedoch vor, eine Anwen- ins aktiviert werden müssen, damit sie anschlie- dung bereitszustellen, die möglichst modular auf- ßend auch nutzbar sind. gebaut ist und damit für eine Vielzahl an Zwecken Auch der Menüpunkt „Hilfe“ verdient seine Beach- eingesetzt werden kann. Eclipse ist in Java pro- tung. Typischerweise lesen die wenigsten Pro- grammiert [9]. Seit Version 3 (2004) wird im Kern grammierer nach und fragen dafür lieber schnell das Framework Equinox eingesetzt [10]. Die An- andere. Hier versammelt sich jedoch eine Fülle an wendung selbst besteht aus einer Vielzahl an Plug- Quellen, die einem zu den Themen rund um Padre

5 Abbildung 5: Die typische Frame-Ansicht von Eclipse. Abbildung 6: Die Integration des Perl-Debuggers in Eclipse. ins, die sich am Kern einklinken und das Ergebnis http://download.eclipse.org/technology/babel/ wie eine monolithische Anwendung erscheinen update-site/R0.13.0/mars lässt. Eclipse selbst wird aufgrund dieser äußerst flexiblen Architektur gern als Basis für andere An- Ist eine Sprache wie Deutsch, oder jede weitere in- wendungen herangezogen, die entweder aus- stalliert und entspricht diese zudem der Standard- schließlich zusätzliche Plugins liefern und somit sprache des Betriebssystems, so wird diese fortan dem Aussehen und der Bedienung von Eclipse sehr auch in Eclipse automatisch gewählt. Leider ver- nahe kommen – oder aber sich der Eclipse RCP misst man anschließend den Menüpunkt, um zwi- (Rich Client Platform) bedienen und damit zwar die schen den einzelnen Sprachen umzuschalten und typischen Eclipse-Funktionalitäten nutzen, ohne die Standardsprache einstellen zu können. Überra- der Anwendung in Aussehen und Bedienung zwin- schender Weise gelingt dies (hier für Englisch) nur gend sehr ähnlich zu sein [11]. auf der Kommandozeile eines Terminals mit Dieses Grundkonzept ist natürlich prädestiniert, eclipse -nl en als IDE für eine Vielzahl an Programmiersprachen eingesetzt zu werden. Die Bedienung von Eclipse ist durchaus gewöh- Mit nungsbedürftig. Ist man jedoch einmal damit ver- sudo apt-get install eclipse traut, gelangt man rasch an sein Ziel. Egal, ob man die IDE nun gerade zum Perl-Programmieren, als installiert man zur Zeit aus den Standard-Reposito- XML-Editor oder wofür auch immer einsetzt. rien die Anwendung in Version 3.8. Die Vielzahl an Im Unterschied zu den anderen beiden Tools, die Paketen, die daraufhin installiert wird, deutet hier vorgestellt werden, ist zu beachten, dass in schon darauf hin, dass durchaus Einiges (auch an Eclipse viele Funktionen erst zugänglich sind, so- Ressourcen) gebraucht wird, um mit Eclipse zu ar- bald man die zu erstellenden oder zu bearbeiten- beiten. Zusätzlich sollte man folgende Perl-Module den Dateien in ein „Projekt“ integriert (importiert) installieren: hat. Das Anlegen einer neuen oder Öffnen einer bestehenden Perl-Datei reicht dazu vielfach nicht. sudo apt-get install libpadwalker-perl Ist diese Hürde jedoch genommen, dann bietet ein libmodule-starter-perl libperl-critic-perl Projekt-Explorer am linken Bildschirmrand einen einfachen Überblick zu den vorhandenen Dateien, Das passende Perl-Plugin ist EPIC [12] (Perl Editor ein Gliederungsrahmen, der unterhalb angezeigt and IDE for Eclipse) und wird aus Ecplise heraus in- wird, bietet raschen Zugriff auf die Strukturele- stalliert. Über die Menüeinträge Help → Install mente (Module und Funktionen) eines Program- New Software gelangt man zum Installationsdialog mes. Über den Menüpunkt „Source“ sind die Funk- und gibt dort als Quelle folgenden Link ein: tionen der beiden Perl-Module Pod::Checker und Perl::Critic zugänglich. Startet man diese, so wer- http://e-p-i-c.sf.net/updates den am linken Rand des Editors Warn-Markierun- gen („EPIC-Markers“) angezeigt, innerhalb derer Anschließend folgt man den Anweisungen und er- sich über das entsprechende Navigationssymbol hält das Perl-Plugin (momentan) in der Version navigieren lässt. Zudem werden am rechten Bild- 0.6.57. Ecplise sucht in den Standard-Einstellungen schirmrand der Anwendung geraffte Sprungmar- automatisch nach Updates und weist auf diese hin, ken eingeblendet, über die bequem direkt zu ein- sodass neuere Versionen auf Dauer einfach zu- zelnen Positionen gesprungen werden kann. Der gänglich bleiben. In äquivalenter Weise kann man Menüeintrag „Format“ versucht sich via Perltidy an in diesem Menüpunkt auch die Sprachunterstüt- einer einheitlichen Formatierung des Perl-Codes, zung für Deutsch nachrüsten. Der passende Link die nicht immer zu besseren (wohl aber zu sehr ein- dazu ist: heitlichen) Ergebnissen führt.

6 Eclipse verändert sein Aussehen (die „Views“) je nach Aufgabe. Das mag für den Anfänger einiger- Wer sich abseits der hier besprochenen Tools kundig maßen verwirrend erscheinen, da sich einzelne Fra- machen will, der findet durchaus weitere, sehr brauch- mes dabei schließen und andere öffnen. Zum Erle- bare Werkzeuge, die den Perl-Programmierer in seiner digen der jeweiligen Aufgabe (Editieren, Versionie- Arbeit unterstützen. ren, Debuggen etc.) ist dieser Ansatz jedoch durch- So existiert für den Editor Emacs ein eigener „CPerl- aus sinnvoll. Schließlich konzentrieren sich dabei Mode“. Dieser ist in den Ubuntu Paketen enthalten alle Funktionen darauf, was man gerade erledigen und wird immer dann aktiv, wenn Emacs eine Datei als möchte. Perl-Datei erkennt. Dieses Modul ist in weiten Teilen Über den Menüpunkt „Run“ können Perl-Program- frei konfigurierbar und Emacs-typisch in den Editor me gestartet und deren Ausgaben in einem Frame integriert. In gleicher Weise wie der Editor Vim kann auch Emacs aufgrund seiner offenen Architektur angesehen werden. Daneben versteckt sich hier gezielt zu einer umfangreichen Entwicklungsumge- auch die Option, Programme im Debug-Modus zu bung ausgebaut werden. starten, wobei die Möglichkeiten des Perl-Debug- gers hier sehr gut umgesetzt sind, sodass Anfänger Der Editor Kephra richtet sich, ebenfalls wie Padre, mit zurecht kommen und Fortgeschrittenen ein kom- seinen Funktionen gezielt an Perl-Programmierer. Obwohl er seit einigen Jahren mit durchaus großem fortables Arbeiten mit dem Debugger möglich ist. Enthusiasmus entwickelt wird, hat er jedoch den Erwähnenswert ist die Funktion, dass gesetzte Funktionsumfang und die Stabilität von Padre bei Breakpoints einen Neustart der IDE überleben und Weitem nicht erreicht. Die Programmierer streben als so innerhalb des Projekts mitgeführt werden kön- Ziel einen Editor an, der beim Coding hilft. Die Vielfalt, nen. Leider werden diese nicht innerhalb der Pro- die eine Entwicklungsumgebung bietet, wird hingegen jektdateien abgelegt, sodass diese innerhalb der nicht angestrebt. Versionskontrolle nicht sinnvoll gehalten oder gar Wer IntelliJ IDEA anstelle von Eclipse als IDE einsetzt mit anderen abgeglichen werden können. Ist das kann auch als Perl-Programmierer auf ein passendes Perl-Modul Padwalker installiert, zeigt der Debug- Perl-Modul zurückgreifen. Der Funktionsumfang ist mit Modus zudem sehr komfortabel die aktuellen In- dem Eclipse-Plugin vergleichbar. Die aktuelle Version halte von Variablen an. Beide Funktionen (Run und 1.112 stammt vom 2.11.2015 und steht in der Apache Debug) sind zudem über entsprechend gestaltete Lizenz 2.0 zum Download bereit. Ein Blick in den Icons unterhalb des Menüs zugänglich. Bugtracker zeigt, dass die Programmierer das Plugin Die für eine etablierte IDE wie Eclipse erwartbaren regelmäßig warten und bemüht sind, die Weiterent- wicklungen der IDE auch in das Perl-Plugin einfließen Funktionalitäten sind vollständig vorhanden. Ne- zu lassen. ben den bereits erwähnten sind das: Syntax high- lighting, automatische Vervollständigung von Funktionen und Variablen, das Führen von To-do- Listen, die Verwaltung von Code-Schnipseln (hier Fazit zu EPIC „Templates“) und eine integrierte Hilfe für Perldoc. Gut versteckt ist der Editor für reguläre Ausdrücke. 1. Der Mehrwert von EPIC ist sicher darin zu sehen, Dieser findet sich im Menü unter Window→ Show dass Programmierer, die mit den Eigenheiten von View → Other → EPIC → RegExp. Ein Highlight die- Eclipse vertraut sind, damit auch eine umfassende ses sehr einfach gehaltenen Editors ist, dass ein re- Unterstützung für Perl vorfinden. Interessant kann gulärer Ausdruck auch schrittweise ausgeführt für den einen oder die andere der Umstand sein, werden kann und dabei der jeweilige Text unter- dass nicht nur lokal installierte Programme bear- legt wird, der aufgrund des aktiven Ausdrucks ge- beitet und ausgeführt werden können, sondern rade zutrifft (matched). Da das Tool Padre sich um- auch jene, die innerhalb des CGI eines Web-Servers fassend an den Methoden des Refactorings ver- laufen oder gar auf einem entfernten Rechner be- sucht, fällt im Test auf, dass dies auch in Eclipse trieben werden (Remote Mode). prominent im Menü vertreten ist. Momentan wird 2. Eclipse bietet für alle Arbeitsschritte Plugins jedoch nur die Funktion unterstützt, dass Code aus und lässt sich darüber hervorragend in unter- bestehenden Subroutinen in neue übernommen schiedliche Szenarien der Einzel- oder Teamarbeit werden kann. Dabei wird auf das Perl-Modul integrieren. Devel::Refactor [13] zurückgegriffen, das sich noch 3. Die Anwendung ist sehr gewöhnungsbedürftig, in einem frühen Entwicklungsstadium befindet da das häufige Umschalten in Views rasch zur Ver- (momentan v0.05). Die EPIC-Entwickler geben an, wirrung sorgen kann. Anfänger müssen diesbezüg- Weiterentwicklungen dieses Moduls auch in EPIC lich mit einem gewissen Aufwand rechnen, bis sie zu berücksichtigen. sich rasch zurecht finden. 4. EPIC bietet viele Möglichkeiten, umfangreichen Code übersichtlich darzustellen und darin zu navi- gieren. Wer häufig mit fremden Perl-Programmen umgehen oder diese umarbeiten muss, wird sehr gut unterstützt.

7 t

5. Der Perl-Debugger ist hervorragend integriert r o und innerhalb einer eigenen View einfach zu bedie- p p C u nen. I S P - l E

6. Der Code wird laufend gepflegt. Die Kommuni- r e n i P kation mit den Entwicklern funktioniert via E-Mail, g n u i Mailingliste und innerhalb eines Forums ausge- l g P - u l zeichnet. e s e P - r p i d

7. Die Dokumentation ist sehr übersichtlich gestal- l m i a c tet und nicht durch kleine Details überfrachtet. Ne- V P E ben dem eigentlich Programmcode wird auch die Multi-platform + + + Dokumentation sorgfältig gepflegt. 8. Wer auf die Performance eines Editors oder gar Syntax highligthing + + + auf dem Arbeiten innerhalb eines Textterminals Syntax checking - + + besteht, wird sich im Umgang mit Eclipse umstel- Refactoring - - + len müssen. Auf einem durchschnittlichen Arbeits- platzrechner zeigten sich jedoch keine Engpässe Code completion N + + oder irgendwelche Misslichkeiten, die darauf hin- Code folding + + + deuteten, dass nicht ausreichend Ressourcen vor- Coding support + - - handen wären. Die Qualität der Ubuntu-Pakete scheint jedoch nicht die Beste zu sein, da viele In- Auto-indent + + + stallationen der Originalpakete zu unterschied- Bookmarks - + + lichsten Fehlern geführt haben. Der Einsatz des Ecplise-SDK, das unterschiedlichste Builds anbietet Code snippets + + + ist über den Link Context sensitive help - + + Patch / Diff integration + + + http://download.eclipse.org/eclipse/downloads/ drops4/R-4.5-201506032000/#EclipseSDK Versioning N + + erreichbar. Die Installation dieser Ausgabe zeigte Multilanguage user interface - + + letztlich keine Probleme. Zur Anwendung gelangte Functions and outline N + + so die Version 4.5.0, die gegenüber dem Paket aus Debugging N + + dem Ubuntu-Standard-Repository zudem flüssiger zu bedienen war. Perl::Critic + + + Perl::Tidy + + + Perldoc support + + + Project browser N + + Regex editor + + + Remote editing + + + Source navigation - + + Todo lists - + + Adjustable line breaks + + + Documentation + + +

Tabelle 1: Funktionsvergleich der beschriebenen Werkzeuge. Legende: (+) vorhanden, (-) nicht vorhanden, (N) nachrüstbar über weiterer Plugins.

Resümee

Wer sich häufig mit komplexen Perl-Programmen beschäftigen und sich dabei rasch einen Überblick zum vorliegenden Code verschaffen muss, dem kann eine integrierte Entwicklungsumgebung in der Tat sehr helfen. Ob man dabei seinen geliebten Editor behalten möchte und diesen durch die Verwendung von Plugins schrittweise zu einer IDE ausbaut oder ob

8 man eine ausgereifte IDE wie Eclipse installiert und keplersr2 ] sich dazu mittels EPIC-Plugin komfortable Perl- Unterstützung hinzufügt, mag letztlich reine Ge- [12] EPIC - Perl Editor and IDE for Eclipse schmackssache sein. Dass hier unterschiedlichste [ http://www.epic-ide.org/ ] Zugangsweisen nebeneinander vorhanden sind, zeigt sich auch im Umstand, dass für die Editor- [13] Devel::Refactor - Perl extension for refacto- funktionen von Eclipse auch ein Vim-Plugin exis- ring Perl code tiert, sodass jene, die mit dem Ausbau des Editors [ http://search.cpan.org/~ssotka/Devel- hin zu einer IDE irgendwo gestrandet sind, sich hier Refactor-0.05/Refactor.pm ] zumindest ein wenig wohler und aufgehobener fühlen können. Anwendungen wie Padre stehen zwischen diesen beiden Ansätzen, zeigen im Arbeitsalltag jedoch weder die hohe Flexibilität noch den notwendigen Reifegrad, um letztlich die unterschiedlichsten Be- Der Autor dürfnisse eines Perl-Programmierers möglichst umfassend abzudecken. Dr. Harald Jele ist Mitarbei- ter an der Universität Kla- genfurt.

Quellen

[1] Comprehensive Perl Archive Network. Over 20 years of Perl libraries at your fingertips. [ http://www.c pan .org]

[2] perl-support.vim : Perl IDE -- Write and run Perl- scripts using menus and hotkeys. Created by Fritz Mehner. [http://www.vim.org/scripts/script.php? script_id=556]

[3] Mailingliste zum Plugin perl-support.vim [[email protected]]

[4] Padre, the Perl IDE. Perl Application Develop- ment and Refactoring Environment. [http://padre.perlide.org/]

[5] COCOMO (Constructive Cost Model). [ https://de.wikipedia.org/wiki/COCOMO ]

[6] Refactoring [https://de.wikipedia.org/wiki/Refactoring]

[7] WIKI for Padre, The Perl IDE. [http://padre.perlide.org/trac/wiki/Plugins]

[8] Homepage zu Eclipse. [ https://eclipse.org/ ]

[9] Wikipedia-Eintrag zu Eclipse (IDE). [ https://de.wikipedia.org/wiki/Eclipse_(IDE) ]

[10] Das Framework Equinox von Eclipse. [ http://www.eclipse.org/equinox/ ]

[11] Eclipse for RCP and RAP Developers. [ http://www.eclipse.org/downloads/ packages/eclipse-rcp-and-rap-developers/

9