Philipp Traeder (philipp_t@users.sourceforge.net)
Philipp Traeder arbeitet im Applikationsbetrieb bei ImmobilienScout24 und programmiert dort in Perl und Java. Seit Mitte 2004 unterstützt er die Entwickler des Projekts EPIC (Eclipse Perl Integration) bei der Integration von Perl in seine Lieblings-Entwicklungsumgebung.
Was viele Java-Entwickler schon lange genießen, ist endlich auch für Perl verfügbar: Das Projekt EPIC (Eclipse Perl Integration) bietet einen komfortablen Perl-Editor mit integriertem Debugger, Syntax Highlighting, Code Templates und vielem mehr.
Durch die Integration in die modulare Entwicklungsumgebung Eclipse hat der Perl-Entwickler somit sämtliche Werkzeuge in einer Applikation zur Hand - sei es PerlDoc, ein Regular Expression Tester, ein CVS-Client oder ein Datenbank-Frontend.
Dieser Artikel stellt einige Kernfunktionen vor und demonstriert, wie durch das Zusammenspiel von Eclipse und EPIC professionelle Perl-Entwicklung effizienter werden und noch mehr Spaß machen kann.
EPIC (Eclipse Perl Integration) ist ein OpenSource-Projekt, dessen Ziel die Integration von Perl in die beliebte IDE Eclipse ist. Somit ist EPIC keine eigenständige Applikation, sondern vielmehr eine Sammlung von Eclipse-Plugins, die die Entwicklung von Perl-Code in Eclipse ermöglichen.
Der Aufbau dieses Artikels versucht dem gerecht zu werden, indem zuerst kurz Eclipse vorgestellt, anschließend ein Überblick über EPIC gegeben und schließlich ausgewählte Funktionalitäten demonstriert werden.
Eclipse ist ein Integrated Development Environment (IDE), also eine Applikation, die verschiedene Werkzeuge zur Entwicklung von Software in eine Umgebung integriert. Ziel von Eclipse - wie von allen IDEs - ist es, eine Umgebung zu bieten, in der der Entwickler einen möglichst großen Teil seiner täglich anfallenden Aufgaben erledigen kann.
Aus vielen Sprachen sind IDEs nicht mehr wegzudenken - schon einfache Projekte werden in manchen Sprachen schnell so komplex, daß ein manuelles Abarbeiten aller Einzelschritte kaum noch Zeit für die eigentliche Entwicklung ließe. Spätestens wenn man mit mehreren Entwicklern am gleichen Projekt arbeitet und das Projekt eine gewisse Größe erreicht, ist der Einsatz einer IDE sehr empfehlenswert.
Für Scriptsprachen hat sich der Einsatz von IDEs bislang nicht durchgesetzt.
Die meisten IDEs bieten den gleichen Grundbestand an Funktionalitäten - typisch sind z.B.:
Ein relativ großer Teil der Funktionalitäten einer IDE ist also vom Ansatz her immer gleich, da sich lediglich die sprachspezifischen Anteile grundlegend unterscheiden. Die Grundstruktur einer IDE mit ihren Basis-Werkzeugen muß pro IDE immer wieder neu entwickelt werden.
Eclipse bietet ein Framework, in dem sprachunabhängig Werkzeuge implementiert werden können, die in verschiedenen Sprach-Spezialisierungen verwendet werden können. Besonderer Fokus wird dabei auf die Erweiterbarkeit sämtlicher Funktionalitäten gelegt - jedes Eclipse-Werkzeug ist vom Design her automatisch erweiterbar.
In diesem Sinne abstrahiert Eclipse den IDE-Gedanken auf eine sprachübergreifende Ebene - die Eclipse-Entwickler sehen Eclipse nicht als IDE, sondern als "offene Plattform zur Integration von Werkzeugen", oder "Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular."
Die Idee, eine sprachunabhängige IDE zu entwickeln, entwickelte sich bei IBM als Zusammenschluß mehrerer Abteilungen, die mit der Entwicklung verschiedener IDEs beschäftigt waren. Im Jahr 2001 stellte IBM den Eclipse-Source-Code unter eine OpenSource-Lizenz, und mehrere führende IT-Unternehmen (u.a. Borland, Rational) beteiligten sich an der Entwicklung. 2004 wurde die Leitung des Projekts an eine eigenständige Non-Profit-Organisation übergeben, die von über 50 Unternehmen unterstützt wird und die Entwicklungsarbeiten koordiniert.
Eclipse sowie die meisten Eclipse-Plugins sind unter der Common Public License (CPL) veröffentlicht, die von der Free Software Foundation als "freie Software" anerkannt wurde. Die CPL ist eine Hybrid-Lizenz, die die Entwicklung und Weitergabe sowohl als OpenSource- als auch als kommerzielle Software erlaubt.
Als Java-IDE ist Eclipse sehr verbreitet (und mit einer Verbreitung von mehr als 50% de facto Standard), bietet aber auch Unterstützung für eine Reihe anderer Sprachen, u.a C/C++, Python, PHP, Ruby, C#, und - durch EPIC - Perl.
Eclipse ist in Java geschrieben und daher weitgehend betriebssystemunabhängig - die Benutzeroberfläche ist entwickelt in SWT. einem parallel mit Eclipse entstandenen Open-Source-Projekt, das die problembehafteten GUI-Bibliotheken AWT und Swing Stück für Stück ersetzt.
Architektonisch gesehen besteht Eclipse aus einen relativ kleinen sprachunabhängigen Kern, um den in unterschiedlichen Abstraktionsschichten Plugins gelegt werden. Eclipse selbst ist sprachneutral - auch die Java-Entwicklungsumgebung ist lediglich ein Plugin -, auch wenn die Mehrheit der Plugins bislang noch Java-zentriert ist.
Das zentrale Element von Eclipse ist der sog. "Workspace", der verschiedene "Projekte" enthält. Die Benutzeroberfläche ist aufgeteilt in sog. "Views" (jeweils ein "Block" im Eclipse-Hauptfenster), die sich über "Perspectives" gruppieren lassen. So läßt sich durch Wechseln der Perspektive die gesamte Benutzeroberfläche auf einen Schlag umkonfigurieren.
EPIC ist wie Eclipse ein OpenSource-Projekt und ebenfalls unter der Common Public License veröffentlicht. Es entstand 03/2003 und wird geleitet von Jochen Lüll und Stephan Rühl - zur Zeit sind 5 Entwickler aktiv beteiligt.
EPIC wird entwickelt in Eclipse, der Source Code kann aus dem CVS-Repository bei Sourceforge heruntergeladen werden.
Die Releases sind aufgeteilt in "stable"-Releases (aktuell ist die Version 0.3.0), und "testing"-Releases (aktuell 0.3.8), die neue Features und Bugs enthalten.
Die Installation von EPIC erfolgt komfortabel über den Eclipse Update Manager, der über die Update-URL (zu finden auf der EPIC-Seite) EPIC herunterlädt und installiert.
Um den Rahmen dieses Artikels nicht zu sprengen, werde ich mich auf die Vorstellung der folgenden Kernfunktionalitäten beschränken:
Für eine komplette übersicht über die Funktionalitäten von EPIC sei auf die EPIC-Webseite und die mitgelieferte Dokumentation verwiesen.
Der Perl-Editor mit seinen Kern-Komponenten auf einen Blick:
Die Perl-Syntax wird nicht nur farblich hervorgehoben, sondern auch ständig im Hintergrund überprüft - Syntax-Fehler werden im Source-Code farblich markiert und im "Problems"-View aufgelistet.
Desweiteren bietet der Perl-Editor Code-Vervollständigung - Variablen-Namen und Methoden-Namen aus Modulen werden automatisch ergänzt:
Durch Code Templates können wiederkehrende Code-Stücke als Vorlagen abgelegt und komfortabel wiederverwendet werden:
Methoden und POD-Kommentare können im Editor "weggeklappt werden", so daß lediglich der Funktionsname sichtbar bleibt:
Mit Hilfe des externen Tools PerlTidy kann Source-Code automatisch formatiert werden.
PerlDoc ist in den Perl-Editor integriert - über das Kontextmenü kann zu Funktionen und Modulen PerlDoc aufgerufen werden, die innerhalb der IDE dargestellt wird:
Im Editor selbst wird während der Eingabe eine Kurzhilfe zu Funktionen angezeigt:
Durch das Debugger-Plugin kann ein Perl-Programm innerhalb der IDE Schritt für Schritt ausgeführt werden. Innerhalb des Source Codes können Breakpoints gesetzt werden, an denen die Ausführung des Programms unterbrochen wird.
EPIC in Debug-Perspektive mit gesetztem Breakpoint während der Ausführung eines Programms:
An einem Breakpoint kann der aktuelle Status von Variablen ausgelesen und beliebiger Perl-Code im Kontext des ausgeführten Programms ausgeführt werden - dabei kann sogar der aktuelle Zustand von Variablen während der Laufzeit verändert werden.
Der CGI-Debugger unterstützt das Debuggen von Perl-Skripten in einer CGI-Umgebung.
Die Regular Expression View ist eine Benutzeroberfläche zum isolierten Testen von Regular Expressions. In die RegExp-View können eine Regular Expression und der zu matchende Text eingegeben werden, und die RegExp-View zeigt, ob die Regular Expression matched, und welche Teile des Textes durch eventuelle Gruppierungen selektiert werden können:
Durch Setzen eines RegExp-Breakpoints können Regular Expressions zur Laufzeit ausgewertet werden:
EPIC erweitert die modulare OpenSource-IDE Eclipse um Perl-Entwicklungs-Werkzeuge.
Perl-Entwickler können somit einen Großteil ihrer täglich anfallenden Aufgaben in einer Umgebung erledigen und genießen den Komfort von Hilfsmitteln, die bislang Entwicklern von Compiler-Sprachen vorbehalten war.