Kamele im Spotlight:
Eclipse mal anders
Autor
Philipp Traeder (philipp_t@users.sourceforge.net),
Bio Philipp Traeder
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.
Abstract
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 - Integration von Perl in Eclipse
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
Eclipse ist eine IDE
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.
Typische Bestandteile
einer IDE
Die meisten IDEs bieten den gleichen Grundbestand an
Funktionalitäten - typisch sind z.B.:
- Projektverwaltung (Gruppierung von Source-Dateien zu einem
Projekt) und Dateinavigator
- Syntax-Hervorhebung und -überprüfung
- Code-Vervollständigung und Code-Vorlagen
- (kontextsensitive) Unterstützung durch ein Hilfesystem
- Anbindung an verschiedene Source-Code-Repositories (CVS, ...)
- Datenbank-Zugriffsoberfläche/SQL-Client
- (proprietäre) API zur Erweiterung der Funktionalitäten
Eclipse abstrahiert
den IDE-Gedanken
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."
Hintergrund von
Eclipse
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.
Architektur: Eclipse
ist eine Meta-IDE
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.
Eclipse in Perl-Perspektive
Eclipse in Java-Perspektive
EPIC
Hintergrund
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.
Übersicht
Um den Rahmen dieses Artikels nicht zu sprengen, werde ich mich auf die
Vorstellung der folgenden Kernfunktionalitäten beschränken:
- Der Perl-Editor ist das
Herzstück von EPIC - parallel zum Java-Editor stellt er einen
eigenständigen Editor für Perl-Source-Code dar.
- Durch die Integration von
PerlDoc ist es möglich, direkt aus dem Perl-Editor heraus
Dokumentation zu Funktionen und Modulen abzurufen.
- Der Debugger erlaubt es,
Perl-Code Schritt für Schritt auszuführen und die Werte von
Variablen während der Ausführung zu prüfen sowie zu
ändern.
- Die Regular Expression View
bietet die Möglichkeit, Regular Expressions komfortabel zu testen
und zu debuggen.
Für eine komplette übersicht über die
Funktionalitäten von EPIC sei auf die EPIC-Webseite und die
mitgelieferte Dokumentation verwiesen.
Perl-Editor
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-Integration
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:
Debugger
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.
Regular Expression
View
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:
Fazit
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.
Links