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

Mankind75

Aktives Mitglied
Thread Starter
Dabei seit
28.06.2005
Beiträge
2.769
Reaktionspunkte
829
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?
 
Wie schwer ist es Objective-C zu lernen
Hängt vom Programmierer ab. Wie schwer fällt es dir neue Sprachen zu lernen?
Wie ist die Zukunft von Objective-C auf dem Macintosh?
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.
Konvertierungswerkzeuge
Kannst es ja mal versuchen: https://objectivec2swift.com/#/home
oder mal dazu lesen: https://medium.com/google-developer...o-swift-googlecast-reference-app-81030ce814ce
 
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.
 
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.
 
  • Gefällt mir
Reaktionen: medeman
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.
 
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.

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.
 
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.

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.
 
  • Gefällt mir
Reaktionen: wegus
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
 
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

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.
 
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.
 
Ich hab keine Ahnung wie der oben genannte Wine code aussieht.
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.
Hängt vom Programmierer ab. Wie schwer fällt es dir neue Sprachen zu lernen?
[...]
Kannst es ja mal versuchen: https://objectivec2swift.com/#/home
oder mal dazu lesen: https://medium.com/google-developer...o-swift-googlecast-reference-app-81030ce814ce
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).
 
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.
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.
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.
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.
 
  • Gefällt mir
Reaktionen: Loki M
Ich denke nicht, dass der TE Interesse hat, auf PPCs die Software laufen zu lassen
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.
 
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:

Wie ist die Zukunft von Objective-C auf dem Macintosh? Wird es irgendwann zugunsten von Swift eingestellt werden?

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.

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.

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 vielleicht Konvertierungswerkzeuge in Xcode um den Objective-C-Code in Swift zu überführen?

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.

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

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.
 
  • Gefällt mir
Reaktionen: Porschinger, Madcat und Mankind75
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.
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
 
  • Gefällt mir
Reaktionen: wegus
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.
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.
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.
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.
 
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.
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.
 
...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.
Kannst Du uns sagen wo man eine gute Documentation findet?
 
Kannst Du uns sagen wo man eine gute Documentation findet?
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.
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.
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
 
  • Gefällt mir
Reaktionen: Mankind75
Zurück
Oben Unten