Durch einen Kundenauftrag (Entwicklung einer spezifischen Bildverarbeitungssoftware ) wurde ich vor einigen Wochen “genötigt” mich mit der Programmierung auf dem Mac (OS X – 10.6) anzufreunden. Bisher hatte ich mit dem Mac eher etwas distanziertere Erfahrungen noch aus Zeiten der Cross-Plattform CD-ROM-Entwicklung mit Macromedia Director. Aber auch bei aktuellen Webprojekten gilt es natürlich die Mac-User zu berücksichtigen
(Und ich möchte hier nicht verschweigen, dass ich meinen APPLE II geliebt habe!)
Also habe ich mir kurzerhand einen Mac angeschafft, Xcode 4 besorgt und losgelegt.
Das erste Hinderniss war, dass es bis dato nur Literatur zu Xcode 3 gibt. Die Oberfläche (und die automatische Codegenerierung) unterscheidet sich an einigen Punkten stark. Also habe ich sowohl mit Fachbüchern (meine persönlichen Buchempfehlungen finden sich ganz unten) als auch mit der Apple-Doku hantiert. Dazu bin ich dankbarer Leser diverser Foren und Mailing-Listen geworden.
Die Besonderheiten von Objective-C selbst (z.B. Methodenaufrufe über die Eckige-Klammer-Schreibweise) konnten mich nicht so richtig schocken. Wer Lingo und Actionscript 1 gesehen hat, ist “lustige” Sprachen gewohnt
Anfangs war ich schier erschlagen von den unendlichen Weiten der OS X-API. Es macht das Programmieren eben nicht einfacher, wenn man erst eine halbe Stunde lang Tutorials durcharbeiten muss um rauszufinden, wie man möglichst einfach zwei NSStrings miteinander verkettet.
Das Gefühl, dass alles sehr mühsam und extrem umständlich ist, ist leider bis heute geblieben. Natürlich lese ich auch die Objective-C Propheten, die die Mächtigkeit und Klarheit der API loben.
Ich bin mir sicher, dass man mit Xcode ein tooles Entwicklungstool bekommt (dazu noch fast umsonst). Aber die Lernkurve ist doch sehr lang.
Und für jemanden, bei dem Zeit rar ist (dürfte wohl auf die meisten Freelancer zutreffen), ist diese Lernkurve ein echter Feierabendkiller. Dabei bin ich sogar hochmotiviert und total begeistern mit welchem Speed meine Grafikroutinen dank C-Power rennen.
Aber ich sehe auch einen Bruch in der “Klarheit” von Objective-C. Die Low-Level-Routinen zur Bildmanipulationen “ticken” wieder anders als die High-Level-Klassen. Und der Aufwand um ein simples Bild auf die Benutzeroberfläche zu bringen, ist eigentlich eine Zumutung.
Sehr deutlich wurde mir dies, als ich heute nach Alternativen recherchiert habe und über das Corona SDK stolperte. Dort gibt es einen sehr schönen Code-Vergleich zwischen Corona und Objective-C – der Corona-Code zur Anzeige eines Bild umfasst eine Zeile. Das gleiche Vorhaben in Objective-C benötigt über 200 Zeilen Code.
Sicher – der Vergleich ist ein wenig “aufgebauscht”. Aber er gibt mein Gefühl gut wieder.

Und bei all dem Aufwand gilt es noch zu beachten, dass man mit Objective-C eben “nur” für OS X und iOS entwickeln kann. Andere Plattformen bleiben außen vor. Den Luxus kann man sich eigentlich nur leisten, wenn man genug Kunden hat, die genau nur diese Plattformen betrachten. Dann mag sich die Kraft von Xcode und Objective-C voll entfalten können und der Entwicklungsaufwand wird durch absolut native Anwendungen und Apps belohnt. Power Pur!
Ich werde wohl mein Kundenprojekt mit Objective-C zu Ende führen und mir dann mal Corona anschauen 
Meine Buchempfehlungen für den Einstieg in die Programmierung unter OS X – man sollte aber noch die aktualisierte Version für Xcode 4 abwarten!
Cocoa Programming for Mac OS X
Cocoa-Programmierung: Der schnelle Einstieg für Entwickler
Recent Comments