Neuling: Carbon oder Cocoa?

M

mike84

Mitglied
Thread Starter
Dabei seit
21.09.2004
Beiträge
74
Reaktionspunkte
0
Hallo
Ich möchte in Mac OX zu programmieren anfangen pepp
Am liebsten wäre mir C oder C++.
Nur weiß ich nicht, ob ich Carbon oder Cocoa lernen soll :(
Ich möchte SDI/MDI Applikationen entwickeln (bis jetzt hab ich MFC programmiert. Z.B. möchte ich http://mike.dev-geeks.org/screen.gif in Mac OS schreiben).
Ich hab mir die beiden Bücher von Oreilly angeschaut. Anhand der Samples konnte ich feststellen, dass man am Ende der Bücher nur sehr "wenig" kann :confused:
Welche Sprache ist für SDI/MDIs besser?
Kann mir wer ein gutes Buch empfehlen?

Danke im Voraus,
mfg michael
 
Carbon ist für OS9/OSX-Applikationen. Würde ich nicht machen.

Cocoa ist die API (API, kein Sprache) für native OSX-Anwendungen. Daher diese.

Mit C oder C++ kommst du damit aber nicht weit. Um für Cocoa zu proggen musst du dir Objective-C angucken. Du programmierst dann nach der NeXTStep-Methode.

Es ist so gesehen ein anderes Konzept der Programmierung. Musst du mal gucken. Je nach deiner bisherigen Erfahrung ist es schon ein größerer Umstieg.
 
Hallo nuke
Hmm. Ich kenne leider Objective-C nicht. Ich hab ein paar libs, welche in C geschrieben worden sind. Kann man die dort verwenden? Kann man damit auch ganz normal Systemprogrammierung betreiben? (BSD - POSIX/ANSI)
Hmm. Ich hab gehört Photoshop ist in carbon geschrieben. Kann man in carbon C/C++ proggen?

Danke im Voraus!!!
mfg
 
Hi.

Also C/C++ und Objective-C kann man mischen. Du kannst auch deine Bibliotheken verwenden.

Für systemnahe Routinen würde dann C oder C++ doch mehr passen. Das ist ja auch kein Problem. Oberfläche und Code sind in Cocoa-Applikationen (wenn man es richtig macht) strikt getrennt.

D.h. du kannst auf Schalter-Druck auch eine reine C-Routine aufrufen. Aber die Verarbeitung des Aufrufs muss in Obj-C erfolgen. Objective-C ist für systemnahe Sachen nicht gemacht. Ist ja auch eine objektorientierte Sprache.

Wenn du plattformunabhängige Unix-Programme schreiben möchtest, dann lass lieber die Finger von Cocoa.

Carbon-Anwendungen sind, so wie ich das hier sehe, C-Anwendungen. Aber wie gesagt. Ich würde damit nicht anfangen...
 
Hi nuke
Das hört sich ja schon mal sehr gut an :) Dann werde ich Cocoa probieren. Kannst du mir eventuell ein Buch empfehlen? Ich hab mir bis jetzt nur das Oreilly angeschaut. Am Ende des Buches konnte man einen Dialog mit Radios,Edit und nem Button erstellen :(

Danke,
mfg michael
 
Cocoa nativer?

-Nuke- schrieb:
Carbon ist für OS9/OSX-Applikationen. Würde ich nicht machen.

Cocoa ist die API (API, kein Sprache) für native OSX-Anwendungen.

Ich hoffe, dass jetzt niemand denkt, Cocoa wäre "nativer" und Carbon das "aufgesetzte" API (das unterstelle ich dir nicht, Nuke), dann da liegt man völlig falsch.
Wenn überhaupt ist es eher umgekehrt. Viele Cocoa-Klassen für Threading, Menüdarstellung, Druckdialoge, Audio, Quartz etc. sind einfach nur Wrapper um die entsprechenden Carbon-Funktionen. Cocoa setzt auf Carbon auf. Cocoa ist im Zweifelsfall auch eher langsamer und speicherintensiver als Carbon.
Dennoch ist Cocoa viel schöner, außerdem viel leichter zu lernen.
 
mike84 schrieb:

Cocoa Programming for MacOS X
von Aaron Hillegass
Auflage: 2nd
ISBN: 0321213149

Ein sehr schoener Einstieg in Cocoa. Hat man auch sehr schnell durch, weil sehr viele Bilder drin sind.
 
Hi chrizel
Vielen Dnak für die Buchempfehlung!!!
Bei den addison wesley bücher ist meistens ein link dabei, wo man die Samples saugen kann. Könntets du ihn mir bitte, bitte zu kommen lassen? Dann könnte ich mir die Samples mal anschaun ;)

Danke im Voraus,
mfg
 
hi

http://www.bignerdranch.com/products/cocoa1.shtml
http://www.bignerdranch.com/products/Solutions.tgz

Wenn man das Buch durch hat, hat man schon das wichtigste gesehen:
- Custom Views
- Notification Center
- Forward Invocations
- Undo Manager
- Delegates & Co.
- Archiving

Also wie gesagt, ein schoener Einstieg. Wenn man das durchhat kommt man IMHO auch gut mit der Apple-Doku allein zurecht. Aber fuer den Einstieg ist das Buch wirklich sehr genial - hab es sehr gemocht und ich bin kein Programmier-Anfaenger. Ist ein sehr interessanter Einstieg in eine gute Technologie. (also besser als MFC und solch Zeugs, damit kann man Cocoa nicht vergleichen)

Achja: Du willst MDI programmieren? MDI ist eigentlich schon lange out und verwendet heute keiner mehr. (aus dem Grund gibt es in der MacOS X-Welt auch kein MDI - ausser Eigenentwicklungen wie z.B. bei Qt)

ciao
chrizel
 
Zuletzt bearbeitet:
Hi!
Vielen Dank. Die Simples schauen vielversprechender als jene von Oreilly aus :) Trotzdem werde ich wohl noch das Objective C Buch mit kaufen müssen.

Danke nochmals,
mfg
 
Hallo,

Ich hab mir auch so ein ObjC-Buch gekauft aber jetzt liegt es nur rum. Wenn du gut C programmieren kannst, hast du ObjC an einem Nachmittag gelernt.

Solltest du nicht so gut C koennen (d.h. wenn du keinen K&R zuhause hast ;)), dann kann vielleicht ein allgemeineres Buch da auch ned schaden.

Aber nur zur Info: ObjC ist nur eine relativ kleine Erweiterung von C (C++ ist dagegen ein riesen Brocken), auch wenn die Syntax anfangs etwas komisch ausschaut. (ObjC is halt eine Mischung aus C und Smalltalk; die ObjC Aufrufsyntax kommt von Smalltalk).

ciao
chrizel
 
Hi!
Wer hat Ritchies Buch nicht? :) Ist zwar nicht mehr das aller neueste C Buch - aber eines der Besten ;)

Werd mir das Howo von dev.apple mal durchlesen.

Vielen Dank nochmals für deine Hilfe!!!!
mfg
 
chrizel schrieb:
Cocoa Programming for MacOS X
von Aaron Hillegass
Auflage: 2nd
ISBN: 0321213149

Ein sehr schoener Einstieg in Cocoa. Hat man auch sehr schnell durch, weil sehr viele Bilder drin sind.

ist das Buch nur empfehlenswert wenn man schon C/C+ Vorkenntnisse hat oder auch für Anfänger geeignet. Auf jeden Fall steht wohl bei der Beschreibung das man Vorkenntnisse braucht.

Hab auch noch Bedenken, weil das Buch in Englisch ist ?
 
