Das sehe ich z.B. als ein großes Manko an!
Das die Komponentenanbieter das so machen, oder was meinst du damit genau?
Genau! Wenn sie es denn so machen. Es gibt schon ein paar Bibliotheken, die die neuen Features nutzen und somit auch nur mit den neuen Delphi-Versionen verwendet werden können. So ist z.B.
Asphyre Sphinx in der neuen Version nur für XE2 verfügbar - und das ist auch gut so! Wer unbedingt auf älteren Delphi-Versionen entwickeln will, kann ja dazu auch die älteren Versionen der Bibliotheken nehmen. Neuentwicklungen sollte man eh nicht mit veralteten Werkzeugen ausbremsen - meine Meinung.
Die Krux liegt m.E. in der Gepflogenheit vieler Entwickler, die neuen Features oder Vorgaben neuer Versionen sozusagen mit "einzupatchen", anstatt direkt darauf aufzubauen ("deprecated" Warnungen beim Compileren). Wenn denn unbedingt ältere Versionen unterstützt werden müssen, dann muss man eben diese "einpatchen", über IFDEF anderen Code ausführen oder bestimmte Features eben dort ganz weglassen. Dann sieht man auch sofort, welche Versionen zu aufwändig mitzuziehen sind, und gibt deren Support vielleicht eher auf. Als Ergebnis hätte man wesentlich besser auf neue Versionen abgestimmte Bibliotheken. Auf der anderen Seite könnte das auch den Druck auf die Verwender älterer Versionen erhöhen, endlich ein neues Delphi zu erwerben und auch einzusetzen.
Natürlich ist das jetzt meine reine Entwicklersicht auf die Dinge - kaufmännisch mag es da noch andere Kriterien geben, auf die ich in meiner Betrachtung hier keine Rücksicht genommen habe.
Unsere D6-Exe ist 12-15 MB groß. Eine 50 MB Exe wäre nicht gerade von Vorteil (konnte bisher noch nicht das Hauptprogramm erfolgreich mit XE2 compilieren um den genauen Großenzuwachs mit und ohne Extended
RTTI zu sehen
Und wenn es nun 50MB werden, wo lägen dann ganz konkret die Nachteile? Würden diese Nachteile den Verzicht auf ein so mächtiges Werkzeug wie
RTTI wirklich rechtfertigen? Kannst du abschätzen, was dir das alles für Möglichkeiten eröffnet? Womöglich kannst du deinen Sourcecode damit ganz gehörig eindampfen.
Nur mal als Vergleich: bei einer meiner Anwendungen ist die Exe ausgehend von D7 bis nach XE2 (trotz
RTTI und
Unicode) gerade mal 25% größer geworden (9 -> 11,3 MB). Den erzeugten Mehrwert kann ich hier jetzt nicht beziffern, aber anhand der Kundenreaktionen würde ich ihn sicher über 25% ansiedeln. Als "Nebeneffekt" ist der Code auch wesentlich übersichtlicher und leichter wartbar geworden. Man muss nur mal den Mut haben, alte Zöpfe abzuschneiden.