AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey-Desaster

Ein Thema von Insider2004 · begonnen am 14. Mai 2012 · letzter Beitrag vom 16. Mai 2012
Antwort Antwort
Benutzerbild von JamesTKirk
JamesTKirk

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

AW: Firemonkey-Desaster

  Alt 15. Mai 2012, 10: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
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.403 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Firemonkey-Desaster

  Alt 15. Mai 2012, 10:42
Hi,

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.
FPC/Lazarus sind aber genau zu dem Zweck geschaffen worden, Delphi und die VCL sind dagegen für die Windows API geschaffen worden. Jetzt zu meckern, dass die VCL nicht plattformunabhängig ist, finde ich unangebracht. Mit CLX und VCL.NET wurden schon Versuche unternommen die VCL auch für andere Plattformen bereit zu stellen und jedes mal ist man gescheitert. Eigentlich sollten wir (trotz des damit verbundenen Mehraufwands) froh sein, dass man bei Emba endlich aus alten Fehlern lernt...

Ob Firemonkey der richtige Weg ist, wird sich in einigen Jahren zeigen....
  Mit Zitat antworten Zitat
schöni

Registriert seit: 23. Jan 2005
Ort: Dresden
445 Beiträge
 
Delphi 7 Personal
 
#3

AW: Firemonkey-Desaster

  Alt 15. Mai 2012, 17:36
Ein Compiler besteht nicht nur aus der Syntax, sondern auch aus der Semantik. Und die kannst du mit einer Grammatik nicht abbilden.
Jeder Compiler muss zunächst durch eine Grammatik definiert werden. Die Semantik sollte sich dann wohl in der Grammatikbeschreibung wiederfinden.

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.
Dann gehören diese Inkompatibilitäten aber auch jederzeit zugegeben.

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
Mit Portierung auch verschiedene PLattformen habe ich keine Erfahrung. Aber ich erinnere mich noch gut an die Aussage eines Lazarus-Jüngers: "Mit dem neuen Lazarus 0.9.29 ist der Code von Delphi nach Lazarus ohne Quellcodeänderung portierbar." . Und genau in diesem Kontext fasse ich die obige Aussage auf. Und hiermit habe ich komplett gegensätzliche Erfahrungen gemacht.

Ehrlichkeit macht hier die Musik. Kompromisslose Ehrlichkeit.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.

Geändert von schöni (15. Mai 2012 um 18:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Firemonkey-Desaster

  Alt 16. Mai 2012, 20:15
Man sollte auch die Geschichte bzw. das ursprüngliche Ziel von damals Borland nicht außer Acht lassen. Damals war es das Ziel von Borland schnell und unkompliziert GUI Anwendungen unter Windows zu entwickeln. Und daraufhin ist auch die VCL optimiert. Linux und Mac war damals noch kein Thema.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz