Spannender Thread, und die Beschreibung von dummzeuch gibt die Lage gut wieder, danke! Na denn:
1. Delphi
Ich nutze Delphi seit Ewigkeiten. Sehr lange sah es bei Delphi nicht gut aus, das
Unicode-Geraffel, Firmenwechsel, ... da sind einige gute Entwickler weitergezogen. Die
IDE ist immer noch eine Krankheit. Manche Treiber für Datenbanken buggy, der Paketmanager GetIt mit veralteten Paketen, ... Je nachdem, was man machen will, ist es Gefrickel ohne Ende. SynEdit ersetzen, weil der alte Ranz modify after free macht? Viel Spaß. Doku zu Delphi im Netz ist zäh mittlerweile. FastMM4 veraltet, UIB tot, Firebird 4-Features werden kaum unterstützt. Visualisierung/
GUI geht besser mittlerweile - woanders.
Von Delphi will ich hauptsächlich
- amtliche Datenbankanbindung, alles,
ODBC, native APIs auf dem Stand, nicht Jahre hinterher
- ordentliches
GUI / Visualisierung
- aktuelle Funktionen (schmerzfreie Unterstützung für Parallelisierung bspw - die ist wirklich gut)
- reibungslose Updates
- gepflegte Dokumentation
-
RAD - aber echt
Bspw hätte ich von Delphi gern die Unterstützung von UDRs ab Firebird 4 oder überhaupt mal das komplette
API abgedeckt. Dafür gibt es bisher nur fbintf von Tony Whyman
https://www.mwasoftware.co.uk/fb-pascal-api. Das Paket ist amtlich, aber was, wenn der in Rente geht?
2. Web
Kenne u.a. javascript (ECMAScript >= 6) gut. Nimmt man libs wie d3
https://github.com/d3/d3/blob/main/API.md oder plot
https://github.com/observablehq/plot/tree/main/src, bekommt man mal den Blick von der anderen Seite. Der Code modular, kein Gramm Fett, eben nicht die xten Frameworks, Releases gut dokumentiert, so hätte ich das gerne bei Delphi. Und zum Entwickeln reicht ein guter Texteditor wie notepad++ und ein Browser. Debugging - im Browser, funktionierend.
3. Wie anders?
Aufs Wesentliche konzentrieren. Zuständigkeiten modularisieren. CIP bekommt Vorrang vor immer noch mehr Features.
Bei großen Delphi-Altanwendungen sind meistens Abhängigkeiten und Komplexität die Hauptprobleme. Beides einfach zu minimieren muss der Schwerpunkt der Ausrichtung sein, oberste Prio. Diese Unterstützung will ich von meinem Werkzeug. In Delphi würde ich
VCL etc auslaufen lassen und
GUI / Visualisierung über Webtechniken machen, dabei aber die Firefox-Engine zugrundelegen. Unterstützung von SVG inklusive, frei Haus. Plattformunabhängig.
Geschäftslogik
in die Datenbank verlagern. Über die o.g. Unterstützung von Firebird-UDRs (von Plugins träume ich gar nicht erst) ließen sich externe Stored Prozedures umsetzen, mit denen
die Datenbank bspw einen Webrequest machen kann oder einen
ODBC-Request. Queues in die
DB verlagern. Ordentliche Transaktionssteuerung für die Geschäftslogik. Dann ist das backend und das Kernstück der Anwendung auch plattformunabhängig, und robust. Anderen Client inkl REST-Server davorhängen? Datenaustausch mit anderen Systemen? Konsistenz? Kein Thema.
Delphi dann außerdem für die Kopplung der beiden Welten und das, was so nicht sinnvoll abgedeckt werden kann. Das wird oftmals einiges handlicher sein.
So modularisiert können Aufgabenbereiche besser verteilt und separat getestet werden.