RAD Studio, SharpDevelop und Lazarus im Vergleich

IDE-Ratgeber: Alternative Entwicklungsumgebungen im Überblick
Kommentare

Artikel über Best Practices im Bereich der Werkzeugunterstützung beschäftigen sich meist mit den großen, universellen Entwicklungsumgebungen wie Visual Studio oder Eclipse. Doch was ist zum Beispiel aus bekannten Alternativen wie RAD Studio, SharpDevelop oder Lazarus geworden? Wir haben uns umgesehen.

Mithilfe der großen Entwicklungsumgebungen wie Visual Studio (VS) oder Eclipse ist nahezu jedes Programmierproblem zu lösen. Beides sind flexible und weitestgehend universelle Entwicklungsumgebungen (IDEs), die ein breites Spektrum an Programmieraufgaben abdecken. Durch eine nahezu unbegrenzte Auswahl an Erweiterungen und Plug-ins können diese Tools leicht an individuelle Anforderungen angepasst werden. Unterschiedliche Programmiersprachen, die Einbindung von Versionsverwaltungssystemen und Editoren zur Gestaltung der Benutzeroberflächen (UI-Builder) sind längst etablierte Standards und Bestandteile der Tools. Dennoch ist es gelegentlich sinnvoll, sich nach Alternativen umzusehen.

Alternative IDEs als spezielle Problemlöser

Die Gründe dafür sind offensichtlich: IDEs mit einer speziellen Ausrichtung können im Einzelfall besser geeignet sein, d. h., die angestrebte Lösung wird schneller und ggf. effizienter erreicht. Außerdem sollen IDEs den Entwicklungsvorgang bestmöglich unterstützen. Die Werkzeuge konkurrieren daher um die Gunst der Entwickler und werben mit vergleichbaren, aber im Detail unterschiedlichen Ansätzen. Muss beispielsweise eine plattformübergreifende Applikation realisiert werden, ist es sinnvoll, sich mit den unterschiedlichsten Ansätzen und den dazu verfügbaren Werkzeugen zu beschäftigten. Entwicklungskonzept und Werkzeugunterstützung bedingen natürlich einander. Im übertragenen Sinne darf das jedoch nicht dazu führen, dass alle Probleme mit dem Holzhammer gelöst werden, weil man nur dessen Einsatz beherrscht. Für manche Aufgaben ist es durchaus sinnvoll, den Entwicklungsansatz, das Konzept und damit auch das Werkzeug zu wechseln. Ein anderes Argument für die Verwendung eines alternativen Tools kann die Projektgröße sein. Gelegentlich wirken die „großen“ IDEs etwas überdimensioniert – insbesondere, wenn lediglich ein kleineres Programmierproblem gelöst werden muss. Letztendlich kann der Blick über den Tellerrand nicht schaden, um interessante Ansätze oder künftige Entwicklungen nicht zu verpassen.

Auf entwickler.de haben wir schon mehrfach über einige alternative IDEs berichtet, u. a. über RAD Studio oder Lazarus. Die Entwicklung ist seither aber nicht stehen geblieben. Es ist also sinnvoll, nach dem aktuellen Stand zu fragen und ggf. auch nach weiteren Tools Ausschau zu halten. Im Einzelnen sehen wir uns die aktuellen Versionen zu den folgenden Entwicklungsumgebungen an:

  • RAD Studio
  • Lazarus
  • CodeTyphon
  • SharpDevelop

Die Auswahl ist dabei subjektiv.

RAD Studio

Wer nicht ganz neu im Entwicklergeschäft ist, der erinnert sich mit Sicherheit noch an Delphi – eine der ersten IDEs, die mit einem visuellen und komponentenbasierten Entwicklungsansatz auf den Markt gekommen ist. Dieser komponentenbasierte Programmieransatz hat eine neue Art der Programmentwicklung geprägt: RAD (Rapid Application Development).

