wp_xyz hat geschrieben:Ja, etwas überzogen ausgedrückt: Strings mit die schwierigsten Konstrukte der Sprache Pascal geworden...
Da Unicode ja heutzutage für professionelle internationale Anwendungen zwingend notwendig ist, war eine Umstellung der Pascal-IDE von ANSI auf Unicode sicherlich unvermeidlich.
Dabei sind die sich widersprechenden Forderungen nach Universalität, intuitiver Handhabung, Plattform-Unabhängigkeit, gute Performance und Kompatibilität zu älteren Versionen (vorhandener Source-Code sollte nach neu-übersetzen noch genauso funktionieren) zu beachten.
Embarkdero hat das mit den dynamisch typisierten Strings
einigermaßen hinbekommen, aber auch da gibt es (wie meine Kollegen berichten) jede Menge Ärger.
Da fpc aber (noch) keinen (durchgängigen) Support für "echte" Unicode-Strings hatte (und hat), Lazarus aber
unbedingt Unicode fähig werden und dabei natürlich Plattform-unabhängig bleiben musste, wurde die (meiner Ansicht nach fatale) Entscheidung getroffen, UTF-8 Codierung in dem ansonsten unveränderten ANSIString Typ zu verwenden. (MSE verwendet für diesen - vermutlich unvermeidlichen - Zwischenschritt UTF-16, was auch nicht toll ist, aber (zumindest in westlichen Ländern und bei Vermeidung von Mac-Rechnern) wesentlich weniger Ärger macht).
In absehbarer Zeit wird fpc die
volle Delphi-XE - kompatible (und hoffentlich darüber hinaus verbesserte und vom Benutzer sinnvoll parametrierbare) Plattform-unabhängige Implementierung von dynamisch typisierten Strings haben. Dann wird Lazarus vermutlich schnell nachziehen und die Verwendung von Strings für den Programmierer wieder ohne explizite Berücksichtigung von Unicode-Irrsinn verwendbar.
-Michael