Thema: Delphi Firemonkey-Desaster

Einzelnen Beitrag anzeigen

Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Firemonkey-Desaster

  Alt 15. Mai 2012, 11:37
Wie fast jeder bereits bemerkt hat, ist das FMX-Interface nicht kompatibel zum VCL-Interface. D.h. VCL-Programme können nicht in FMX verwendet werden. Begründet wird dies von EMBA-Seite damit, dass das VCL zu stark an die Win-API gebunden ist und der ganze Code nicht portierbar ist.

Blöde Frage: Warum schafft es Lazarus, ein einheitliches Interface anzubieten? Programme sind fast ohne Änderungen auf allen Plattformen lauffähig. Stattdessen werden bei EMBA wieder 2 verschieden Frameworks entwickelt und gepflegt, die nichts miteinander gemein haben.
Schluss mit der Schönmalerei von Lazarus. Dann baut das endlich so, das der Code wirklich völlig ohne eine einzige Änderung sowohl von DElphi als auch von Lazarus ohne auch nur eine Einzige Inkompatibilität übersetzt wird. Ich musste nämlich bei derartigen Portierungsversuchen komplett andere ERfahrungen machen. Hab mich dazu auch schon im Thread "Einfache Freepascal IDE" und wohl auch bei "Erfahrungen mit Lazarus" zur Genüge geäußert. Hier hilft wohl am ehesten die Veröffentlichung der Kompletten Compilergrammatik, fertig für Compilergeneratoren als Eingabedatei, wie sich das für Open Source auch ziemen würde. Dann könnten andere mit einem per lex und yacc erstellten Parser einen Workaroud bauen.
Ein Compiler besteht nicht nur aus der Syntax, sondern auch aus der Semantik. Und die kannst du mit einer Grammatik nicht abbilden.

Ganz davon abgesehen sind Free Pascal und Delphi nicht eins zu eins kompatibel und werden es wohl auch nie sein (Stichwort: "moving target"). Zudem werden manche Details von Free Pascal anders implementiert als von Delphi (sogenannte Implementierungsdetails, auf welche Programmier eigentlich nicht aufbauen sollten, es manchmal aber doch tun...). So werden Interfaces in Delphi zu anderem Zeitpunkt freigegeben als in FPC. Oder "helper types" sind in FPC als eigener first class type implementiert, während sie in Delphi intern als Klassen, die von TClassHelperBase ableiten, implementiert sind.

Ich persönlich sage nicht, dass es vollkommen trivial ist Code unter Delphi und FPC parallel zu verwenden. Insider2004 wollte allerdings wohl darauf hinaus, dass man reinen FPC/Lazarus-Code relativ leicht auf unterschiedlichen Plattformen zum Laufen bringen kann.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat