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