Wie unterscheiden sich Pascal und Delphi?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet
Wie unterscheiden sich Pascal und Delphi?

In den frühen 90ern entstand das Konzept, Software in entwicklungsfreundlicheren Anwendungen (IDEs) zusammenzubauen, die diverse Tools (Compilersets, Debugger, GUI-Designer, u.ä.) vereinen. Eine populäre IDE war Turbo Pascal, für die nun ein Nachfolger entwickelt werden sollte (Delphi 1). Allerdings mit einem besseren Modell für die OOP. Das, was bisher in Turbo Pascal integriert wurde, sah man als zu unausgereift / umständlich an. Man baute stattdessen auf Object Pascal (einem Pascal-Dialekt, der zuvor von Apple entwickelt wurde) auf und erweiterte diesen in der Folgezeit weiter (bspw. um Generics).

Wenn man nun von Delphi spricht, dann wäre dies zum einen also die IDE (Embarcadero) Delphi und zum anderen Delphi Language (ein Object Pascal-Dialekt).

Der Unterschied zwischen Object Pascal/Delphi und Pascal liegt sprachlich betrachtet darin, das Erstere die objektorientierte Programmierung unterstützen. Pascal hingegen ist nur eine imperative Programmiersprache.

Die interessantere Fragestellung für dich wäre aber wohl eher, inwiefern sich Delphi und Lazarus unterscheiden.

Da Lazarus den FPC (Free Pascal Compiler) verwendet, welcher sowohl Pascal als auch Object Pascal / Delphi übersetzen kann, besteht durchaus eine hohe Kompatibilität. Ein Delphi-Projekt zu Lazarus zu migrieren, ist also nicht unmöglich.

Aber ja, es gibt auch Unterschiede. Ich werde nur einige benennen, die mir direkt einfallen.

1) Lazarus ist ein Open Source-Projekt, welches von freiwilligen Entwicklern betreut wird. Hinter der Entwicklung von Delphi hingegen steht ein Softwareunternehmen (Embarcadero Technologies). Die Delphi IDE gibt es zwar auch als kostenlose Version, doch die ist in ihrer Nutzung (Dauer, Funktionalität, kommerzielle Nutzung) beschränkt. Insofern eignet sich Delphi (in der professionellen Edition) eher für Softwareunternehmen, denn die können u.a. von dem technischen Support profitieren. Wenn man Features/Fixes für Lazarus benötigt, muss man sich entweder gedulden oder selbst Hand anlegen.

2) Wenn du dir die Projektdateien anschaust, wirst du sehen, dass beide IDEs unterschiedliche Dateitypen nutzen. Um Delphi-Pakete/Bibliotheken in Lazarus nutzen zu können, müssen sie erst migriert werden.

3) Bezogen auf das Produkt erhältst du ebenfalls unterschiedliche Ergebnisse. Bei der Kompilierung in Lazarus kann es bspw. zu größeren Executables kommen, da die Debuginformationen mit in das Produkt hineinfließen und der FPC mehr auf Plattformunabhängigkeit ausgelegt ist. Letzteres bedeutet dennoch keinen Support für jede Zielplattform, denn dazu müssten auch alle Lazarus Module vollständig plattformunabhängig sein. Effektiv kannst du Windows OS, macOS und Linux bedienen. Android und iOS sind zumindest komplizierter/aufwendiger.

Mit Delphi kannst du ebenso Anwendungen für die oben angesprochenen OS entwickeln. Die verfügbaren Softwaretools für diesen Entwicklungsprozess sind allerdings leichter / komfortabler nutzbar.

4) Viele Komponenten, die Delphi in seiner VCL implementiert hat, werden auch von dem Komponentenkatalog von Lazarus abgedeckt. Das beschränkt sich jedoch mehr auf die visuellen Komponenten. Zudem gibt es in Delphi seit 2011 auch noch das FireMonkey-Framework für die Entwicklung von plattformunabhängigen GUIs.

5) Delphi und Lazarus nutzen jeweils unterschiedliche Zeichenkodierungen. Delphi kodiert seine Strings via UTF-16, Lazarus via UTF-8.

6) FPC unterscheidet bei der Übersetzung zwischen verschiedenen Modi (unterschiedliche Units können in jeweils unterschiedlichen Modi verfasst sein), wobei es dann auch zu Syntaxunterschieden kommt. Beispielsweise bei Generics (im ObjFPC-Modus) oder bei der Überladung von Operatoren. Wenn du zu Delphi kompatibel bleiben möchtest, solltest du stets den Delphi-Modus nutzen.

7) Bei den IDEs wirst du auf der Programmoberfläche Unterschiede finden. Es gibt unterschiedliche Refactoring- und Analyse-Tools und in Delphi selbst findest du natürlich mehrere Komfortfunktionen (wie das Erstellen von Paketen für diverse Stores - Google Play, Apple, eine vereinfachte Paketverwaltung via GetIt, ...) oder Anbindungen anderer Embarcadero-Produkte, die Lazarus nicht bieten kann.

Und falls du dich nun fragen solltest, welche von beiden Anwendungen du nutzen solltest, würde ich dir zumindest für den Hobbybereich Lazarus empfehlen. Delphi ist, wie nun schon mehrmals angedeutet mehr auf die professionelle Softwareentwicklung in kommerziellen Kontext ausgerichtet.

NiemandxD776 
Fragesteller
 01.05.2022, 09:50

Ich bedanke mich sehr für diese sehr ausführliche und sehr erklärende Antwort.

0