![]() |
Quo vadis Delphi XE8 ?
Wenn man sich so die SVN Folder im Netz anschaut, dann bekommt man schon wieder Schüttelfrost. Man wollte doch den String-Salat aufräumen, damit Anfänger sich besser in Delphi zurechtfinden (siehe UTF8 abschaffen etc.). Das hat man dann auch gründlich gemacht. Doch was müssen meine blutunterlaufenen Äuglein jetzt sehen!?!? LargeInt, LargeUInt, FixedInt, FixedUInt. Ich wette, denen fällt bestimmt noch mehr ein! Die Prozessorregister werden nicht mehr. Auch wenn man 10 weitere Typen einführt. Da wünsche ich dann noch fröhliches Typ-Raten im Informatikunterricht und den restlichen Delphi-Stuben auf der Welt!
BTW: scheinbar kennen die Ingenieure bei Emba nicht mehr den Unterschied zwischen generischen und fundamentalen Integern. Das geht bei denen wild drunter und drüber. Die wären vermutlich auch bei Niklaus Wirth durch das Vor-Diplom gefallen. |
AW: Quo vadis Delphi XE8 ?
Könnte das am Ende gar
![]() |
AW: Quo vadis Delphi XE8 ?
Das ist grundsätzlich nichts Neues.
Wir haben Datentypen, die plattformabhängig sind und welche, die plattformunabhängig sind. Die Datentypen sind allesamt hier dokumentiert: ![]() Das Zielsystem gibt die jeweiligen Spielregeln vor - alles andere würde wenig Sinn machen, schliesslich wollen wir ja gerade die Interoperabilität mit den jeweiligen Systemen. Und nun eben auch mit iOS64. |
AW: Quo vadis Delphi XE8 ?
Jupp, leider ist Emba daran mal nicht Schuld.
Immerhin waren die ja nicht die Ersten, werlche für 64 Bit eine Entwicklungsumgebung anboten (eher die Letzten :zwinker:) und da waren Andere (Microsoft, Intel usw.) schon vorher auf die geniale Idee gekommen und haben beschlossen den Integer-Typen einzufrieren und dafür einen neuen Typen einzuführen, welcher ab jetzt als dynamischer/plattformabhängiger System-Typ definiert wurde, der sich an die CPU anpasst. In Delphi nannte er sich er sich dann NativeInt und NativeUInt. Und im Grunde war GodeGear/Embarcadero wenigstens konsequent, als sie von ANI auf Unicode umstellten. Es ist ja nicht deren Schuld, daß viele ihren Code "schrottig" schrieben, indem sie z.B. PChar verwendeten, obwohl sie eigentlich ausschließlich einen ANSI-String behandeln wollten, oder daß sie bei Verwendung von PChar nicht die Größe richtig "dynamisch" bestimmten. Gut, beim Integer hatte man somit Pech, wobei Integer-Casts von und zu Pointern nicht wirklich richtig waren, denn auch dafür gibt es entsprechende Typen, wie z.B. IntPtr, welche auch jetzt noch richtig gearbeitet hätten. Für die Parameter bei den Messages gab es auch schon immer die entsprechenden Typen WPARAM, LPARAM und LRESULT. Und PChar, Char und String war per Definition auch schon lange vor 2009 als dynamisch/plattformabhängig definiert. Außerdem hätte man wissen müssen, daß man Speicher und Übertragungsformate niemals plattformabhängig definiert, außer man schreibt den Typen mit ins Protokoll. Wer alles vorher richtig gemacht hatte, hatte bei Umstellungen auf Unicode oder 64 Bit keine oder zumindestens fast keine Probleme. Wie man in Stevies Link sieht, war/ist es in C/C++ traditionell üblicher, daß es da viel mehr Typen gibt und diese speziell auf gewisse Bereiche ausgelegt sind, damit sich zukünftige Änderungen genauer anpassen. In Pascal versuchte man das einfacher zu halten und fasste viele Typen quasi zusammen und leider wurde der Integer, Char und PChar zu oft für falsche Dinge eingesetzt, auch wenn sich Herr Wirth und Andere schon ein paar Gedanken gemacht hatten und für gewisse Dinge spezielle Typen einführten. |
AW: Quo vadis Delphi XE8 ?
Zitat:
[OT] Hätte EMBA das auch gemacht, würden nicht so viele Projekte noch auf D2007 hängen... Und es gäbe nicht die "Unicode-Hürde". Ja ja ja die VCL... Schon klar... Hätte man zweigleisig fahren müssen...Ein schönen Compilerswitch welche Version gelinkt werden soll....[/OT] Mavarik |
AW: Quo vadis Delphi XE8 ?
Zitat:
Bei Delphi konnte man viele Jahre "faulenzen" und die Compilermagic verwenden statt sich an den relevanten Stellen (Datei speichern, APIs, ...) Gedanken machen zu müssen. Mit D2009 musste halt diese Stellen angepasst werden. Wenns man richtig gemacht hat waren es nicht zu viele. Zitat:
|
AW: Quo vadis Delphi XE8 ?
Nein PChar muß 2 Byte sein, denn PChar ist das Äquivalent zum String, welches na nun ein Alias für den UnicodeString ist.
Ja, man hätte natürlich auch den String als Alias für einen UTF8String nehmen können, dann wäre PChar 1 Byte geblieben, aber dann müsste man für alle WinAPIs einen Wrapper bauen können, da es Diese nur als ANSI oder UTF-16 (Unicode) gibt. So paßt nun der PChar genau auf die Unicode-Versionen der WinAPIs drauf. |
AW: Quo vadis Delphi XE8 ?
Zitat:
Der Unicodesschnitt war hart aber richtig. Zitat:
Es wäre eher wie mit der BDE, solange es diese gibt, besteht kein Zwang sich von ihr zu verabschieden. |
AW: Quo vadis Delphi XE8 ?
Zitat:
Zitat:
Ich glaube auch das viele Projekte bei D2007 hängen geblieben sind da durch die VCL.NET (und des generellen .NET-Ausflugs) viel Entwicklungszeit investiert wurde den man danach wegschmeißen konnte. Das dürfte für einige Firmen das Ende bedeutet Zitat:
|
AW: Quo vadis Delphi XE8 ?
Frag mal den Andreas ... die 1-Byte-Chars/Strings gibt es noch. (heimlich versteckt)
Auch wenn ich nicht wirklich verstanden hab, warum man das ANSI/UTF-8 abgeschafft hat. |
AW: Quo vadis Delphi XE8 ?
Zitat:
Deshalb kann ich den Schritt durchaus nachvollziehen... Es gibt aber natürlich auch seltene Fälle, in denen Ansistrings tatsächlich Sinn machen, auch auf mobilen Plattformen. Zum Beispiel, wenn man mit einem Dienst direkt kommuniziert, der Ansistrings benutzt. |
AW: Quo vadis Delphi XE8 ?
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Wenn jch überlege was für Verrenkungen ich bei Synapse TCP machen musste. Es macht keinen Sinn den Entwickler zu bevormunden. Fast jede Lowlevel API verlangt nach Ansi und da dauernd Verrenkungen einbauen zu müssen ist eher eine Gängelung.
|
AW: Quo vadis Delphi XE8 ?
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Für mich persönlich wäre es schön, wenn zumindest UTF8String zur Verfügung stehen würde. Auf den ANSI-String kann ich verzichten. Aber UTF8 ist der Quasi-Standard des Internets. Und laufend mit TBytes herumzuhantieren macht da wenig Spaß.
Was sieht wohl leserlicher aus (und nein, ich werden Byte nicht in WideChar konvertieren was ein unnötiges "MOVZX" einfügen würde):
Delphi-Quellcode:
B[I] in [Ord('A')..Ord('Z'), Ord('a')..Ord('z'), Ord('_'), Ord('0')..Ord('9')]
// oder S[I] in ['A'..'Z', 'a'..'z', '_', '0'..'9'] |
AW: Quo vadis Delphi XE8 ?
Da stimme ich zu, mit UTF-8 sieht das anders aus. Ich wandele allerdings immer zuerst in Unicodestrings um, so dass ich aktuell keine Probleme habe.
|
AW: Quo vadis Delphi XE8 ?
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Zitat:
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Zitat:
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Zitat:
Delphi-Quellcode:
. Und wie die jetzt intern arbeitet, ist mir egal.
IsValidIdentifierChar(myChar)
|
AW: Quo vadis Delphi XE8 ?
Zitat:
![]() |
AW: Quo vadis Delphi XE8 ?
Zitat:
Hätte man das in Projekt XY gebraucht, hätte man sicherlich schon eine Fremdkomponente dafür benutzt und es wäre keine "Hürde"... Mavarik |
AW: Quo vadis Delphi XE8 ?
Zitat:
Zitat:
Mavarik |
AW: Quo vadis Delphi XE8 ?
Zitat:
Und du solltest so eine Frage nicht bei den Delphi-Entwicklern stellen die (damals) noch mit Delphi arbeiten sondern bei denen die nicht mehr mit Delphi arbeiten. Ein grund wird fehlender Unicode-Support gewesen sein. Zitat:
|
AW: Quo vadis Delphi XE8 ?
Zitat:
Wäre Emb auch diesen Weg gegangen und hätte String/Char auf 1 Byte gelassen und den neuen Typ UnicodString/UnicodeChar eingeführt wäre der aufschrei mindestens genauso groß gewesen da ja jetzt kein Code mehr Compiliert ohne 2 Mio. Warnungen/Fehler zu bringen. |
AW: Quo vadis Delphi XE8 ?
Zitat:
Solange Amerikaner für den amerikanischen Markt programmieren und Deutsche für den deutschen Markt, haben beide ohne Unicode wohl keine nennenswerten Probleme. Aber wenn deine Software auch in Skandinavien, Griechenland, Tschechien, Russland, Israel, Iran, Japan und China eingesetzt wird, dann möchtest nicht mehr ohne Unicode arbeiten. Die verbleibenden Probleme sind schon genug. |
AW: Quo vadis Delphi XE8 ?
Ich komme wegen TSiLang sehr gut ohne Unicode aus und verticke die Anwendungen zumindest in tschechisch (was pervers genug ist). Chinesisch sollte ich auch noch hinbekommen. Der Grund, von Delphi weggegangen zu sein, lag nicht am fehlenden Unicode-Support, das hatte andere Gründe.
|
AW: Quo vadis Delphi XE8 ?
Zitat:
Und was ist an tschechisch pervers? Zitat:
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Zitat:
Zitat:
Zitat:
|
AW: Quo vadis Delphi XE8 ?
Das Fehlen von Unicode-Unterstützung war sicherlich nicht "der" Grund für die Abwanderung, sondern ein möglicher Grund.
Fassen wir es allgemeiner: die fehlende Fähigkeit sich schnell an sich ändernde Rahmenbedingungen/ändernde Anforderungen anzupassen. |
AW: Quo vadis Delphi XE8 ?
Weitere Vorschläge für einen Konsens:
"Niemand ist extra zu Delphi gewechselt, weil die Unicode-Unterstützung mangelhaft war." |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 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