PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : objective c



bluelight
20-03-2005, 18:29
Kennt jemand von euch ein gutes Buch auf deutsch mit dem man objectiv c lernen kann? Ich hab nähmlich nichts gefunden. Vielen Dank schonmal im Vorraus.

mfg
bluelight

chrizel
20-03-2005, 19:45
Ein deutsches Buch zu Objective C gibt es afaik nicht. Leider ist ObjC nur in der Apple/Nextstep/Gnustep Szene aktiv und die Verbreitung auch nicht die groesste.

Das was ObjC so besonders macht sind die sehr geilen Libraries (Cocoa/Nextstep/Gnustep) und nicht die Sprache an sich. Gut, die Sprache ist ein nettes Mittel mit dem dank seiner Dynamik viele Dinge moeglich sind die mit statischen Sprachen wie C++/Java nicht denkbar waeren.

ObjC ist im Grunde nur C mit einer kleinen erweiterten Syntax um Klassen zu definieren, Objekte zu verwenden (Smalltalk like :)) und einem Runtime-System. Ein C-Programmierer mit Kenntnissen in der Objektorientierung lernt Objective C an einem Nachmittag.

Alles was danach kommt sind die Kenntnisse zur Library und das ist es was ObjC letztendlich auszeichnet.

Wenn du also sagst dass du was zu ObjC suchst, musst du auch sagen unter welchem System du etwas machst d.h. Cocoa, Nextstep oder Gnustep. In ObjC ohne solche Libs zu basteln geht auch mit dem was die GCC so mitliefert. Aber dafuer wird man wohl kein Buch finden.

Und wie gesagt, ein deutsches Buch gibt es schonmal gar nicht. (afaik)

ObjC lernt man am besten durch die Apple Doku (englisch)
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/index.html

Wenn Interesse besteht kann ich ja evtl. ein deutsches ObjC Tutorial schreiben.

bluelight
20-03-2005, 20:00
Danke für tips. mir is auch schon ein englisches Buch in die Augen gestochen, aber ich weiß nicht, ob mein Englisch ausreicht. Das Buch hierß: Programming objective C.

mfg
bluelight

peschmae
20-03-2005, 20:36
Das was ObjC so besonders macht sind die sehr geilen Libraries (Cocoa/Nextstep/Gnustep) und nicht die Sprache an sich. Gut, die Sprache ist ein nettes Mittel mit dem dank seiner Dynamik viele Dinge moeglich sind die mit statischen Sprachen wie C++/Java nicht denkbar waeren.

Wie wärs mit einem Beispiel? Ich kenne Objective C nicht.

In Wikipedia steht natürlich was *ggg*

MfG Peschmä

chrizel
20-03-2005, 21:30
Wie wärs mit einem Beispiel? Ich kenne Objective C nicht.
Hier erzaehle ich ein wenig dazu:
http://chrizel.com/archives/2004/08/objc_cocoa.html

Ansonsten hab ich da noch einen recht interessanten Beitrag aus dem Heise-Forum von Kristian Köhntopp:
http://root.chrizel.com/objc.txt

Man koennte das ungefaehr so sehen dass Objective C das macht was Qt mit C++ durch moc teilweise versucht. Naemlich dass Dinge zur Laufzeit verfuegbar sind. (das kommt bei ObjC halt schon von der Sprache her und geht auch viel weiter als Qt, vor allem wird diese Dynamik in Libraries wie Cocoa enorm krass ausgenutzt wie es nur geht)

Gut, auch Java hat sein Laufzeitsystem und die Moeglichkeiten zur Laufzeit viele Infos zu Objekten zu bekommen, aber es ist immer eine Frage der Syntax und der Masse des Codes der damit verbunden ist. (und in wie weit die vorhandenen Libs darauf aufsetzen und es zum "Denken" der Sprache gehoert... bei Java ist die Reflection API halt mehr Mittel zum Zweck denke ich mal, auch wenn ich kein Java-Programmierer bin)

Als ich mir damals Objective C und Cocoa angeschaut habe war ich schon sehr beeindruckt und habe erst dort die Moeglichkeiten einer dynamischen Sprache kennengelernt. Ich persoenlich sehe aber auch in "static typing" Sinn und finde eigentlich Sprachen gut die beide Konzepte verbinden, d.h. es dem Programmierer ueberlassen ob man Typpruefung will oder nicht. Und ich kenne bis jetzt nur zwei Sprachen die das so haben: Objective C und Common Lisp.

Was mir an Objective C noch fehlt ist eine automatische Garbage Collection, dann waere es wirklich ein Traum. Aber wie gesagt ist es leider nur eine kleine C-Erweiterung...

Objective C/Cocoa aber vor allem Smalltalk und Lisp sind halt wirklich so Sachen die man einfach mal gesehen haben sollte auch wenn man ansonsten wo anders programmiert. Ich mache beruflich auch nichts mit diesen Sprachen sondern bin Delphi-Programmierer. Nur man lernt halt ne Menge und "wird ein besserer Programmierer"