OCUnit & Cocoa

Dec 30, 2009 21:33 · 517 words · 3 minute read mac programmieren

Bisher habe ich auf (fast) jeder Plattform ein paar Programme geschrieben. Am besten bisher gefiel mir Java - hier ist echt viel unterwegs, was nachdenkt, und inzwischen funktioniert der “write-one-run-anywhere”-Ansatz.

Jetzt Mac.

Sehr gerne würde ich auf dem Mac mit Python entwickeln. Aber das lässt das iPhone aussen vor, und das nervt. Gerne würde ich C# benutzen, ich mag die Sprache und ein paar ihrer Konstrukte (LINQ, z.B.) richtig gerne. Aber das gibts zwar für das iPhone, kostet aber Geld, und ist irgendwie … komisch. Für OS X selbst gibts das net, oder nur mit ungenügender Anbindung an Cococa. C++ scheidet aus, ich hasse die Sprache, seitdem ich Garbage Collection kenne. C ebenfalls - das ist was für Kernel, mal abgesehen von der GAR NICHT vorhandenen Cocoa-Anbindung. Gerne würde ich mit Java entwickeln. Aber Java auf dem Mac … oh, ne, lieber nicht. Das Apple Java überjaupt portiert hat (ja, auf dem Mac macht das Apple persönlich!) ist schon ein kleines Wunder. iPhone? Cocoa? Mit Java? Nö. Lieber nicht.

Also mal in XCode geschaut, und ein bisserl Objecitve-C durch mein Hirn gelotst. Und mal mit einem kleinen Projekt angefangen. Hier meine ersten Eindrücke.

Pro:

  • XCode bietet wirklich alles, was man als IDE braucht.
  • Objective-C hat einige wirklich schöne Sprachkonstrukte (Generatoren für Eigenschaften, Garbage-Collection)

Contra:

  • Unit-Testing mit Objective-C ist eine Qual. Die Unit-Tests sind erst einmal nicht ausführbar!! Man kann also seinen Unit-Test-Code nicht mit dem Debugger durchsteppen, die Tests finden zur BUILD-Zeit statt! Was ist das denn für ein Schei*?? Okay, hier steht, wie es doch geht, und das ist … schlichtweg … ungalublich … BESCHISSEN!!
  • Objective-C ist eine mitteilungsbedürftige Sprache. Das ist soooooo lästig - man kann diesen Code lesen wie ein Buch, und man muss halt auch entsprechend ein Buch schreiben für ein Programm. Es muss ja nicht gleich Perl sein, aber ein Mittelweg wäre nett.
  • XML Parsing … oooooh, ich will Java zurück. Hier muss Apple MASSIV nachbessern - ein Binding-Framework wäre nicht nur angebracht, sondern schlicht notwendig.
  • Die Tastaturbelegung vom Mac ist beschissen für Objective-C coding, überhaupt ist die Objective-C syntax mit den ganzen “[” und “]” total daneben. Man tippt sich dämlich.
  • Bibliotheken, freie tools, etc. - XCode bietet alles, aber wenn man mehr braucht, naja, die “Gemeinde” ist nicht besonders groß, oder präsent. Man muss sehr suchen, bis man - falls überhaupt - etwas findet.
  • Oh was vermisse ich Spring, oder einfach ein paar odentliche Frameworks, mit denen man dependency injection ordentlich machen kann.
  • Plattform-unabhängige Entwicklung (oder zumindest nicht 100% plattformabhängig) ist nur über C/C++ möglich. Zum kotzen. Von Python abgesehen, aber dann ists nix mit iPhone.

Fazit: Ich habe vor, weiterzumachen. Ich habe eine kleine Idee, und schauen wir mal, wie sich das machen lässt. Manches (vieles!) verstehe ich auch noch nicht, ein paar Konzepte sind mir total fremd, und ich Cocoa kann so viel mehr als das, was ich schon weiß. Dennoch, wenn man von Java kommt, wo es eine idiotisch große Community mit hunderten freien Bibliotheken und Projekten gibt, dann ist Objective-C einfach tiefste und hinterste Provinz. Daran ändert auch die Tatsache, dass Cocoa geil ist, absolut nichts.