Entw.: FM vs. VCL

Anhand der parallelen Entwicklung einer Applikation mit FM (FireMonkey) und VCL mit Delphi zeigten sich die derzeitigen Stärken und Schwächen von FM gegenüber VCL. Es handelt sich im Wesentlichen um ein Vergleich zwischen einer Direct2D- und GDI-Implementierung von Oberflächenelementen. FM besitzt das modernere Konzept und ist plattformübergreifend. Es besitzt aber noch Schwächen in Performance und in der Implementierung. Die VCL ist ausgereift und performant. Sie ist aber leider nur auf die Windows-Plattform beschränkt. Daher bezieht sich der Vergleich nur auf die Windows-Plattform.

Die derzeitigen FM-Schwächen sind:

  • → Die derzeitige FM-Implementierung nach Direct2D besitzt noch Verbesserungsmöglichkeiten. Beim Vergleich der Empfehlungen zur Direct2D-Programmierung von Microsoft mit den derzeitigen FM-Sourcen zeigt dies deutlich.
  • → Die FM-Implementierung hat noch viele Bug's
  • → Textausgaben mit unterschiedlichen Fonts sind umständlich zu realisieren
  • → Die Performance bei Grids mit vielen Daten ist sehr schlecht. Hier sollte man die TMS-Komponente TAdvStringGrid verwenden, wenn sie verfügbar ist.
  • → 3D-Grafiken mit komplexeren 2D-TPathData-Angaben sind fehlerhaft.

Für iOS sollte man kein aufwendiges Framework verwenden, um eine ausreichende Performance zu erreichen. Auf die Verwendung von Grids mit Massendaten ist erstmalig zu verzichten. 3D-Grafiken aus Wavefront-Importen sind auf allen Plattformen gut einsetzbar und sehr performant. Faszinierend ist die Möglichkeit Masken in einem 3D-Umfeld zu implementieren. Spezielle iOS-Funktionalitäten lassen sich durch eine Wrapper-Technik selber einbinden. Dazu sind unbedingt iOS-Kenntnisse notwendig. Diese Kenntnisse lassen sich aber in kurzer Zeit erarbeiten.

FM-FrameworkFM-Framework

Das hier gezeigte FM-Framework verwendet keine Grids. Es werden nur einfache Listen und Eingabe-Widgets benutzt. Die Stärken dieser Anwendung liegen in der Verarbeitung von Grafiken. Die Performance ist gut, aber der Speicherbedarf ist recht groß.

VCL-FrameworkVCL-Framework

Dieses VCL-Framework verwendet Grids in starken Maße. Die Grids können Massendaten beinhalten und sie sind trotzdem performant. Eine Direkteingabe von Grid-Daten ist ebenfalls möglich.