![]() |
Wie weiter mit Delphi als Sprache
Delphi selbst wurde von Borland als quasi-Sprachbezeichnung für einen eigenen Pascaldialekt eingeführt.
Der Dialekt wurde nie standardisiert, wo zu auch. Mit Delphi selbst hat dieser Standard über Jahre stagniert und wurde nur sehr zögerlich und teilweise halbherzig weiterentwickelt. Mit den Generics z.B. hat sich die ganze Listensortierung deutlich kompliziert. Im Moment sieht es so aus das es unter der Haube von Embacadero zwei Sprachstandards für die Sprache Delphi gibt, die nicht voll kompatibel sind. Die Situation ist dadurch entstanden, das Emb. Oxygen von Remobjects als Prism in das Label Delphi übernommen hat. Oxygen hat einen wesentlich moderneren Sprachdialekt. Inzwischen kommt wieder Bewegung in die Delphientwicklung und es zeichnet sich ab, das es für das Produkt Delphi wieder einige Alleinstellungsmerkmale geben kann. Remobjects hat einen Sprachcompiler für die JVM angekündigt/vorgestellt und ein Compiler für Android geistert auch schon durch den Raum. Unklar ist, ob diese neuen Compiler von Remobjects direkt oder unter dem Label Delphi von Embacadero mit vertrieben werden. Von Embacadero selbst steht der Win64 Compiler vor der Tür und eine Lösung für Mac und Linux ist wohl auch zeitnahe in der Pipline. Damit hätte man mit Delphi als Sprache Möglichkeiten, welche kaum ein anderes Entwicklungssystem bietet. Die Entwicklung für 3 gemanagte Framworks und 3 Betriebssysteme mit einer Sprache. Hier wäre es nach meiner Meinung dringend notwendig den Sprachstandard dieser Entwicklungslinien zu standardisieren. Zumindest auf Quelltextebene sollten alle Dialekte voll kompatibel sein, sodaß man den gleichen Quelltext/Klassendefinition (so VCL frei) in allen Compiler-Varianten einbinden kann. Wenn man sich jetzt entscheidet ein größeres Projekt wieder mit Delphi zu beginnen, dann könnte man die Workerklassen jenseits der VCL mit dem moderneren Sprachstandard unter Prism entwickeln, in der Hoffnung diese irgendwann unter Win32 oder Win64 mit einbinden zu können. Interessant wäre, ob es Überlegungen in dieser Richtung gibt, oder liege ich mit dieser Erwartung falsch? Gruß Peter |
AW: Wie weiter mit Delphi als Sprache
Hallo,
wäre sicherlich interessant, nur Win32/64 bedeutet halt VCL (TObject IST VCL) und Delphi Prism bedeutet .NET und Cooper (der Delphi-Java- Verschnitt) bedeutet halt Java (also das Java-Framework). Du hast hier unterschiedliche Klassenmodelle die sich so einfach nicht zusammen bringen lassen - Borland hat es mit VCL for .net versucht und ist dabei grandios gescheitert! Ich kann mir ehrlich gesagt nicht vorstellen, dass hier in der Zukunft nochmal ein Versuch unternommen wird. Grüße |
AW: Wie weiter mit Delphi als Sprache
Zitat:
VCL fängt eher erst bei TComponent an, wenn man dieses unbedingt auf eine Klasse festlegen will ... wobei, VCL (visual) ist ja erst TWinControl. :stupid: |
AW: Wie weiter mit Delphi als Sprache
Zitat:
Die Ableitung von TObject gebe ich ja explizit nicht an.
Delphi-Quellcode:
type
TProduktionsoptimierung = class private Variablenliste public method ... published property end; // Hier folgen die 5000 Zeilen Code |
AW: Wie weiter mit Delphi als Sprache
Vereinheitlichung müsste m.E. dann so getrieben werden das unser "altes, normales" Delphi/Pascal sich Richtung Delphi.Prism entwickelt. Es würde aber auch bedeuten das noch viel mehr alte Kompatiblitäten abgeschnitten werden und die Compilierung von alten Code nochmal nicht funktioniert. Der Aufschrei war ja bei Unicode schon groß (Wieso gibt nicht einen String = AnsiString Schalter), wird bei Win64 groß sein (Wieso ist Int immer noch 4 Byte) und wird groß sein wenn man noch einige ander Zöpfe abschneidet (File of Type stirbt auch uaf Nicht-Managed) oder die Sprache Case-Sensitive machen würde (Compilerwarnungen wegen C++ existieren ja schon lange).
Delphi.Prism anpassen ist schlecht da hiermit die 100% .NET oder bald Java-Kompatiblität gefährtet würde. |
AW: Wie weiter mit Delphi als Sprache
Hi,
Zitat:
![]() Zitat:
|
AW: Wie weiter mit Delphi als Sprache
Zitat:
Aus dem Grund würde das oben auch nicht sinnvoll funktionieren - außer du fängst an die 5000 Zeilen Code per Compilerdirektiven ein und auszuschalten um die Klasse an die entsprechende Bibliothek anzugliedern.... Grüße |
AW: Wie weiter mit Delphi als Sprache
Mit reiner Vererbung wird eine Cross-Platform/Cross-Framework Unterstützung nicht gehen. Imho wäre hier Codegenerierung notwendig
TObject gehört m.E. zur Sprache/RTL |
AW: Wie weiter mit Delphi als Sprache
Wieso besteht hier der Bedarf zu vereinheitlichen? Delphi hat mit Prism und Cooper nichts zu tun. Es sind eigene Ausprägungen. Ich möchte auch nicht, dass die bewährte Sprache Delphi mit C# oder Java-Konstrukten verseucht wird.
Diesen String-Schalter gibt es deswegen nicht, weil Ansi heutzutage "alt" ist. Die Welt ist Unicode. Unicode deckt alles ab und das ohne irgendwelche Code-Tabellen und sonstigem Konvertierungskäse. |
AW: Wie weiter mit Delphi als Sprache
VCL = Frontend
wenn VCL = TObject, dann dürfteman im Backend keine Klassen verwenden, da man ja Frontend und Backend schön trennen soll. @Luckie: Du darfst bei deinem NonVCL auch keine Klassen mehr im Programm benutzen ... nichtmal mehr eine TStringList oder ein TStream-Nachfahre, da es dann ja kein NonVCL mehr währe. :stupid: IMHO ist VCL (CLX, WinForms usw.) eine Sammlung von Klassen, welche für das schnelle Zusammenklicken im Formeditor verwendet wird und diese Klassen sind typischer Weise von TComponent/TWinControl abgeleitet (OK, implizit zwar auch con TObject, aber das zählt nicht :angle2: ). |
AW: Wie weiter mit Delphi als Sprache
Ich würde sagen, dass TObject neben den anderen Typen, die im Compiler eingebaut sind oder in der System.pas stehen nicht VCL ist.
Feststellen was zur VCL gehört, kann man z.b. indem man mal in dern Ordner ...\CodeGear\RAD Studio\6.0\source\Win32\vcl reinschaut. alles was zur VCL gehört ist da drin. fertig. TObject gehört folglich zur RTL. |
AW: Wie weiter mit Delphi als Sprache
Es gibt von Delphi zu Oxygene ja den Oxidizer, der die notwendigen umstellungen vornimmt (kleine Hangemachte Änderungen natürlich vorbehalten ;)). Es wird sicher auch etwas in der Art für Cooper geben denke ich. Allein um die Portierung attraktiver zu machen...
mfg Florian |
AW: Wie weiter mit Delphi als Sprache
Das was ich meine hat eigentlich mit der VCL noch gar nichts zu tun. Es geht um die moderneren Sprachkonstructe in der Prism-Linie.
Delphi als Pascaldialekt standardisiert. Mit den Tools Oxidizer und ShineOn kann ich Delphi Quelltext mehr oder weniger zu Prism Quelltext konvertieren/verwursteln. Die Unterschiede liegen auf Sytaxebene. ![]() Beispiel : - Zusätzlich zu procedure und function noch method, erweiterte Definitionsmöglichkeiten für propertys, Case mit Stringvartiable, Delegates. Wobei hier natürlich plattformspezifische Besonderheiten auf Win32/Win64 keinen Sinn machen. Letztendlich stände dann unter Delphi ein sprachkompatibler Subset bereit. Das man die GUI auf jeder Plattform mehr oder weniger neu machen muss, zumindest zur Zeit, ist eigentlich klar. Der Kauf von KSDev durch Embacadero läßt hier aber auch auf neue Lösungen hoffen, die hoffentlich Systemübergreifend sind. Peter |
AW: Wie weiter mit Delphi als Sprache
Dann stell dir jetzt mal vor, was passiert wenn von heute auf morgen Delphi (Win32) nur noch method kennt und kein function /procedure mehr.
Alle größeren Projekte wie JVCL/JCL werden sich erst mal bedanken und uns dann viel Glück wünschen. Was sagen die ganzen Firmen, deren Softwarepakete nicht mehr mit einer neueren Version kompilierbar sind? Sicher wäre es schön, wenn es eine gemeinsame Syntax gäbe, aber das hat sich in all den Jahren nie herauskristallisiert (außer damals, als es noch Delphi.NET gab, das wenn ich mich recht entsinne, n totaler reinfall wurde?? ;)) Delphi für Windows, Linux, Mac soll gemeinsame Syntax haben. Prism soll seine behalten, da sie optimal auf .NET zugeschnitten ist. Cooper hat auch die Feinheiten von Java denke ich mal was ich so gelesen / gehört habe. Passt doch alles so wie es ist. Sollte Android im Tablet / Desktop Bereich einmal so stark werden dass es sich lohnt, ganze Anwendungen wie zum Beispiel Office darauf laufen zu lassen, ist es vielleicht an der Zeit Android in die Kategorie Windows / Linux / Mac aufzunehmen und die gleiche Syntax zur Verfügung zu stellen. mfg Florian |
AW: Wie weiter mit Delphi als Sprache
Ich denke ein One Fits all muss zwangsläufig auf die Performance durchschlagen, letztlich landet man bei einem "interpretierten" Kompromiss. Ich würde eine strikte Trennung zwischen VCL und Prism u.ä. präferieren.
|
AW: Wie weiter mit Delphi als Sprache
Nicht wenn statt Vererbung/bedingter Code ein Codegenerator verwendet werden würde
|
AW: Wie weiter mit Delphi als Sprache
Zitat:
Im Prinzip könnten solche Konstrukte parallel bestehen. Ich stehe im Moment halt vor der Entscheidung ein großes Projekt mit Delphi oder Java zu beginnen. Mit dem was in Delphi zu erwarten ist, könnte ich den gleichen Plattformumfang abdecken, wie mit Java. Mit Blick auf "Altlasten" und Personal wäre das interessant. Nicht aber wenn ich den gleichen, eigentlich Plattform unabhängigen Quelltext der "Workerklassen" parallel in zwei oder drei Pascaldialekten pflegen muss. Peter |
AW: Wie weiter mit Delphi als Sprache
Cooper und Oxygene sollen ja von der Syntax her gleich sein. bei Cooper ist bspw. LINQ nicht dabei (würd ja auch keinen großen Sinn machen), dafür sind kleine dinge dabei. Die Änderungen sollten sich also in grenzen halten.
Was mit dem original-Delphi geschieht wird man erst noch sehen was geschieht. vielleicht kann da ja jemand mit guten kontakten zu Emba mal ein Statement abgeben was die Syntax betrifft. mfg Florian |
AW: Wie weiter mit Delphi als Sprache
Ich persönlich denke, dass man tatsächlich darauf verzichten sollte diese diversen Altlasten ständig mitzuschleppen. Delphi hat einen komplett anderen Einsatzzweck wie Prism. man sollte das eigentlich strikt trennen.
Delphi ist und bleibt eine IDE für Win32. Und Prism ist Prism:twisted: wenn es sich durchsetzt Anwendungen auf Prism anstatt Delphi zu entwickeln, dann stirbt Delphi halt. Genauso umgekehrt. Warum sollte man ständig auf Vorteile von Neuem verzichten nur weil man kompatibel zu dem Alten zu sein will (und am Ende erst nicht ist). siehe: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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