RAD Studio – aktuell steht Version 10.2 zur Verfügung – ist die Weiterentwicklung von Delphi. Ein wichtiger Schwerpunkt der IDE war und ist die Entwicklung von Datenbankapplikationen. Sehr einfach können damit per grafischem Editor die Dialogfelder erstellt und die Verbindung zur Datenbank hergestellt werden. Eine effiziente Programmentwicklung für Businessapplikationen ist das Hauptanwendungsgebiet. Mit dem Siegeszug des .NET Frameworks hat Delphi an Bekanntheit gegenüber VS eingebüßt. Zwar wurde versucht, die Entwicklung von .NET Anwendungen auch über Delphi zu ermöglichen, was jedoch nur mäßig erfolgreich war. Die Programmiersprache ist Delphi, eine objektorientierte Variante von Pascal. Pascal war schon immer als sehr strukturierte Sprache bekannt, daher wurde sie lange Zeit an Bildungseinrichtungen als erste Sprache gelehrt. Der Quelltext ist relativ leicht verständlich und das Einsatzgebiet universell. RAD Studio erlaubt auch alternativ die Programmierung in der Sprache C++. Die grundsätzliche Arbeit mit der IDE, der Programmieransatz und die Verwendung der Komponenten unterscheiden sich jedoch nicht. In der Praxis existieren noch viele größere Businessapplikationen, die seit Jahren mit Delphi entwickelt und gepflegt werden. Auch in der aktuellen Version von RAD Studio können die meisten Projektdateien aus älteren Versionen ohne größere Probleme geöffnet und anstandslos kompiliert werden. Das gilt zumindest dann, wenn man auf den Einsatz von Drittkomponenten weitestgehend verzichtet hat.

Eine Zielgruppe von RAD Studio sind also Kunden, die Projekte historisch mit Delphi umgesetzt haben und die bestehende Applikationen weiterhin pflegen und anpassen müssen. Eine Migration während des Lebenszyklus einer Anwendung lohnt aus Kostengründen oft nicht. Eine Notwendigkeit dazu besteht auch nicht, denn RAD Studio wird weiterentwickelt und unterstützt aktuelle Programmierkonzepte; außerdem sind die kompilierten Anwendungen unter den aktuellen Versionen von Microsoft Windows ohne Einschränkungen lauffähig. Auch ist es möglich, die neuen Funktionen der Betriebssysteme Microsoft Windows 8.1 und 10 programmiertechnisch zu unterstützen.

Die Pflege des Altbestands bietet natürlich langfristig nicht genügend Marktpotenzial. Der Hersteller Embarcadero erweitert daher seinen potenziellen Kundenkreis kontinuierlich. In den Fokus ist die plattformübergreifende Entwicklung gerückt. Die Zielplattformen sind nunmehr:

  • Microsoft Windows in allen Versionen und Ausprägungen, vom klassischen Desktop bis hin zu universellen Apps für Windows 10
  • Mac OS: Desktopanwendungen für den Apple-PC
  • iOS: Apps für das Smartphone und Tablet
  • Android: Apps für Geräte mit diesem Betriebssystem, die jedoch bestimmte Voraussetzungen erfüllen müssen

Für die plattformübergreifende Entwicklung wird mit FireMonkey eine eigene UI-Bibliothek verwendet. Wir wollen es nicht bei der Theorie belassen, sondern RAD Studio einem Praxistest unterziehen. Die Möglichkeit, auf diesem Weg eine App für Handy oder Tablet zu erstellen, reizt uns. Das Ziel: eine kleine Android-App. Einige theoretische Ausführungen sind vorab notwendig: Grundsätzlich werden Android-Apps in Java programmiert und laufen in der virtuellen Maschine Dalvik. RAD Studio umgeht diesen Weg und erzeugt mithilfe von FireMonkey native Applikationen. Dieser Kunstgriff birgt allerdings einen entscheidenden Nachteil: Um mit RAD Studio erstellte Apps auf Android-Geräten auszuführen, müssen sie besondere technische Voraussetzungen erfüllen:

  • CPU der ARM Cortex-A-Serie
  • ARMv7-Anweisungen
  • NEON-Technologie
  • GPU

Neuere Android-Geräte verfügen in der Regel über diese Voraussetzungen, bei älteren Geräten kann es schwierig werden. Werden Apps für die Verteilung im Google Play Store erstellt, muss man auf diese Einschränkung hinweisen. Nicht zu vermeiden ist, dass man durch den Einsatz von RAD Studio für die Android-Programmierung einen Teil potenzieller Kunden ausschließt. Ob es akzeptabel ist, muss man von Fall zu Fall entscheiden. Um eine App zu erstellen, sind folgende Schritte abzuarbeiten:

  1. Projekt: Man wählt den Menüpunkt Datei | Neu | Geräteübergreifende Anwendungen – Delphi. Es erscheint ein Dialogfeld zur Auswahl verschiedener Vorlagen, um eine plattformübergreifende Anwendung zu erstellen (Abb. 1). Das betrifft auch Android-Apps. Nach dem Bestätigen und der Auswahl des Arbeitsverzeichnisses für das Projekt erstellt RAD Studio den Rahmencode für die Applikation. Man gelangt danach unmittelbar zum grafischen Designer.
  2. UI: Dieses ist zu gestalten. Ein Hinweisfeld bei der Auswahl der betreffenden Komponente aus der Toolpalette zeigt bereits dessen Verfügbarkeit für die unterschiedlichen Plattformen.
  3. Start: Das Testen der App kann auf einem echten Smartphone bzw. Tablet geschehen. Dazu ist der Entwicklermodus auf dem mobilen Endgerät zu aktivieren, mit dem Entwicklungsrechner zu verbinden und der so genannte ADB-Treiber zu installieren. Das geschieht normalerweise automatisiert. Wurde der Treiber erfolgreich installiert, kann die App direkt aus der IDE auf das mobile Gerät übertragen und gestartet werden. Das Testergebnis sehen Sie in Abbildung 2.
