… und wieder etwas Neues?

Delphi RAD Studio XE4 im Test
Kommentare

Erst in der Frühjahrsausgabe des Entwickler Magazins haben wir einen aktuellen Testbericht über das zu diesem Zeitpunkt aktuelle RAD Studio XE 3 präsentiert. Das Fazit zu dieser Version war durchaus positiv ausgefallen. Nun steht bereits eine neue Version der Entwicklungsumgebung, bezeichnet mit dem Zusatz XE 4, zur Verfügung. An dieser Stelle drängt sich somit die Frage nach den Neuerungen und einem möglichen Nutzen dieser neuen Version auf. Wir versuchen eine Antwort zu geben.

In diesem Beitrag soll primär die Frage beantwortet werden, welche Neuerungen die Version XE4 mit sich bringt. Beginnen wir zunächst mit den Hinweisen zur erstmaligen Installation.

So kommt RAD-Studio XE4 auf Ihren Entwicklungscomputer

Auf der Seite des Herstellers kann nach erfolgreicher Registrierung eine in der Laufzeit beschränkte Testversion von RAD Studio XE4 heruntergeladen werden. Danach kann die unproblematische – jedoch zeitlich relativ sehr umfangreiche Installation – auf das Zielsystem angegangen werden. Die benötigen Daten werden während des laufenden Installationsvorgangs aus dem Netz nachgeladen. Der Assistent führt intuitiv durch das Setup. Dazu sind nur wenige Benutzerinteraktionen notwendig. Am Ende steht einem ersten Start der Entwicklungsumgebung nichts mehr im Weg.

Die Entwicklungsumgebung RAD Studio XE4 begrüßt mit dem Startbildschirm
Abb. 1: Die Entwicklungsumgebung RAD Studio XE4 begrüßt mit dem Startbildschirm

RAD Studio XE4 – ein Überblick über den Stand der Entwicklungsumgebung

Delphi (heute Bestandteil des RAD Studios) ist für eine schnelle und vor allen effiziente Anwendungsentwicklung bekannt. Gewissermaßen wurde das Rapid Application Development (RAD) erstmalig vollständig in Delphi umgesetzt. Die zugrunde liegende Sprache ist Objekt Pascal deren Vorzüge in der Möglichkeit einer guten Strukturierbarkeit des Quellcodes und einer einfachen Erlernbarkeit liegen. Vorliegende Quelltexte sind meist schnell verständlich. Diese Eigenschaften der Sprache führten lange Zeit dazu, dass Pascal an vielen Bildungseinrichtungen als primäre und erste Programmiersprache gelehrt wurde. Da Pascal in der Ursprungsversion lediglich die Konzepte der strukturierten Programmierung unterstütze, erfolgten später die notwendigen Erweiterungen um die Aspekte der Objektorientierung. Delphi kann sozusagen als Objekt-Pascal bezeichnet werden. Entwickler mit Pascal-Kenntnissen sind mit ihrem Wissen auch nicht auf das Betriebssystem Microsoft Windows beschränkt. Pascal kann plattformübergreifend zur Programmentwicklung unter verschiedenen Systemen (Microsoft Windows, Linux, MacOS, …) eingesetzt werden. Auch für eine hardwarenahe Programmentwicklung im Bereich Microcontroller (Embedded Systems) kann Pascal zur Anwendung kommen und es existieren IDEs zur vereinfachten Programmierung. Die ersten Versionen von Delphi waren sehr erfolgreich, sie vereinfachten die Realisierung von Desktop-Anwendungen im erheblichen Maße. Viele Konzepte dieser IDE finden sich auch noch heute in den aktuellen Versionen der Entwicklungsumgebungen anderer Hersteller, auch wenn diese auf andere Programmiersprachen setzen. Bereits in den vorangegangen Versionen der Entwicklungsumgebung konnte man zwei grundsätzliche Kernelemente ausmachen, welche auch weiterhin bestehen

  • Native Entwicklung klassischer Desktop-Anwendungen: Traditionell ist Delphi für eine rasche Anwendungsentwicklung echter nativer Applikationen für Windows-Betriebssysteme ausgelegt. Nativ bedeutet, dass zusätzliche Bibliotheken (zum Beispiel die .Net-Laufzeitumgebung) für die endgültige Installation auf dem Zielgerät, also in der Systemumgebung des Kunden nicht benötigt werden. Die Anwendungen sind grundsätzlich unter allen derzeitig auf den Markt befindlichen Microsoft Windows-Betriebssystemen ausführbar, konkret beantwortet die FAQ des Herstellers die Frage wie folgt: Anwendungen, die mit Delphi XE2, XE, 2010 und 2009 und der VCL erstellt wurden, werden auf Windows 2000 oder später ausgeführt. Mit Delphi XE4 (VCL und FireMonkey) erstellte Anwendungen und Anwendungen, die mit Delphi XE4 und FireMonkey entwickelt wurden, können auf Windows XP und später ausgeführt werden. Damit dürfte die breitest mögliche Masse an Microsoft Windows-Betriebssystemen abgedeckt sein. Diese Kompatibilität zu älteren Systemen ist in zweierlei Hinsicht von Bedeutung. Erstens werden in der Praxis von den Unternehmen weiterhin noch ältere Versionen des Betriebssystems eingesetzt, d.h. man schließt nicht von vornherein eine bestimmte Kundengruppe aus. Und Zweitens besteht somit die Möglichkeit auch neuere und modernere Konzepte der Benutzeroberfläche (zum Beispiel die Ribbon Bar = Multifunktionsleiste) auch nicht nur für Windows 7 und Windows 8 sondern auch zum Beispiel auch für Windows XP zur Verfügung zu stellen.
  • Entwicklung plattformübergreifender Anwendungen für Microsoft Windows und Mac OS X (und nun auch iOS): Auf der Basis des Frameworks FireMonkey FM können – auch grafisch sehr anspruchsvolle – (Geschäfts-)Anwendungen für diese beide Betriebssysteme bereitgestellt werden. Neu wird nun die Implementierung von Apps für iPhone und iPad beworben. Dabei soll man für die Erstellung von mobilen Anwendungen (Apps) auf vorhandene Programmierqualifikationen, vorhandenes Wissen und vorhandenen Programmcode zurückgreifen können. Die Webseite verspricht, dass die so genannten Delphi-iOS-Apps über eine schnelle native Performance und eine bessere Sicherheit als webbasierte oder auf Skriptsprachen beruhende Apps verfügen. Dabei steht ein komplett visueller Designer für die Gestaltung der iOS-Benutzeroberflächen mit mehreren Gerätetypen, Auflösungen und Ausrichtungen zur Verfügung. Auf das (technische) Konzept geht der kommende Abschnitt näher ein.

Wie der nachfolgende Abschnitt zeigen wird, liegt der Schwerpunkt der Neuerungen des RAD Studios XE4 auf der Entwicklung von Apps für iOS. Natürlich ist das komplette und etablierte Tool-Set für die Implementierung nativer Microsoft Windows Anwendungen weiterhin enthalten. Dieses kann jedoch als weitestgehend ausgereift angesehen werden, so dass dort wohl auch in der Zukunft keine wesentlichen Neuerungen mehr zu erwarten sein dürften. Dennoch besitzt gerade dieser Teil des RAD-Studios seine Daseinsberechtigung, insbesondere für die Pflege einer doch großen Codebasis; und gelegentlich auch für die Entwicklung neuer Applikationen, dann vielleicht mit der Aussicht auf plattformübergreifende Lauffähigkeit . Dann muss man sich jedoch von der langjährig liebgewonnen Visual Component Library (VCL) verabschieden und auf das erwähnte FireMonkey (FMX)-Framework wechseln. An dieser Stelle wird bereits deutlich, dass der Erfolg des RAD Studios von der Qualität der technischen Umsetzung des FMX-Frameworks auf den Zielbetriebssystem abhängt. Im nebenstehenden Exkurs haben wir deshalb noch einige programmiertechnische Informationen zu FireMonkey zusammengetragen.

Exkurs: Das FireMonkey (FMX)-Framework im Überblick

FireMonkey nutzt die GPU (Graphics Processing Unit) in modernen Desktop- und mobilen Geräten zur Erstellung der Benutzeroberfläche. Die Hauptfunktionen dieser Plattform sind:

  • plattformübergreifende Abstraktionsschicht für Betriebssystemfunktionen, wie Fenster, Menüs, Zeitgeber und Dialogfelder
  • 2D- und 3D-Grafiken
  • Vektor-Engine
  • schnelle Antialias-Vektorgrafiken in Echtzeit; auflösungsunabhängig, mit Alpha Farbübergängen und Verläufen
  • WYSIWYG-Designer und -Eigenschaftseditoren
  • fortgeschrittene GUI-Engine
  • fortgeschrittene Skin-Engine auf Basis von Vektorgrafikstilen
  • grundlegende Formen für 2D-Grafiken mit einem integrierten Satz von Pinseln, Stiften, Geometrien und Transformationen
  • fortgeschrittene, im Hintergrund-Thread berechnete Animationen; einfach zu verwenden und präzise, mit minimaler CPU-Nutzung und automatischer Bildfrequenzkorrektur
  • in der Software gerenderte Bitmap-Effekte, einschließlich Schatten und Weichzeichnung
  • flexible Layouts und Mischung von Formen und anderen Steuerelementen
  • ebenenbasierte Formulare, Unicode-aktiviert
  • Lese-/Schreibunterstützung für die Formate JPEG, PNG, TIFF und GIF

Die FireMonkey-Bibliotheken (Komponenten und Laufzeit) enthalten:

  • Grundelemente, wie TLine und TText, sind von TShape abgeleitet.
  • Mit Stilen versehene Steuerelemente, wie TPanel und TToolbar, sind von TStyledControl abgeleitet.
  • 3D-Steuerelemente, wie TCamera, TMesh und TShape3D, sind von TControl3D abgeleitet.
  • Nicht streambare Klassen, wie TList und TThread, sind von TObject abgeleitet. Diese Klassen sind Teil der RTL.
  • Streambare Klassen, wie TGradient und TStrings, sind von TPersistent abgeleitet. Diese Klassen sind Teil der RTL.
  • Nicht visuelle Datenbankkomponenten, wie TClientDataSet und TBindScopeDB, sind von TComponent abgeleitet. Diese Komponenten sind zur Entwurfszeit, aber nicht zur Laufzeit sichtbar.

Das Klassendiagramm in Abbildung 2 gibt einen guten Überblick über die Struktur des Frameworks.

Die FireMonkey-Komponentenbibliothek im Überblick
Abb. 2: Die FireMonkey-Komponentenbibliothek im Überblick, Quelle:FireMonkey-Komponentenbibliothek

[ header = Plattformübergreifende Entwicklung ]

Weiter in Richtung plattformübergreifende Entwicklung

Das Ziel ist es, iOS-Apps für den iPad bzw. das iPhone zur Verfügung zu stellen. Die Anwendungsentwicklung erfolgt unter einem Microsoft Windows-Betriebssystem im RAD-Studio. Da die Systeme von Apple gewissermaßen als geschlossen aufzufassen sind, ist für die Implementierung und die letztendliche Bereitstellung einer iOS-App ein Mac-PC zwingend erforderlich. Es ist also ausdrücklich nicht möglich derartige Applikationen ohne den „Umweg“ über einen Mac-Computer zu programmieren. Dabei kann ggf. – bei Anwendung einer Virtualisierungslösung – auf den physischen Windows-PC verzichtet werden, d.h. das RAD-Studio kann in einer virtuellen Maschine ebenfalls auf dem Mac ausgeführt werden. Ein Mac ist jedoch zwingend erforderlich. Am Mac-PC wird dann über USB das endgültige mobile Endgerät (Tablett, Smartphone) angeschlossen. Auf dem Mac muss seinerseits Software installiert werden. Dieses sind der Platform Assistant (PAServer) zur Kommunikation mit dem Windows-Rechner und die Entwicklungsumgebung Xcode. Weitere Informationen zum Systemaufbau findet man im Wiki.

Hierin liegt auch ein Problem in der Entwicklung von Apps für das iPad und das iPhone: Die zwingende Notwendigkeit eines Mac-PCs. Da die Anschaffung von Hardware von Apple recht kostenintensiv ist, kann es eine Barriere darstellen. Dieses gilt insbesondere, wenn man zunächst semiprofessionell in die Entwicklung von Apps einsteigen möchte. Professionelle Entwickler im Mac-Umfeld verfügen natürlich über die notwendige hardwaremäßige Ausstattung. Dieser Entwicklerkreis ist allerdings auch nicht die primäre Zielgruppe für eine plattformübergreifende Entwicklung von Apps – ausgehend von einem Microsoft Windows-PC. Zumindest für Testzwecke kann dabei temporär auf auf eine Zwischenlösung zurückgegriffen werden. Embarcadero verweist auf ein Angebot in der Cloud. Der Anbieter macinclod bietet unter Berücksichtigung verschiedener Abrechnungsmodelle die Nutzung eines Mac-PC über das Internet an. Dabei kann dieser Zugang auch explizit zum Testen von Programmen genutzt werden. Über eine installierte Virtualisierungssoftware können auch Apps für das iPad bzw. iPhone getestet werden. Embarcadero wirbt damit (während des Testzeitraums des RAD-Studios) auch eine Testlizenz für dieses Angebot von macinclod zur Verfügung zu stellen. Langfristig kann man damit sicherlich nicht die tatsächliche Hardware vor Ort ersetzen, aber für den Einstieg bietet es eine brachbare Zwischenlösung. Es gestattet zumindest einzuschätzen, ob der gewählte Entwicklungsprozess auf der Basis von Objekt Pascal (Delphi) mittels RAD-Studio XE4 der richtige Weg für die angestrebte plattformübergreifende Programmentwicklung ist.

Ausblick – Gerüchteküche

Wohin die konkrete Reise geht, das können auch wir nur prognostizieren und ggf. ein (vielleicht noch zu diesem Zeitpunkt etwas idealtypischen) Weg aufzeichnen. Verfolgt man die Aktionen des Herstellers zur Unterstützung der plattformübergreifenden Entwicklung für Apps im mobilen Bereich und schaut man auf die Marktanteile in diesem Segment so, ergibt sich die in den Abbildung 3 und 4 dargestellte Situation.

Marktanteile mobiler Betriebssysteme

Marktanteile mobiler Betriebssysteme
Abb. 3, 4: Marktanteile mobiler Betriebssysteme

Dabei fällt primär auf, dass für einen echten plattformübergreifenden Ansatz aus heutiger Sicht an Android kein Weg vorbeiführt. Android basiert auf einem modifizierten Linux-Kernel und die Apps werden in Java mit einer (durch ein Plug-In angepassten) Version von Eclipse entwickelt. Das Oberflächenmodell wiederum basiert auf einer XML-Beschreibungssprache und weist damit gewisse Ähnlichkeiten zu XAML für Windows 8-Apps auf. Die Frage an dieser Stelle lautet: Kann es gelingen auch Android einzubinden und somit Delphi (RAD-Studio) für eine Entwicklung von Apps zu nutzen. Zwar gibt es bereits Frameworks, welche mit einer plattformübergreifenden Entwicklung werben, zum Beispiel PhoneGap, aber diese Produkte basieren meist auf einer Verwendung von Web-Technologien (HTML, CSS) mit den bekannten Nachteilen. Das RAD-Studio verspricht dagegen – so wie man es aus der Entwicklung von Desktop-Anwendungen für Microsoft Windows gewohnt ist – eine native Umsetzung (Implementierung) der Apps. Die Vorteile sind ein uneingeschränkter Zugriff auf die Hardwareressourcen, ein Look and Feel gemäß dem jeweiligen Betriebssystem und meist eine bessere Performance. Das Wunschszenario gibt Abbildung 5 wieder.

Noch nicht vollständig Realität (Wunschszenario): RAD-Studio als Werkzeug für alle wichtigen Plattformen.
Ab. 7: Noch nicht vollständig Realität (Wunschszenario): RAD-Studio als Werkzeug für alle wichtigen Plattformen.

Fazit

Dieses muss hier zwangsweise sehr subjektiv bleiben. Unverkennbar sind die Bemühungen des Herstellers neben der Entwicklung von nativen Applikationen für Windows-Betriebssysteme eine weitere erfolgsversprechende Domäne für das RAD-Studio aufzudecken, d.h. eine massive und zügig angestrebte Fähigkeit zur Unterstützung plattformübergreifender Anwendungsentwicklung. Neben den Microsoft Windows-Betriebssystemen sind dieses die Systeme des Konkurrenten Apple, also Mac OS X und das Betriebssysteme für die mobilen Endgeräte iOS. In der Zukunft munkelt man auch über eine Unterstützung von Android. Der Versuch den Fokus der Entwicklungsumgebung in diese Richtung zu bewegen ist nicht nur folgerichtig, sondern alternativlos. Sind wir doch ehrlich, Microsoft hat mit Visual Studio eine sehr gute und zeitgemäße Entwicklungsumgebung für alle Szenarien der Anwendungsentwicklung für Anwendungen und Apps aus dem eigenen Hause auf dem Markt. Die aktuellen Technologien .NET 4.5 und Windows Presentation Foundation (WPF) sind inzwischen etabliert und fest in den aktuellen Versionen des Betriebssystems verankert. Der Entwickler kann aus einem umfangreichen Angebot zur Verfügung stehender Programmiersprachen wählen. WPF erlaubt es moderne und ansprechende Benutzeroberflächen zu erstellen und ob ein Minimum an Laufzeitvorteil bei Business-Anwendungen (das ist und war die Domäne von Delphi) eine Rolle entscheidende Rolle für die Wahl des Werkzeugs spielt, muss mehr als bezweifelt werden. Mit Windows 8 wurde eine neue Ära von Anwendungen aufgetan, welche auf teilweise anderen technologischen Konzepten, namentlich der Windows RunTime (WIN-RT) beruht. Diese ist ebenfalls nativ, ist bestmöglich mit C# und XAML programmierbar. Demzufolge hat Embarcadero die Unterstützung der Entwicklung von .NET-Applikationen mit Delphi eingestellt. Berücksichtigt man diese Argumente kann man den Weg des Herstellers – also die Flucht nach vorn – zu einer möglichst breit gestreuten plattformübergreifenden Unterstützung verstehen und auch begrüßen. Die Fokussierung auf den Markt der mobilen Applikationen ist auch mehr als logisch, da sich gerade hier ein nebenher der etablierten Systeme iOS, Android und Windows 8 abzeichnet. Beantwortet ist die Frage dabei noch nicht, wie echte Microsoft Windows 8-Apps (für WinRT) in der Zukunft produziert werden können, denn die Entsprechungen für iOS- und Android-Apps sind nun mal Windows 8-Apps und keine herkömmlichen Desktop-Anwendungen.

Man kann dem Hersteller nur wünschen, dass es gelingt den eingeschlagenen Weg erfolgreich weiter zu gehen. Jeder Microsoft Windows-Entwickler weiß, was es bedeutet eine Applikation in einem anderem System (zum Beispiel Android mit Eclipse) zu entwickeln. Bevor erste Erfolge zu verzeichnen sind ist ein langer und schweißtreibender Lernprozess zu durchlaufen. Daher: Es lohnt sich am Ball zu bleiben und auf jeden Fall ein Auge auf die künftigen Entwicklungen des RAD-Studios zu werfen, vielleicht gelingt es ja den lang ersehnten Traum der meisten Entwickler „Code once, Run everywhere“ ein Stück näher zu kommen. Erste Erfolge sind zu sehen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -