Objective-C lernen - Lohnt sich das noch? Aufwand?

Diskutiere das Thema Objective-C lernen - Lohnt sich das noch? Aufwand? im Forum Mac OS Entwickler, Programmierer.

  1. Mankind75

    Mankind75 Thread Starter Mitglied

    Beiträge:
    1.889
    Zustimmungen:
    375
    Mitglied seit:
    28.06.2005
    Hallo zusammen,

    das freie Projekt "winebottler" wurde schon lange nicht mehr aktualisiert und liefert Versionen von wine aus, die nicht mehr dem neuesten Stand entsprechen.

    Den Programmierer habe ich bereits angeschrieben aber er scheint momentan ziemlich beschäftigt zu sein so dass ich überlege, das Projekt zu forken und selbst neue Versionen zu integrieren. Das Projekt steht unter der LGPL, genauso wie wine selbst.

    Meine Fragen sind:
    • Wie schwer ist es Objective-C zu lernen und welche Literatur sollte man dafür bemühen? Bislang habe ich nur kleine C-Programme schreiben können.
    • Wie ist die Zukunft von Objective-C auf dem Macintosh? Wird es irgendwann zugunsten von Swift eingestellt werden?
    • Könntet ihr einen Blick auf den Sourcecode werfen und abschätzen, wie komplex dieses Programm ist? In welche Themen sollte ich mich einlesen? Verwendet winebottler spezielle Macintosh-Bibliotheken?
    • Gibt es vielleicht Konvertierungswerkzeuge in Xcode um den Objective-C-Code in Swift zu überführen?
     
  2. noodyn

    noodyn Mitglied

    Beiträge:
    10.682
    Zustimmungen:
    2.494
    Mitglied seit:
    16.08.2008
    Hängt vom Programmierer ab. Wie schwer fällt es dir neue Sprachen zu lernen?
    Eigentlich bereits durch Swift abgelöst, neue Apps werden durchaus schon in Swift programmiert, Objective-C wird aber noch länger unterstützt und auch lauffähig bleiben.
    Kannst es ja mal versuchen: https://objectivec2swift.com/#/home
    oder mal dazu lesen: https://medium.com/google-developer...o-swift-googlecast-reference-app-81030ce814ce
     
  3. wegus

    wegus Mitglied

    Beiträge:
    16.296
    Zustimmungen:
    2.945
    Mitglied seit:
    13.09.2004
    Mußte einfach probieren, ist eher leichter als C++ finde ich. Ich habe mich aber mit der Syntax nie ganz anfreunden können, empfand es als ungewohnt zu lesen, das ist aber subjektiv.
     
  4. Porschinger

    Porschinger Mitglied

    Beiträge:
    1.143
    Zustimmungen:
    343
    Mitglied seit:
    04.11.2008
    Eine Computersprache, auch eine umfangreichere objekt-orientierte Sprache wie Objective-C, finde ich nicht schwer zu lernen, sofern man schon einige andere Sprachen kennt.

    Viel viel schwieriger ist das Erlernen der vielen Bibliotheken der Entwicklungsumgebung und die Handhabung der Entwicklungswerkzeuge (Build-Tools, Debugger, ..) und der ganzen Fehler und der unvollständigen Dokumentationen usw. usf.
     
  5. Madcat

    Madcat Mitglied

    Beiträge:
    13.848
    Medien:
    6
    Zustimmungen:
    2.510
    Mitglied seit:
    01.02.2004
    Ich empfehle für Objective C: Objective-C und Cocoa Band 1 und Objective-C und Cocoa Band 2 von Negm-Awad. Beide Bücher sind in deutsch geschrieben und richtig richtig gut. Das andere gute Buch dazu heißt Cocoa: Programming for Mac OS von Aaron Hillegass(unbedingt hierbei die englische Version nehmen, die deutsche Übersetzung ist recht grausig da der Sinn der ein und anderen Passage dabei auf der Strecke blieb).

    Wer schon Kontakt mit C bzw. C++ hatte, für den ist Objective-C nicht schwer zu erlernen. Mir gefällt Objective-C selbst als Version 1 (da muss man mit der Speicherverwaltung noch selbst ran, wenn man nicht aufpasst baut man sich schneller Speicherlecks ein als man Stopp sagen kann) besser als C/C++. Es erscheint mir alles viel strukturierter.

    Ein gutes Forum dazu in deutsch ist www.osxentwicklerforum.de. Da ist zum Beispiel auch der Autor der ersten beiden genannten Bücher aktiv.
     
  6. xentric

    xentric Mitglied

    Beiträge:
    3.887
    Zustimmungen:
    696
    Mitglied seit:
    11.05.2007
    Was zum "erlernen" einer Programmiersprache dazugehört imho. Deshalb würde ich persönlich nie behaupten C++ ist "nicht schwer" zu erlernen, nur weil man nach 2-3 Monaten weiß was RAII, Pointer, ints sind. Obj-C, C++, Java, C# sind imho schon zu erlernen, aber der Zeitaufwand ist nicht gering, eben weil sie große Sprachen sind mit einem großen Framework/API/Bibliotheken.

    Also gut. Vielleicht sollten wir leicht/schwer von (Zeit-)Aufwand trennen hier. Angenommen die nutzen in Wine design pattern wie, Dependency injection frameworks, SOLID principles, usw. dann ist das sicher kein einfacher Unterfangen den Code zu verstehen für jemanden der noch nie richtig programmiert hat und der Aufwand wird schon einige viele Monate sein. Ich hab keine Ahnung wie der oben genannte Wine code aussieht.
     
  7. oneOeight

    oneOeight Mitglied

    Beiträge:
    51.576
    Zustimmungen:
    5.267
    Mitglied seit:
    23.11.2004
    naja, gerade die syntax ist so ein ding, wenn man vorher C/C++ kannte.
    wenn jedes objekt per messaging angesprochen wird mit
    [objekt methode: parameter]
    muss man sich da wirklich erst dran gewöhnen.
    die speicherverwaltung ist auch so eine sache, man muss da schon drauf achten, was man nun wirklich per retain behalten muss, damit die app dann nicht plötzlich unterschiedlich abstürzt.
    ist aber auch ein wenig besser geworden, seitdem Xcode mit der analyze funktion sagt wo speicherlecks sind usw.
     
  8. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
    Da bist Du nicht „up to date“… :p

    Seit ARC weiß kein Neuling mehr was Speicherverwaltung ist.
    Muss man auch nicht, da es grandios funktioniert und sich in Minuten etabliert hat.

    Die „Pleite“ mit GC ist damit in Vergessenheit geraten… :D

    Viele Grüße
     
  9. oneOeight

    oneOeight Mitglied

    Beiträge:
    51.576
    Zustimmungen:
    5.267
    Mitglied seit:
    23.11.2004
    ich lass die app halt noch auf steinalten OS X versionen laufen, sogar noch auf PPC ;)
    da hat es sich noch nicht gelohnt den code auf ARC umzustellen, ist ja auch wieder aufwand retain/release aus bestehenden code zu entfernen.
     
  10. Atalantia

    Atalantia Mitglied

    Beiträge:
    1.175
    Medien:
    3
    Zustimmungen:
    162
    Mitglied seit:
    26.11.2009
    Hab' mal begonnen Obj.C zu lernen. Hab es wegen der Undurchschaubarkeit und mangelnder Dokumentation aufgegeben. Die ganzen Klassen und Properties sind ungenügend und äusserst kompliziert dokumentiert.
     
  11. Mankind75

    Mankind75 Thread Starter Mitglied

    Beiträge:
    1.889
    Zustimmungen:
    375
    Mitglied seit:
    28.06.2005
    Sourcecode befindet sich hier. Im Prinzip geht es halt darum, dass die aktuelle Version einen Release Candidate von wine 2.0 ausliefert und halt schon 3.0 inzwischen erschienen ist. Es ist nicht direkt wine sondern halt mehr die Oberfläche.
    Ich kann ja mal schreiben, wieviel Erfahrung ich in der Programmierung habe: Zum Abitur haben wir in Turbo Pascal programmiert und selbst habe ich noch Kontakte mit bash-Skripten und Perl. Ansonsten habe ich mir mal eine Java-Programmierserie angeschaut, die Programmierung mit BlueJ zeigt (YouTube-Kanal - theskylapse).
     
  12. Madcat

    Madcat Mitglied

    Beiträge:
    13.848
    Medien:
    6
    Zustimmungen:
    2.510
    Mitglied seit:
    01.02.2004
    Ich denke nicht, dass der TE Interesse hat, auf PPCs die Software laufen zu lassen, Objective C 2 und der ARC ist dein Freund heute. Wer will denn heute schon noch alleine die Getter/Setter noch selbst schreiben oder sich wirklich um die Speicherverwaltung Gedanken machen müssen? Außer uns paar wenige ;). Ich benutze auch noch Objective-C 1 eben weil ich will, dass mein Code zumindest unter Tiger noch läuft (und auch auf PPCs ;)). Mit den Retain/Release muss man halt schwer aufpassen, da ist halt noch Grips gefordert und man braucht die Übersicht. Und da ichs gern hab, wenn mein Code auch unter Sierra und Co läuft: Ein Spass ists ja schon zu schaun, welche Funktionen unter Tiger bis hin zum aktuellen macOS noch funktionieren und nicht deprecated sind ;)
    Mir gefielen die Nachrichten besser, mit C++ hab ich heute noch so meine Problemchen, Objective C geht mir deutlich leichter von der Hand.
    Das kann ich gar nicht bestätigen. Ich finde sogar, dass Objective C eine der am besten dokumentierten Sprachen ist, die ich kenne. Da hat Apple (bzw. NeXT) IMO ganze Arbeit geleistet.
     
  13. Mankind75

    Mankind75 Thread Starter Mitglied

    Beiträge:
    1.889
    Zustimmungen:
    375
    Mitglied seit:
    28.06.2005
    PowerPC finde ich schon interessant und habe mir sogar letztens noch einen Dual-G5 gekauft. Allerdings funktioniert wine halt nicht unter PPC und man braucht halt eher Virtualisierung um Windowsprogramme laufen zu lassen.
     
  14. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
    Hehe, geht mir auch so…

    Alte Projekte baue ich nicht um, aber bei Neuen ist ARC einfach der Standard.
    Neue Entwickler merken nicht mal, was sie da für ein Geschenk bekommen haben.

    Meine Meinung zum Thema:

    Du hast die Frage schon "richtig" gestellt. Auf macOS ist die Sache ganz anders zu bewerten, als auf iOS etc.
    Ich kann keine Zahlen benennen, aber ich bin in der "Szene" sehr aktiv. "Alte" Entwickler, die derweil den Großteil auf macOS ausmachen, nehmen Swift nicht an.
    Nahezu alle die ich kenne, inklusive mir, schreiben sogar neue Projekte einfach in Objective-C weiter.
    Reisserische Frage ist "Warum sollte ich in Swift schreiben?". Es gibt kein durchschlagendes Argument, das in einem Satz zu begründen ist.
    Pro-Argumente lassen sich auch gleich auch mit einem Kontra ausgleichen.
    Zumal es viele Entwickler auf macOS gibt, die auch "systemnahe Komponenten" schreiben. Hier bewegt man sich viel in C und ist dann mit Objective-C noch näher am Geschehen.

    Auf iOS etc. ist es hingegen anders rum. Da hat Swift sofort Anklang gefunden. Der Grund ist aber nicht die Sprache selbst, sondern die neu erschlossene Zielgruppe.
    Es ist einfach "in" mal eine App programmiert zu haben und da nimmt man halt das "Neuste". Wahrscheinlich (nur mal als These) haben die meisten iOS-Entwickler noch nie was für macOS entwickelt.
    Die meisten iOS-Entwickler kommen nicht von macOS und sind keine "alten Hasen".

    Das lässt sich sogar über die Mac-Verkäufe nachvollziehen.
    Dadurch, dass sich iOS-Anwendungen nur auf macOS mit Xcode entwickeln lassen wurden auf einmal unzählige Leute, neue Entwickler, an macOS herangeführt.
    Die dann über iOS zu macOS kamen schreiben dann auch in Swift. Aber die meisten iOS-Entwickler haben gar keinen Bedarf eine macOS-Anwendung zu schreiben.

    Jemand der sehr fit in anderen objektorientierten Sprachen ist, der wird problemlos schnell in Objective-C einsteigen können.
    Die Barriere ist nicht die Sprache, wie viele immer behaupten, sondern das mangelnden (null, nil) Wissen an Umfang und Möglichkeiten der Bibliotheken/Frameworks.
    Das wurde von @Porschinger absolut richtig gesagt und das ist der einzig springende Punkt an der gesamten Thematik.
    Ob Swift oder Objective-C ist absolut unerheblich, da Du mit beiden Sprachen auf das gleiche Repertoire an Funktionalität zugreifst.
    Wenn Du ein Fenster bauen möchtest, dann geht das mit beiden Sprachen absolut gleich. Und ein Swift-Fenster ist nicht besser oder schlechter, als ein Fenster mit Objective-C.

    Gibt es mittlerweile. Aber ich habe keine Erfahrung damit. Meiner Meinung nach besteht der Bedarf nicht.
    Solange Apple auch noch Tutorials in Objective-C schreibt mache ich mir keine Sorgen um die Zukunft von Objective-C.

    Ich kann mich der Empfehlung anschließen. Die Bücher von Amin waren für mich damals der perfekte Einstig.
    Auch die Kurse (ich weiß gar nicht, ob er sie heute noch gibt) haben mich auf die Spur gebracht.

    Mit so einem Buch lernt man die Zusammenhänge kennen. Was sind Protokolle, wie funktionieren Delegates etc.
    Programmiersprache ist dann wieder nur der Schraubenschlüssel. Entscheidender ist das zu entwickelnde Verständnis, das für die Entwicklung entscheidend ist.
    Wichtigster Teil ist die Einführung in die Frameworks, insbesondere Cocoa.

    Zusammengefasst:

    Objective-C oder Swift, egal… :D

    Viele Grüße

    PS: Einige werden anderer Meinung sein.
     
  15. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
    Da muss ich leider voll widersprechen…
    Natürlich gibt es immer Luft nach oben, aber die Dokumentation ist schon als sehr gut zu bewerten.

    Viele Einsteiger kritisieren die Dokumentation, weil sie eben gar keine Kenntnisse im Framework haben.
    D.h. die Dokumentation ist eben kein Tutorial. Und das verwechseln die meisten.

    Viele Grüße
     
  16. Madcat

    Madcat Mitglied

    Beiträge:
    13.848
    Medien:
    6
    Zustimmungen:
    2.510
    Mitglied seit:
    01.02.2004
    Wenn du auch auf oder für PPC entwickeln willst dann schau dich nach Objective-C und Cocoa: Programmieren unter Apple Mac OS (2. Auflage) um. Das ist auch Negm-Awad und Rodewig, der Vorgänger der oben genannten Buchserie. Das behandelt Objective-C 1 was man für PPCs braucht.
    Ja, das dürfte die größte Hürde sein. Die Dokumentation ist nun mal ein Nachschlagewerk und kein Buch oder Tutorial. Die Dokumentation durcharbeiten ist sehr viel Fleißarbeit, viel viel mehr als ein Buch durchzuarbeiten.
     
  17. Mankind75

    Mankind75 Thread Starter Mitglied

    Beiträge:
    1.889
    Zustimmungen:
    375
    Mitglied seit:
    28.06.2005
    Ich habe mir das Buch eben über medimops bestellt. Hatte noch andere Bücher auf der Wunschliste und für 3 Euro kann man nicht viel falsch machen.
     
  18. Atalantia

    Atalantia Mitglied

    Beiträge:
    1.175
    Medien:
    3
    Zustimmungen:
    162
    Mitglied seit:
    26.11.2009
    Kannst Du uns sagen wo man eine gute Documentation findet?
     
  19. little_pixel

    little_pixel Mitglied

    Beiträge:
    4.453
    Zustimmungen:
    1.282
    Mitglied seit:
    06.06.2006
  20. Madcat

    Madcat Mitglied

    Beiträge:
    13.848
    Medien:
    6
    Zustimmungen:
    2.510
    Mitglied seit:
    01.02.2004
    In Xcode selbst. Gibt nen Menüpunkt der da lautet "Help" mit dem Unterpunkt "Developer Documentation". Und wie es schon gesagt wurde: Das ist ein Nachschlagewerk, kein Tutorial (wobei in der Documentation auch Tutorials, besser Beispiel-Code, sind) und auch kein Buch, dass den Leser an die Hand nimmt und Step-for-Step Objective-C beibringt. Da muss sich der User selbst durchkämpfen was mit viel Lesen, auch der Querverweise, einher geht. Und ja, es ist alles in Englisch. Wer sich das nicht zutraut, es gibt auch jede Menge Tutorials im Netz (z.B. Xcode for Beginners, oder etwas älter Become an Xcoder) die einem den Einstieg erleichtern und letztendlich die schon von mir genannten Bücher.
    Auf keinen Fall, ich habs damal für rund 50 Euro gekauft und ja, ich gebs auch nicht her. Von der 3. Auflage (also Objective-C und Cocoa: Band 1) hab ich sogar das 1. Buch gekauft direkt von Negm-Awad, mit persönlicher Widmung ;):

    IMG_1835.jpg
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite weitersurfst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...