krypczyk_ides_1

Abb. 1: RAD-Studio: Anlegen eines Projekts für eine plattformübergreifende App

krypczyk_ides_2

Abb. 2: Hello-Word-App auf einem Tablet mit Android 5

Lazarus

Auch in der IDE Lazarus wird in der Sprache Object Pascal programmiert. Lazarus erinnert an Delphi/RAD Studio. Zwei Punkte machen die IDE interessant: Sie steht kostenfrei zur Verfügung und verfolgt den plattformübergreifenden Ansatz konsequent. Während RAD Studio ausschließlich unter Microsoft Windows ausgeführt wird und der Compiler eine plattformübergreifende Lauffähigkeit der kompilierten Anwendungen ermöglicht, kann Lazarus selbst auf unterschiedlichsten Plattformen gestartet werden: auf verschiedenen Versionen von Microsoft Windows, Mac OS und verschiedene Linux-Distributionen. Aktuell und stabil ist die Version 1.6.2 Als Pascal-Compiler kommt FreePascal (FPC) zum Einsatz. FPC selbst ist auf einer großen Zahl von Hardware- und Softwareplattformen lauffähig. Delphi-Quellcode kann in Lazarus importiert werden. Das gilt nicht nur für eigene Projekte, sondern auch für Komponenten, sofern man über deren Quellcode verfügt. In Abbildung 3 ist Lazarus bei der Gestaltung des User Interface zu sehen.

Mit den neuesten Möglichkeiten des UI-Entwurfs, die beispielsweise mit Windows Presentation Foundation möglich sind, kann Lazarus zwar nicht mithalten, für Standardaufgaben kann ein Verzicht darauf jedoch auch ein Vorteil sein, denn man gewinnt an Effektivität. Der Compiler erzeugt binären Code, der direkt ohne Zwischenschicht auf der jeweiligen Zielplattform lauffähig ist. Es ist reizvoll, ein Programm unter System A zu erstellen und es in Lazarus unter System B zu laden und erfolgreich zu einer lauffähigen Anwendung zu kompilieren.

krypczyk_ides_3

Abb. 3: Die integrierte Entwicklungsumgebung Lazarus

CodeTyphon

Ein weiteres Mal bleiben wir bei der Programmiersprache Pascal – genauer gesagt, beim FreePascal-Compiler. CodeTyphon ist ebenfalls eine IDE für die plattformübergreifende Programmentwicklung, die selbst auf Lazarus basiert. Die Installation ist etwas ungewöhnlich: Man muss die Quellen von der Webseite herunterladen und sie selbst kompilieren. Aufgrund eines mitgelieferten Tools ist das zwar unkompliziert, fertige Installationspakete würden den Komfort aber beträchtlich erhöhen (Kasten: „Auch Entwickler sind Anwender“). CodeTyphon erweitert/modifiziert Lazarus um eigene Tools und integriert einige Komponenten automatisch. Wenn man also mit Lazarus programmiert, kann CodeTyphon eine Alternative sein. Die Anwendungsgebiete beider IDEs sind identisch. Einen ersten Eindruck der Entwicklungsumgebung vermittelt Abbildung 4.

krypczyk_ides_4

Abb. 4: CodeTyphon: Eine weitere IDE für FreePascal, die wiederum auf Lazarus basiert

Auch Entwickler sind Anwender!

Integrierte Entwicklungsumgebungen – so sagt es der Name bereits – umfassen eine Menge Einzeltools, die zu einer gesamten Arbeitsumgebung zusammengefasst werden. Damit eine IDE einsatzfähig ist, muss sie korrekt und umfassend installiert werden. Dazu sind die Voraussetzungen zu prüfen und bei Mängeln Systembibliotheken zu installieren. Das eine Tool benötigt die plattformübergreifende Bibliothek GTK, ein anderes Werkzeug einen Open-Source-Compiler oder eine bestimmte Version des .NET Frameworks. Dabei darf man zwar grundsätzlich unterstellen, dass Entwickler über ein bestimmtes technisches Verständnis verfügen, bei der Installation einer IDE aber ebenso Anwender sind, wie jeder andere Benutzer einer Software. Eine umfassende und gut durchdachte Installationsroutine gehört ebenso dazu wie ein Dokument zur Demonstration der ersten Schritte. Eine IDE soll helfen, schneller Programme zu entwickeln. Es ist daher kaum akzeptabel, wenn man sich durch den Installationsprozess „quälen“ muss. Komplett-Installer für alle Zielbetriebssysteme sind kein Luxus, sondern eine absolute Notwendigkeit. Ansonsten werden es viele Tools gar nicht auf die Festplatte des Entwicklers schaffen. In diesem Punkt machen es die „Großen“ meist vorbildlich vor. Man darf nicht vergessen: Das Produkt muss an den Kunden, in diesem Fall an den Entwickler, gebracht werden.

SharpDevelop

Microsoft bietet zwar mit der Community Edition eine kostenfreie Variante seiner IDE, dennoch gibt es mit SharpDevelop eine Alternative für die Entwicklung auf Basis des .NET Frameworks. Aktuell steht Version 5.1 zur Verfügung. Im Gegensatz zu den früheren Versionen werden nur noch die Programmiersprachen C# und TypeScript unterstützt. Diese Einschränkung ist laut den Entwicklern eine Folge komplexerer interner Umstellungen innerhalb des Projekts. Trotz der kostenlosen Community Edition von VS spricht für SharpDevelop u. a. der geringere Ressourcenbedarf der IDE. Während VS schon bei minimaler Installation mehrere Gigabyte Speicherbedarf auf der Festplatte benötigt, ist das Installationspaket von SharpDevelop nur ca. 15 MB groß. Ein Einsatzfeld können also mobile Rechner oder virtuelle Maschinen sein, bei denen nur eingeschränkte Ressourcen zur Verfügung stehen. Und nicht zu vergessen ist, dass SharpDevelop Open Source ist, d. h., der Quelltext der IDE steht selbst für eigene Experimente zur Verfügung; außerdem ist man unabhängig vom Hersteller. Ein Bildschirmfoto der IDE ist in Abbildung 5 zu sehen.

krypczyk_ides_6

Abb. 5: SharpDevelop ist eine alternative IDE für C# und das .NET Framework

Fazit

Alternativen zu den großen Entwicklungsumgebungen gibt es einige, und unsere Auswahl ist nicht annähernd vollständig. Insbesondere im Java-Umfeld gibt es weitere in der Praxis häufig verwendete IDEs. Der Fokus lag für diesen Artikel bewusst auf Alternativen abseits des Mainstreams. Obwohl VS, Eclipse und Co. nahezu alle Bereiche der Programmentwicklung abdecken, ist die plattformübergreifende Programmierung ein großes Betätigungsfeld für alternative Entwicklerprodukte. Das verwundert nicht, denn einerseits ist der Bedarf an dieser Software größer geworden, anderseits wurde der systemübergreifende Ansatz bisher nicht ausreichend abgedeckt.

Der Grund dafür ist offensichtlich: Während sich mit Lizenzen für Entwicklungswerkzeuge unter kommerziellen Betriebssystemen auch direkt Einnahmen erzielen lassen, ist das unter Open-Source-Systemen nur über alternative Geschäftsmodelle möglich. Der Softwaremarkt – insbesondere getrieben durch den Bedarf an Apps für mobile Endgeräte – wandelt sich. Das hat auch Auswirkungen auf die Hersteller der IDEs. Es tobt ein Kampf um den besten Ansatz/das beste Konzept, um mit der Vielfalt der Plattformen „fertig zu werden“. Einige Alternativen haben wir hier vorgestellt.

Andere Konzepte basieren beispielsweise auf HTML und CSS. Gerade für Letztere gibt es eine Vielzahl von guten Editoren, die auf allen Systemen funktionieren. Auch Microsoft öffnet sich immer mehr, z. B. kann mit dem neuen Webeditor Visual Studio Code unter Windows, Linux und Mac programmiert werden. Uns Entwickler freut die (neue) Vielfalt, Konkurrenz belebt bekanntlich das Geschäft und fördert Ideen. Als einziger Wermutstropfen bleibt die Qual der Wahl, denn produktiv wird man nur sein können, wenn man konsequent bei einer Auswahl von Werkzeugen bleibt. Aber über den Tellerrand zu schauen, ist wichtig. Und die quälende Wahloption kennen wir ja schon umfassend, wir erinnern nur an unterschiedlichste Programmiersprachen, Klassenbibliotheken usw. Bleiben Sie neugierig!

Unbenannt

Tabelle 1: Einige alternative integrierte Entwicklungsumgebungen im Überblick

Entwickler Magazin

Entwickler Magazin abonnierenDieser Artikel ist im Entwickler Magazin erschienen.

Natürlich können Sie das Entwickler Magazin über den entwickler.kiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen. In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -