Warum REALbasic?

Welche Entwicklungsumgebung sollten Sie verwenden? Schon sind Sie mit einer Fülle von Möglichkeiten konfrontiert: Cross-Plattform oder nur Mac? Standalone-Programme oder Programme, die eine Runtime-Umgebung erfordern? Nur zum Spaß oder könnte sich etwas ernsthaftes daraus entwickeln?

Meine eigenen Anforderungen an ein Entwicklungswerkzeug waren: einfach zu erlernen, gutes grafisches Benutzerinterface, Cross-Plattform-Fähigkeit und, wenn möglich, geringer Preis oder kostenlos.

Meine Anforderungen schlossen Tcl, Python, X-Code (trotzdem habe ich es auf meinem Mac) und einige andere aus. Genauer angeschaut habe ich mir REALbasic, Java, SuperCard und Revolution. Diese habe ich ca. einen Monat lang getestet, wobei REALbasic mit großem Abstand als Favorit aus diesem Test hervor ging. Mir war der enorme Vorteil einer objektorientierten Sprache vorher nicht bewusst. Java ist zwar ebenfalls objektorientiert und Cross-Plattform-fähig, aber vor allem für Web-Anwendungen geeignet. Außerdem sehen Java-Anwendungen meiner Meinung nach schrecklich aus. Ich habe noch kein einziges Java-Programm gesehen, das wie ein natives Programm auf der jeweiligen Plattform aussieht.

X-Code ist eine gute Alternative, wenn Sie (a) nur für den Mac entwickeln und (b) die C-Programmiersprache mögen (das trifft nicht auf jeden zu). Sie sollten aber beachten, dass die aktuelle X-Code-Version nur unter Leopard läuft und nicht für ältere Versionen compilieren kann. Wenn Ihnen Kompatibilität wichtig ist, müssen Sie X-Code 3 und X-Code 2.5 installieren. Mit anderen Worten: Die in X-Code 2.5 unter Tiger entwickelten Programme laufen problemlos unter Leopard, anders herum ist dies nicht selbstverständlich.

Im Bereich der Cross-Plattform-Entwicklung ist REALbasic die bisher beste Lösung.

Ist REALbasic schneller als C?

Ja und Nein.

REALbasic ist ein fantastisches Rapid Application Development Werkzeug. Mit REALbasic können Sie ein Projekt in deutlich kürzerer Zeit als mit C abschließen. Für die meisten Anwendungen ist es völlig unerheblich, ob sie die Geschwindigkeit x oder die Geschindigkeit 2x erreichen, da der Anwender das langsamste Glied in der Kette ist und der Computer meistens auf Anwendereingaben wartet.

Für zeitkritische Programmteile können Sie ein C/C++-Plug-in schreiben und einfach in Ihr Projekt integrieren. Mit Hilfe des Declare-Statements können Sie direkt auf APIs zugreifen. Auch der direkte Zugriff auf Speicherblöcke lässt Ihnen Raum für Geschwindigkeitssteigerungen.

Andererseits können Sie mit C Programme schreiben, die schneller als ihre REALbasic Pendants sind. Vor kurzem habe ich das ausprobiert: Mein REALbasic-Programm hat 650ms für die Aufgabe benötigt, die C-Version 570ms. War das den zusätzlichen Aufwand der C-Programmierung wert? Nein. Ich kann mir aber Situationen vorstellen, in denen ich ein C-Plug-in schreiben würde.

Grundsätzlich kommt es darauf an, das richtige Werkzeug für den konkreten Auftrag auszuwählen. Wenn Sie jedes Quentchen Leistung benötigen, weil Sie einen Photoshop-Clone schreiben oder umfangreiche Multiple Sequence Alignments berechnen wollen, wo ein Geschwindigkeitsunterschied um den Faktor zwei ins Gewicht fällt, sollten Sie zu X-Code greifen (oder ein Plug-in in C schreiben). Wenn Sie aber ein normales Programm oder ein Datenbank-Frontend entwickeln (eine der Stärken von REALbasic), erzielen Sie mit REALbasic viel schneller die gewünschten Ergebnisse und der Geschwindigkeitsunterschied ist vernachlässigbar. Dazu kommt, dass der Code wesentlich leichter zu lesen und zu warten ist.

Warum sind mit REALbasic erzeugte Programme so groß?

REALbasic-Programme enthalten das komplette Framework und sind deshalb (anders als C# Programme) nicht von zusätzlichen Komponenten abhängig, die auf dem Computer installiert sein müssen. Das heißt aber auch, dass selbst ein funktionsloses Programm eine beachtliche Größe hat - ein Eindruck, der durch Univeral Binaries auf dem Mac zusätzlich verstärkt wird.

Allerdings wächst das Programm später nicht mehr so drastisch, wenn Sie Ihren Code hinzufügen. Und es gibt einen Vorteil, der die Größe des Downloads wettmacht - Ich kann das Programm ohne Installer starten. Jeder, der an einem "Managed System" arbeiten muss, weiß, wovon ich spreche. Meine REALbasic-Programme arbeiten "out of the Box", ohne Installationsprogramm, wenn nötig auch von einem USB-Stick.

Hat REALbasic viele Fehler?

Ganz sicher hat es die. Genau wie X-Code, Visual Basic, C#, Mac OS X. Von Word und Windows will ich hier gar nicht reden.

Jedes komplexe Programm enthält Fehler. Die eigentliche Frage ist deshalb: Führen die Fehler dazu, dass das Prgramm für einen bestimmten Zweck nicht geeignet ist (K.O.-Kriterium)? Die Antwort darauf ist ein schallendes NEIN. Das heißt nicht, dass es auch Fehler gibt, wegen derer Sie sich die Haare raufen würden, es gibt aber gewöhnlich Work-Arounds dafür.

Außerdem stellte sich heraus, dass die meisten "Fehler" in meinem Code lagen, so dass ich mich mit Vorwürfen zurückhalte und zunächst höflich nachfrage.

Lassen Sie uns einen Vergleich mit Mac OS X 10.5 Leopard anstellen:

10.5.1 behob mehr als 25 Fehler (darunter einen, der zu Datenverlusten führen konnte)
10.5.2 behob mehr als 10 Fehler (darunter 7, die zur unerlaubten Codeausführung missbraucht werden konnten)
10.5.3 behob mehr als 200 Fehler (großes Update)
10.5.4 behob mehr als 20 Fehler (schnelles Update, um den schwerwiegenden Adobe CS3-Fehler zu beheben)
10.5.5 behob mehr als 70 Fehler
10.5.6 behob mehr als 100 Fehler
Das Mac OS X 10.5.7 Update bringt mehr als 80 Fehlerkorrekturen - glaubt deshalb irgend jemand, dass 10.5.6 unbrauchbar ist?

Einige Leute monieren, das 10.3 nicht mehr unterstützt wird. Versuchen Sie, darüber hinweg zu kommen - es kommt immer der Punkt, an dem Sie für neue Features und Fehlerkorrekturen bezahlen müssen. Ich freue mich schon auf das neue Mac OS X 10.6 Snow Leopard, das nur noch auf Intel Macs laufen wird.

Kann ich für Mac OS 9 compilieren?

Erstaunlicherweise sind immer noch einige ältere Macs mit Mac OS 9 im Einsatz. Ca. 10% meiner Kunden arbeiten noch mit Mac OS 9 (andere Entwickler melden einen ähnlichen Anteil). Wenn Sie Programme für Mac OS 9 erzeugen wollen, benötigen Sie 2007R4 oder eine frühere Version.

Ich habe verschiedene REALbasic-Versionen auf meinem Mac, in denen derselbe Code problemlos funktioniert.

Ich möchte darauf hinweisen, dass die Einstellung der Mac OS 9 Unterstützung kein Grund zur Klage ist - REAL Software hat Mac OS 9 viel länger unterstützt als Apple selbst.

Ist REALbasic erweiterbar?

Ja. Es gibt einige Entwickler von qualitativ hochwertigen Plug-ins, von denen besonders die
Einhugur plug-ins und die Monkeybread Sammlung erwähnenswert sind. Die Monkeybread Sammlung stellt rund 22000 Funktionen zur Verfügung - Sie haben die Wahl, die gesamte Sammlung (mit Rabatt) oder nur die benötigten Module zu kaufen. Schauen Sie sich einmal die Tutorial Videos an - das Chart Director Plug-in ist fantastisch!

Andere empfehlenswerte Plug-ins von Drittanbietern:

Bob Delaney's kostenlose Mathematik- und Physik-Plug-ins
True North’s EditField Ersatz (kommerziell)
Van Hoek’s Plug-ins (kommerziell)
Roger Meier’s kostenlose DataPlot Klassen
Electric Butterfly’s UniHelp (kommerziell)

Es sind weitaus mehr verfügbar, einige sind kostenlos. RBgarage hat eine Übersicht.

Kann ich mit REALbasic alles machen?

Nein. So sehr Sie es auch versuchen - Sie können damit keine anständige Tasse Kaffee kochen.

Diese Frage ist zu allgemein gehalten. Sie könnten auch fragen: "Kann ich mit X-Code alles machen?" Die Antwort wäre "Nein" - beispielsweise können Sie damit nicht für Windows oder Linux compilieren.

Aber REALbasic ist dazu in der Lage. Dafür müssen allerdings einige Kompromisse eingegangen werden, da es auf jeder Plattform Features gibt, die auf anderen Plattformen nicht verfügbar sind. Dasselbe triff in weit stärkerem Maße auf Java zu, trotzdem habe ich noch nie gehört, dass sich Leute darüber beschweren.

Grundsätzlich ist mit REALbasic alles möglich. REALbasic unterstützt viele plattformspezifische Elemente, wie AppleEvents oder Spotlight auf dem Mac und RegistryItems und TrayItems unter Windows. Andererseits machen Sie, indem Sie diese Elemente verwenden, die Cross-Plattform-Tauglichkeit Ihres Programms zunichte. Es ist trotzdem üblich und sinnvoll, einige plattformspezifische Features zu unterstützen, was mit bedingten Anweisungen einfach möglich ist:

#If TargetWin32
//Windows specific code here
#ElseIf TargetMacOS
//Macintosh code goes here.
#ElseIf TargetLinux
//Linux code goes right here.
#EndIf

Was ist die größte Stärke von REALbasic?

Devinitiv der Support durch die Entwickler und die Anwender-Community. Wo sonst beantwortet der Geschäftsführer Anfragen direkt, klinken Sie die Entwickler mit Tipps in Forendiskussionen und Mailinglisten ein und stehen jede Menge Anwender bereit, die begierig sind, Ihnen bei Problemen zu helfen? Ich kenne nur eine weitere Community mit ähnlichem (aber nicht ganz so gutem) Support: die RapidWeaver-Foren.

Welches sind die größten Schwachstellen von REALbasic?

Ich wünsche mir ein besseres EditFlield-Steuerelement. Das aktuelle unterstützt zwar formatierten Text (Fett, Kursiv, Unterstrichen, Ausrichtung, Farbe, Schriften, Schriftgröße), Hoch-/Tiefgestellt fehlt allerdings (dafür gibt es Lösungen von Drittanbietern). Für umfangreiche Texte ist es langsam. Allerdings verwende ich selten mehr als 100000 Zeichen in einem Text. Derzeit muss ich einmal pro Woche einen Text mit 160000 Zeichen löschen, was 3 Sekunden dauert. Ich kann damit leben.

Ein anderer wunder Punkt ist die fehlende Dokumentation. Wegen des Rapid Release Modells spiegelt die Dokumentation manchmal nicht alle aktuellen Änderungen wieder. Allerdings weiß jeder, der schon einmal mit dem Schreiben und ständigen Aktualisieren einer Dokumentation befasst war, was das bedeutet.

Was bedeutet Rapid Release Modell?

Ursprünglich hat REAL Software ca. einmal jährlich ein kostenpflichtiges Update veröffentlicht, das neue Programmfeatures enthielt. Dazu kamen über das Jahr verteilt eine Reihe kostenloser Fehlerkorrekturen. Die REALbasic-Anwender wollten allerdings schneller in den Genuss neuer Features kommen. Deshalb erscheint jetzt spätestens nach 90 Tagen eine neue Release. Sie bezahlen einmal für einen Zeitraum von 12 Monaten und erhalten so mindestens 4 bis 5 Upgrades. Dieses Modell hat Vor- und Nachteile. Neu eingeführte Features können auch neue Fehler provozieren. Das alte Modell stellte dagegen sicher, dass Sie, bevor REAL Software eine neue Version veröffentlichte, eine nahezu fehlerfreie Version in Händen hielten. Nach dem neuen Modell werden zwar genauso viele Fehler korrigiert, allerdings erhalten Sie neue Features schneller, und mit ihnen neue Fehler. Die meisten Entwickler scheinen mit diesem Modell glücklich zu sein, ich persönlich bevorzugte allerdings das alte Verfahren.

Habe ich schon jemals ein mit REALbasic geschriebenes Programm in Aktion gesehen?

Ganz bestimmt - auch wenn Sie sich dessen nicht bewußt waren - und das ist genau der Punkt. Erinnern Sie sich an die Präsidentschaftswahlen 2004 und 2008 in den USA? Die von AP (Associated Press) gezeigten Grafiken? Datenbankzugriffe, Datensammlung und Datenverarbeitung, generieren von Bildschirmgrafiken und PDF Flyern - all das wurde mit REALbasic realisiert.

Bookends ist eines meiner Lieblingsprogramme. Es handelt sich dabei schlicht um die beste Literaturverwaltung. Und es wurde mit REALbasic programmiert.

Benötigen Sie weitere Informationen?

Obwohl die 110 Lektionen der
REALbasic University nicht mehr taufrisch und mit einer älteren REALbasic-Version entstanden sind, sind sie doch ein exzellenter Ausgangspunkt für jeden, der nicht nur an REALbasic, sondern auch am Programmieren allgemein interessiert ist.

Es gibt einige sehr schöne Video-Tutorials, die sich an Einsteiger richten und die Funktionsweise von REALbasic demonstrieren, unter
RBtv.

Es gibt auch das
REALbasic Developer Magazine und einige Bücher.

Etwas vergessen?

Ich verwende für die meisten Arbeiten noch RB2007R4, da ich auch einige Mac OS 9 Anwender unterstützen will. Ich werde allerdings die Mac OS 9 Unterstützung aufgeben, sobald REALbasic auf Cocoa umgestellt wird. Mit der Cocoa-Unterstützung werden einige interessante Features Einzug halten, z.B. EditFields mit Mac OS X Rechtschreibkorrektur und der Zugriff auf Framework-spezifische Features wie Core Animation.

Wie geht es jetzt weiter?

Ganz einfach.
Laden Sie es, testen Sie es, und machen Sie sich ein eigenes Bild. Gleichgültig, was andere Ihnen erzählen - am Ende zählt nur Ihre eigene Meinung.