Verfasst von: Dietmar | April 10, 2008

Wie Delphi, nur irgendwie besser…

Bereits während eines einjährigen Programmierkurses in Delphi habe ich angefangen, nach einer freien Alternative zu Borlands Delphi zu suchen. Es machte mir zwar Spaß in Delphi zu programmieren, aber die Umgebung hatte bereits für einen Programmieranfänger deutliche Nachteile:
- es gab zwar mal eine Version (Kylix) für Linux, die ich aber de facto für unbrauchbar halte
- es gibt mittlerweile zwar kostenlose Versionen zum Download, die aber Einschränkungen haben
- da Schulen auch nicht immer die aktuellste Software haben, ist es ziemlich schwer, zu Hause
überhaupt genau die Umgebung zu haben wie im Unterricht, da Borland keine alten Versionen
anbietet. Gespeicherte Projekte sind auf keinen Fall abwärts- und nur bedingt aufwärts-kompatibel
wenn man diese in eine andere Version der Programmierumgebung laden will
- ich finde die Benutzeroberfläche in den neueren Versionen einfach nur abstoßend
(alles in ein Fenster gequetscht)

Glücklicherweise bin ich auf das Lazarus Projekt gestoßen. Es handelt sich hierbei um einen OpenSource Clone von Delphi, mit ein paar netten Vorteilen:
- es ist komplett kostenlos, da OpenSource
- es läuft auch unter Linux, im Gegensatz zu Delphi/Kylix gibt es keine Unterschiede
in der Syntax (in Kylix hießen beispielsweise die Farben anders als in Delphi…)
- es gibt sogar Crosscompiler, zum Beispiel für Windows mobile, so dass ich damit
auch Programme für PDAs und Mobiltelephone schreiben kann

Die Installation unter Windows ist kein Problem, auf einer Knoppix-Sonder-CD der c’t habe ich auch schon eine Lazarus-Installation gefunden. Auch unter Ubuntu 7.10 hat es seinen Platz in der Software-Auswahl, es ist aber auch für andere Betriebssysteme verfügbar. Außerdem verfolgt es einen Ansatz, der mir sehr sympathisch ist: Java verfolgt den Ansatz “Write once, run everywhere” (einmal schreiben, überall ausführen können), der allerdings auf dem entsprechenden Zielsystem eine Java Virtual Machine in einer entsprechenden Versionsnummer voraussetzt. Lazarus hingegen verfolgt den Ansatz “Write once, compile everywhere” (einmal schreiben, überall kompilieren). Der Nachteil ist, dass für diesen Ansatz für jede Platform neu kompiliert werden muss, dafür spart man aber wieder Ressourcen, weil man nichts weiter benötigt (also keine JVM oder so). Die kompilierten Dateien sind leider sehr groß, dafür ist aber alles statisch mit rein kompiliert, was benötigt wird. Der große Vorteil: Otto Normal-User braucht sich keine Gedanken darüber machen, wenn bei ihm die Bibliothek XY nicht in der aktuellen Version verfügbar ist. Mit Bordmitteln lassen sich allerdings die Dateigrößen der fertigen Programme drastisch reduzieren (die Befehle hier sind unter Windows):

Zielsystem Windows 2000/XP:
strip –strip-all project1.exe
upx project1.exe

Zielsystem Windows mobile:
arm-wince-strip –strip-all project1.exe

Delphi-Projekte lassen sich nicht einfach so übernehmen, aber wer schon einmal ein Delphi-Projekt auf eine andere Delphi-Version migrieren musste, der ist das eh schon gewohnt und hat hier wenigstens hinterher seine Ruhe ;-)

Wer sich den Cross-Compiler installieren möchte, der findet diesen hier. Es gibt mittlerweise sogar Crosscompiler für Gameboy - Wahnsinn. Man nimmt am Besten “everything in one big package” dafür, einen großen Klumpen mit Installer und allem drum und dran. Im Projekt selber muss man dann unter Projekt -> Compilereinstellungen -> Pfade den Wert für LCL-Schnittstelle auf Wince ändern, sowie im selben Menü unter “Quelltext” den Wert für “Ziel-Betriebssystem” auf WinCE stellen. Ansonsten muss man noch beachten, dass man das Programm nicht größer macht, als den Bildschirm auf dem PDA. Kompiliert zwar, aber wenn wichtige Dinge weit außerhalb des Bildschirmbereiches liegen… Außerdem müssen unter WinCE / Windows mobile die Pfadangaben alle absolut sein. Also wenn bei Programmstart automatisch die Datei bla.txt im Verzeichnis gdb geöffnet werden soll, dann sieht das zum Beispiel so aus:
assignFile(datei,’\gdb\bla.txt’);

Nette une kompetente Hilfe auf Deutsch gibt es im deutschen Lazarusforum. Ansonsten lässt sich noch sagen, dass Leute, die mit Delphi ein wenig umgehen können, sich sofort in Lazarus zurechtfinden werden. Die Benutzeroberfläche entspricht den älteren Delphi-Versionen, mit vielen einzelnen Fenstern. Dies finde ich persönlich viel hübscher als den ganzen .net-Quark, den Borland da angefangen hat…

Einen Kommentar hinterlassen

Ihre Antwort:

Kategorien