Mauki schrieb:
ist das Buch nur empfehlenswert wenn man schon C/C+ Vorkenntnisse hat oder auch für Anfänger geeignet. Auf jeden Fall steht wohl bei der Beschreibung das man Vorkenntnisse braucht.

Hab auch noch Bedenken, weil das Buch in Englisch ist ?

Man muss C programmieren koennen und die Grundlagen der Objektorientierung (was ist ein Objekt, was ist eine Klasse, etc.) kennen. Das Buch hat einen Einfuehrungskapitel in ObjectiveC was sich besonders an C/C++ Umsteiger wendet. (und das sollten die meisten sein)

Also C/C++ sollte man schon koennen. Java geht auch, aber da sollte man vorher auch ewas C ueben.

Als Komplettanfaenger wuerde ich das Buch nicht empfehlen. Man muss schon Kenntnisse haben.

Zum Englisch: Das Buch ist sehr einfach geschrieben und sollte eigentlich fast jeder verstehen. Das Buch ist nicht trocken sondern sehr praxisnah und besteht zum grossen Teil aus Bildern/Screenshots. Desshalb ist die Sprache gar nicht mal so das Problem.

Es stuetzt sich halt auch auf XCode und Interface Builder und man lernt auch den Umgang damit kennen.
 
Zuletzt bearbeitet:
Also doch nichts für mich. Gibt es kein Buch, das keine Vorkenntnisse erfordert, auf Cocoa, Objective-C, XCode und den Interface Builder eingeht ?

Achja in deutsch wäre noch nett :D
 
Meines wissens gibt es kein Buch das alles abdeckt und fuer den Komplettanfaenger geeignet ist.

Wie werde ich ein guter Programmierer?
von chrizel :D

Ich werd hier mal kurz erzaehlen wie ich es einem Anfaenger empfehlen wuerde wie er einsteigt. Das ist nur meine Vorgehensweise und andere moegen da anderer Meinung sein.

Programmieren lernen ist ein laengerer Prozess und man sollte schon viel Geduld mitbringen. Und fuer den Einstieg sollte man auch die richtigen Buecher haben. Wichtig ist, dass man sich auch nicht die falschen Buecher kauft sonst verliert man viel unnoetiges Geld! Das ist mir leider frueher schon sehr oft passiert... Also ueberlegt vorher wenn ihr Buecher kauft, ob sie auch wirklich Sinn machen!

Aber meine Meinung ist jetzt, dass jemand der unter MacOS X programmieren will auch Unix-Grundlagen haben sollte. D.h. beim erlernen von C sollte man sich nicht auf XCode & Co. stuetzen weil diese viele Dinge im Hintergrund automatisch machen.

Der erste Schritt wuerde darin liegen sich erst mal mit der Konsole/Shell etwas umzugucken. Da gibts auch Lesestoff kostenlos im Netz:
http://www.galileocomputing.de/openbook/unix_guru/

Ich hab das Buch nicht gelesen aber es scheint zumindest das wichtigste herzuzeigen.

Nachdem man Unix-Guru ist ... :cool: ... sollte man sich einen Texteditor aneignen. In dem obigen Buch scheint es schon einen Kapitel dafuer zu geben. Die wichtigsten Editoren die ein Unix-Guru braucht sind VI(M) und Emacs! Nachdem ich eine laengere Zeit mit VIM programmiert habe bin ich dann doch zu Emacs gewechselt und dieser Editor ist der Hammer. Am besten beide Editoren lernen, aber ich wuerde dann mit dem Emacs programmieren weil er dann auch recht gut fuer das Editieren von mehreren Dateien geeignet ist.

Ok. Emacs und VIM sind bei MacOS X standardmaessig schon dabei.

Im Emacs kann man "C-h t" eingeben, dann bekommt man ein Tutorial. (Ctrl gedrueckt halten, h druecken, Ctrl loslassen und dann einmal t druecken)

Nachdem man seinen Editor beherrscht gehts dann ans Programmieren. (und das sollte man in seinem Editor machen - kompiliert wird dann mit gcc auf der Konsole!)...

Aber wem wirkliche Grundlagen in der Programmierung fehlen sollte vielleicht mit was einfacherem anfangen weil man sich bei C doch noch um recht viele Dinge kuemmern muss. Also wuerde ich mit Python anfangen

Ein Tutorial gibts hier:
docs.python.org/tut/tut.html

Python ist bei MacOS X schon dabei, denn jeder sollte Python programmieren koennen. Teile von google sind z.B. in Python geschrieben worden. Auch bei Apple arbeiten viele Python-Gurus.

Nachdem man jetzt programmiern und schon das eine oder andere machen kann, wuerde ich schoen langsam in C einsteigen. Ein gutes Buch dafuer ist (wie oben schon erwaehnt)
C Programming Language
von Brian W. Kernighan, Dennis Ritchie
Sprache: Englisch
Broschiert - 274 Seiten - Prentice Hall PTR
Erscheinungsdatum: 1. Mai 1988
Auflage: 2nd
ISBN: 0131103628

Das Ding kostet bei Amazon 38,90 Euro und ist ein absoluter Must-Have, denn danach kann man auch wirklich C und hat keine Bildungsluecken mehr. Das Buch ist von den C-Erfindern Kernighan und Ritchie selbst.

Ok. Nachdem man schon ein kleiner Unix-Emacs-Python-C-Guru ist (und vielleicht schon das eine oder andere darin gebastelt hat), kann man sich in richtung grafische Entwicklung unter MacOS X bewegen.

Objective-C lernt ein C-Programmierer an einem Nachmittag hier:
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/

Jetzt kommen wir erst in richtung XCode... :D

Nachdem man Objective-C kann, kann man sich das oben genannte Buch kaufen:
Cocoa Programming for MacOS X
von Aaron Hillegass
Auflage: 2nd
ISBN: 0321213149

Auch dieses Buch ist ein absoluter Must-Have fuer einen Cocoa-Einsteiger und es lohnt sich wirklich.

Nachdem man Unix-Emacs-Python-C-Guru und Cocoa-Fan ist, kann man schon einiges proggen und sich mit der Apple-Doku zu Cocoa beschaeftigen:
http://developer.apple.com/documentation/Cocoa/Cocoa.html

Danach hast du dein Ziel erreicht. Wenn man das ganze durchzieht wird man ein guter Programmierer. Gut - es schadet nicht zwischendurch sich noch ein paar duzend anderer Sprachen reinzuziehen. C++ sollte man dann schon noch koennen... Java, naja... kann man sich mal angucken... Smalltalk und Lisp/Scheme sind pflicht und muss sich jeder gute Programmierer angucken.

Danach steht dem beruflichen und privatem Erfolg nichts mehr im Wege. *GGGG*

Das waere meine Wegbeschreibung was ein langer Prozess ist und da sollte man schon einige Zeit investieren, wenn man es ernst meint. Achja: Das hoert sich vielleicht alles trocken an aber kann auch sehr viel Spass machen!

Wichtig: Gegen Englisch darf man nicht abgeneigt sein. Englisch muss man moegen. Mehr als Deutsch!

ciao
chrizel
 
naja Python hört sich ja nicht schlecht an. Ein Geschäftskollege ist ein absoluter Linix/OpenSource Verfechter und meint auch immer ich soll Python lernen, da man damit alles machen kann. Scheint ja beim Mac auch ganz nützlich zu sein.

Da ich dazu noch fragen hab, dachte ich mir mache ich mal nen extra Thread auf: klick mich
 
Zuletzt bearbeitet:
Interface Builder

wo bekomme ich den Interface Builder her?
 
mcpowerlocke schrieb:
wo bekomme ich den Interface Builder her?

Der ist bei den Developer Tools von Apple dabei (XCode).
 
aha und wie komm ich zu denen?
 
Zurück
Oben Unten