DruckenMister WongFacebook

Interview mit Allen Bauer über Delphi XE

Allen Bauer

Chief Scientist bei Embarcadero, Allens Blog
Interview vom Oktober 2011; die Fragen stellte Martin Strohal

Delphi-Treff: Hallo Allen, Delphi XE2 ist kürzlich veröffentlicht worden. Was sind die wesentlichen neuen Features dieses neuen Releases?

Allen Bauer: Die Kunden werden jetzt die Möglichkeit haben, für Windows 32 Bit, Windows 64 Bit und MacOS 32 Bit zu entwickeln. Mit XE2 wird ein neues plattformübergreifendes, GUI-zentriertes, GPU-beschleunigtes Komponenten-Framework mit dem Namen FireMonkey eingeführt. Die VCL hat ein großes Upgrade mit der Einführung von Styles erfahren. Neu in XE2 sind LiveBindings. Sie bieten ein mächtiges und flexibles System, um das Anbinden einer Datenquelle an jede beliebige Property zu ermöglichen. Die Datenquelle kann nahezu alles sein, einschließlich anderer Properties.

Es gibt das neue Framework FireMonkey. Können Sie uns sagen, wie FireMonkey arbeitet und was seine Aufgabe ist?

FireMonkey ist von Grund auf für Crossplattform-Entwicklung designt. Entsprechend diesem Design isoliert es alle plattformspezifischen Dinge in eine unabhängige Plattformschicht. FireMonkey verwendet extensiv Komponenten. Wie sie jedoch in der GUI gerendert werden unterscheidet sich grundlegend von der VCL. Während die VCL unabhängige und in sich abgeschlossene Komponenten verwendet, die alle ihre eigenen Techniken für das Rendering einsetzen oder gar bestehende Windows-Controls wrappen, erledigt FireMonkey die Darstellung von Inhalten durch Zusammensetzungen. Das ermöglicht wesentlich größere Flexibilität beim GUI-Design. Animationen sind direkt in das Framework eingebaut, um sehr interaktive und fortgeschrittenere Benutzerinteraktionen zu erlauben. Wie Animationen sind auch Filter und Transformer eingebaut, was es ermöglicht, Teile des UIs zu manipulieren. Ein kleines modales Popup könnte z.B. angezeigt werden, und statt einfach das Hauptfenster zu deaktivieren, könnte man einen Blurring-Effekt auf das Userinterface hinter dem modalen Popup anwenden, was dem Feld mehr Tiefe gibt. Dieser Blurring-Effekt wird beim Zusammensetzen des UIs angwendet und ist unabhängig vom Rendering der Komponenten/Controls.

Ist FireMonkey Ersatz für die VCL oder Ergänzung?

Die VCL ist in erster Linie und vor allem als relativ dünner Wrapper designt, um Windows-Programmierung einfacher und zugänglicher zu machen. Die VCL umfasste effektiv mehrere Windows-Programmierkonzepte und machte sie zum Teil des Frameworks. Dies machte die Windows-Programmierung sicherlich wesentlich zu einer produktiveren und angenehmeren Erfahrung. Es band die VCL auch untrennbar an die Windows-Plattform und ihre speziellen Eigenheiten. Wir hatten verschiedene Ziele mit FireMonkey. In erster Linie wollten wir ein Framework, das die Erstellung sehr interaktiver und moderner Benutzeroberflächen erlaubte. Außerdem wollten wir ein Framework, das nicht fest an eine betimmte Plattform gebunden war. FireMonkey ist nicht als Ersatz für die VCL gedacht; vielmehr ist es als völlig neuer Weg für Kunden gedacht, um den spannenden Markt für reichere, interaktivere Desktopanwendungen neben dem aufkommenden Mobile-Bereich zu bedienen.

Wenn ich eine bestehende Delphi-Anwendung unter Mac OS X laufen lassen möchte - muss ich sie zuerst nach FireMonkey konvertieren? Wird es einen Konverter geben?

VCL und FireMonkey teilen sich RTL und Datenbank-Komponenten wie dbXpress und DataSnap. Während man nicht einfach eine bestehende VCL-Anwendung für Mac OSX neu kompilieren kann, hat man doch die Möglichkeit, allen Code zu verwenden, der lediglich RTL und Datenbankkomponenten verwendet. Was Konverter anbelangt, so weiß ich, dass zum Zeitpunkt dieses Interviews einige Dritthersteller VCL-nach-FireMonkey-Konverterprodukte anbieten.

Was sind Ihre zukünftigen Pläne für FireMonkey?

Mehr Plattformen und Mobile. FireMonkey ist das, womit wir in der spannenden heterogenen Mobil- und Desktopplattformen-Welt relevant bleiben werden. Während der 90er- und frühen 00er-Jahre existierte der Mobile-Computing-Bereich nicht oder war eine sehr kleine Nische. Apple und Mac OS waren gerade am Niedergang und viele waren nicht sicher, ob sie das Jahr 2000 erleben würden. In was für einer anderen Welt leben wir jetzt! Das Desktop-Mac OSX unternimmt signifikante Angriffe im Unternehmensbereich, und der Mobilbereich ist alles andere als eine Nische. Delphi streng an die Windows-Plattform zu binden, würde große Möglichkeiten für Embarcadero und all unsere Delphi-Kunden, neue und alte, ignorieren. Mit FireMonkey ist XE2 positioniert als einziges natives Cross-Plattform-Framework das auf beide großen Desktop-Betriebssysteme und eines der dominanten mobilen Betriebssysteme, iOS, zielt. Rechnen Sie damit, dass FireMonkey mächtiger und noch einfacher zu verwenden wird und in künftigen Releases noch mehr mobile Plattformen unterstützen wird.

Die Anwendungen, die für OSX kompiliert werden, sind nativ. Ist hier der neue Delphi-Compiler im Einsatz? Und wird dieser für "normale" Win32-Anwendungen in Zukunft auch eingesetzt werden?

Mit XE2 werden drei neue Compiler eingeführt. Delphi Windows 64 Bit, Delphi MacOSX 32 Bit und C++ MacOSX 32 Bit. All diese Compiler sind von der bestehenden Codebasis abgeleitet. Sie alle teilen sich die gleichen sog. Frontends, den Teil des Compilers, der den Quellcode in eine Zwischenform als Vorbereitung für die Generierung von Maschinencode umwandelt. Die bestehenden 32-Bit-Delphi- und 32-Bit-C++-Compiler sind noch sehr im Geschäft. Wir haben einige Forschungsprojekte in Arbeit, noch mehr Plattformen und CPU-Architekturen anzusprechen.

Ist der neue Compiler voll abwärtskompatibel? Oder werden einige Dinge nicht mehr unterstützt?

Für XE2 wurden die Compiler mit größt möglicher Abwärtskompatibilität entwickelt. Wenn wir in die ZUkunft schauen, forschen wir gerade an neuen Richtungen sowohl für die Compiler-Architektur, die es uns erlaubt, neue Architekturen schneller anzusprechen, als auch fortgeschrittenere und modernere Sprachfeatures hinzuzufügen. Das könnte bedeuten, einige ältere Features der Sprache zu entfernen.

Gibt es in Delphi XE2 neue Features für Leute, die weiterhin nur VCL-Win32-Anwendungen entwickeln werden?

XE2 hebt klar hervor, dass die VCL immer noch Kernbestandteil des Produkts ist. Durch das Hinzufügen von Styles kann der Programmierer seine bestehenden VCL-basierten Anwendungen nehmen und das Look-and-Feel modernisieren, indem er die neue Style-Engine verwendet. Durch die Unterstützung durch Third-Party-Komponenten bleibt es eine der, wenn nicht das beste aller unabhängigen Entwickler-Tools auf dem Markt. Die VCL ist nach wie vor die schnellste und einfachste Möglichkeit, Windows-Anwendungen zu entwickeln. Außerdem ist es mit XE2 nun möglich, 64 Bit-Windows anzusprechen, die meisten VCL-Anwendungen können jetzt einfach neu für 64 Bit kompiliert werden unter Berücksichtigung der normalen 32-Bit -> 64-Bit-Unterschiede.

Wird es wieder eine neue Starter-Edition geben? Und haben Sie Pläne für ein kostenloses Delphi, um frisches Blut in die Delphi-Community zu bekommen?

Die Starter-Edition ist auf jeden Fall fester Bestandteil unserer Produktlinie. Wenn man den Preis der Starter-Edition unter Berücksichtigung der Inflation mit dem Preis des originalen Turbo Pascal zusammen mit den gewaltigen überlegenen Möglichkeiten der Starter vergleicht, bekommt man meiner Meinung nach einen fairen Gegenwert für den Preis. Wir haben auch sehr angemessene Angebote für den Ausbildungsbereich, wo man nahezu 80-90% Rabatt auf alle Produkte bekommen kann. Was eine kostenlose Version angeht, wir suchen immer nach Wegen, die Communitybasis zu vergrößern ohne die Möglichkeit, unserem bestehenden, sehr starken und wachsenden Markt zu schaden. An diesem Punkt meinen wir, dass die Starter-Edition eine gute Balance zwischen Preis, Features und Wert bietet. Die Starter ist direkt auf den Neukunden ausgerichtet, indem Features darin enthalten sind, die die meisten neuen Kunden vermutlich direkt brauchen werden, um sowohl die Umgebung kennenzulernen als auch um kommerzielle Anwendungen zu entwickeln.

Vielen Dank für die Beantwortung unserer Fragen!