Ergebnis 1 bis 4 von 4

Thema: Objective-C: Eure Erfahrungen

  1. #1

    Objective-C: Eure Erfahrungen

    Ich wollte nur mal so fragen, ob es hier ein paar Leute gibt, die sich mit Objective-C beschäftigt haben.
    Mir gefällt es ganz gut. Natürlich ist die Sprache etwas Pointer-lastig, da sie ein Superset von C ist (C# geht genau den entgegengesetzten weg, was Pointer angeht), aber ich finde die Lesbarkeit ansonsten ganz gut, da man motiviert wird, ziemlich ausdrucksstarke Beschreibungen auszuwählen. Sowas setzt natürlich eine starke IDE voraus, um Fehler zu minimieren, aber es gibt ja zum Glück Xcode. Das größte Problem ist, dass es leider nur für den Mac verfügbar ist, aber Microsoft macht es mit Visual Studio ja nicht anders. Der Umstieg von Java oder C++ ist gar nicht so schlimm, wie man es am Anfang denken würde, wenn man sich Beispielcode anschaut. Leider ist die Qualität der Literatur noch nicht so hoch wie bei diesen Sprachen. Wenigstens gibt es von Apple eine gute Dokumentation der Klassen, die das wett macht.

    Was denkt ihr davon? Was waren eure Erfahrungen?

  2. #2
    Objective-C macht nur auf den Apple-Plattformen wirklich Sinn, auf denen ist’s aber vermutlich das beste, was man tun kann. Ich bezweifle, dass es eine signifikante Anzahl an Objective-C-Programmierern gibt, die nicht mit Apples Cocoa-Frameworks (bzw. dem zugehörigen Kram wie Cocoa Touch, Foundation, etc) arbeiten. An die Syntax der Sprache muss man sich natürlich etwas gewöhnen (und auch mehr als beim Wechsel zwischen vielen anderen C-artigen), und an die APIs sowieso, die funktionieren teilweise doch etwas anders als in vielen anderen Sprachen. In sich sind die allerdings ziemlich logisch und konsistent, wenn man sich da einmal reingedacht hat, ist meiner Meinung nach der größte Kritikpunkt, dass es teilweise extrem viel Schreibarbeit ist (eben weil die APIs relativ „wordy“ sind) – aber eher bei Methoden- und Konstantennamen, nicht so wie bei Java, wo gefühlt jeder Kleinscheiß in eine Klassenstruktur mit 5 Layern verpackt wird. Das ist natürlich ein extrem subjektiver Kritikpunkt (sowohl bei Objective-C als auch bei Java), ich les auch oft genug von Leuten, dass sie das so mögen, wie Objective-C es macht, weil sofort klar ist, was welches Argument tut.

    Von der Pointer-Lastigkeit, die du ansprichst, merkt man meiner Meinung nach nicht viel, weil man eigentlich nur mit den OOP-APIs arbeitet und die das ja ganz gut abstrahieren/verstecken – dass ich Pointer benutze, merke ich im Wesentlichen bei der Deklaration von Variablen. Klassisches C-artiges Rumschieben von Pointern auf structs oder void-Pointern hat man ja extrem selten, malloc- und free-Calls eigentlich auch. An dieser Stelle möchte ich noch allen, die keine älteren Plattformen unterstützen müssen, raten, so schnell wie möglich ARC zu benutzen, damit fällt effektiv der komplette memory managment-Kram weg, was die Sprache bedeutend angenehmer macht (und den Code deutlich uncluttered).

    Dokumentation finde ich nicht sonderlich schwierig – inzwischen gibt’s doch einige an Einsteiger gerichtete Bücher (gerade für die iOS-Plattform), Apples Dokumentation ist relativ oft recht gut, und im Zweifelsfalle hilft Stack Overflow. Die Community ist wegen iOS generell sehr gewachsen, pre-App Store gab’s da deutlich weniger Leute und Resourcen.

  3. #3
    Ich stimme dir zu was die APIs angeht. Der Aufbau basiert auf einer anderen Idee. Das Problem mit der Schreibarbeit sehe ich nicht so streng. Da ja fast jeder Xcode nutzt und die Intelligente Vervollständig sehr gut ist, kann man selbst variablen wie isInTheMiddleOfSentenceButThereIsStillNoAldinsysStringInTheText sehr flott schreiben. Dadurch dass es lesbar ist, fällt die etwas erhöhte Menge an Code nicht so ins Gewicht.
    Das man Pointer nutzt, mag man zwar beim Schreiben von Code nicht so stark merken, aber spätestens beim Debugging fällt es auf, dass man es mit Pointern auf die Objekte und nicht mit den Objekten direkt zu tun hat. ARC übernimmt aber endlich den ganzen nervigen Kram, der mich bei Pointern immer störte. Memory Leaks tauchen bei mir zum Glück nur sehr selten auf.

  4. #4
    Ich muß sagen, daß ich ObjCs Funktionsnamen viel angenehmer finde als die in Java, einfach wegen der expliziten Parameterbenennung. Wenn man ObjC-Funktionsnamen als Sätze auffasst, anstatt als Verben wie in anderen Sprachen, machen sie viel Sinn.

    Vergleichen wir mal, wie ein Beispielaufruf in verschiedenen Sprachen aussehen würde:
    Code (Objective-C):
     
    [nukeController launchMissile:missile atCity:city withPALKey:key]
     

    Code (Java):
     
    nukeController.launchMissileAtCityWithPalKey(missile, city, key)
     

    Code (C):
     
    launchNuke(controller, missile, city, key) // So würden die meisten C-Programmierer es wohl schreiben.
     


    Ich finde ObjCs direkte Zuweisung doch recht angenehm.


    Und Zustimmung bei "die APIs sind gut durchdacht". Objective-C hat eine hervorragende, gut dokumentierte API (zumindest, wenn man XCode benutzt).

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •