Cocoa und Object-C lohnt sich das noch ?

C

CaT

Aktives Mitglied
Thread Starter
Dabei seit
15.09.2003
Beiträge
474
Reaktionspunkte
0
Hallo zusammen

Also ich bin langsam mich etwas am in OS X einzuleben. Und es gefällt mir wirklich sehr. Jetzt möchte ich eigentlich gerne wieder etwas programmieren und zwar möchte ich mich auf eine Sprache fixieren und die wirklich vertieft lernen. Bis jetzt hab ich viel mit C und Java gemacht.
Nun das ganze Cocoa sieht doch sehr interessant aus. Mir gefällt der hintergrund von C weil man da auch die Möglichkeit hat wirklich in die tiefe des Sytems zu gehen. Und mit dem Interface Builder kann man ja extrem schnell was gutes machen.

Jetzt weiss ich nicht ob ich mich in Java weiterentwickeln soll oder ob ich mit Objective-C und Cocoa beginnen soll. Das wäre dann halt nur für den Mac. Und meine frage ist, wenn Apple mit Intel Hardware rauskommt, wird dann das ganze immernoch so weitergehen ?
Denn jetzt hab ich das Gefühl, dass Cocoa mit Objective-C schon ziemlich gefördert wird von Apple. Und es würde natürlich nicht sinn machen, wenn ich mich da reinlebe und dann ist's plötzlich nichts mehr.

Ich wäre froh um Tipps und Ratschläge von euch zu diesem Thema.

Grüsse
CaT
 
Öhm, nur wegen Intel wird sich an Cocoa nicht viel ändern. Bleibt weiterhin.
 
Ja jetzt wirds ja sehr gepusht sehr ich das richtig ?
Und das es nur mit OS X geht ist auch korrekt ?

Und würdet ihr mir sowas empfehlen ? Oder soll ich mit Java weitermachen ? Ich hab halt nur 1 Ibook und auch noch x86 mit Linux bzw windows und da wär's halt dann schon etwas Applelastig das Cocoa. Aber es scheint mir wirklich optimal für OS X zu sein oder seh ich da was falsch ?
 
CaT schrieb:
Ja jetzt wirds ja sehr gepusht sehr ich das richtig ?
Und das es nur mit OS X geht ist auch korrekt ?

Jups. Ist Korrekt. Früher oder später solls dann wohl das alleinige System werden. Carbon soll irgendwann nicht mehr weiterentwickelt werden und dann später ganz raus fliegen. Fragt sich nur wann.

Cocoa bleibt dann bestehen.

Wenn du so ähnlich unter Linux programmieren möchtest, musst du dir GNUStep angucken:

http://www.gnustep.org/

Ob du Java nehmen solltest, weiß ich nicht. Je nachdem was du machen willst, bzw. ob es auch auf anderen Plattformen laufen soll.
 
Objective-C selbst lässt sich mit dem entsprechenden Compiler eigentlich auf jedem System verwenden, der GCC kann afaik auch unter Linux ObjC kompilieren. Rein vom Wissen her ist es sicher kein Fehler es zu lernen, wenn man eine Programmiersprache mal richtig kann fällt es einem später auch leichter eine weitere zu lernen.

Cocoa gibt es natürlich nur unter Mac OS X und das wird es noch mindestens so lange geben wie es OS X gibt. Wenn Du Software für Mac OS X schreiben möchtest ist Cocoa eigentlich die beste Wahl, da man damit die OS X Technologien am besten ausnutzen kann.

Wenn Du aber nicht objektorientiert programmieren möchtest wäre auch Carbon eine Möglichkeit. Aber da Du ja Java erwähnst nehme ich an das Du objektorientiert programmieren möchtest.

@Nuke:
Warum sollte Carbon wegfallen?
 
Zuletzt bearbeitet:
-Nuke- schrieb:
Da musst du Apple fragen, nicht mich.

Schon klar, aber wann und wo hat Apple behauptet das es wegfallen soll? Carbon ist doch genauso nativ OS X wie Cocoa, nur ist Cocoa eben objektorientiert. Warum sollte das wegfallen?
 
Magicq99 schrieb:
Carbon ist doch genauso nativ OS X wie Cocoa, nur ist Cocoa eben objektorientiert. Warum sollte das wegfallen?

Es gibt schon jetzt Dinge, für die es in Carbon (AFAIK) keine Interfaces gibt. Im Moment wird die HIToolbox zwar noch weiterentwickelt, aber so richtig neue Sachen gibt's in Carbon doch nicht.

Im Moment gibt es wiederum Sachen, für die muss ich Carbon nehmen (setzen von Ordner Flags z.B., oder QuickTime). Aber langsam werden dafür auch Interfaces in Cocoa gebastelt.

Gruss

Alex
 
Carbon ist ursprünglich als Hilsframework zur Portierung von OS9 Anwendungen entwickelt worden. Ursprünglich wollte Apple eigentlich, daß alle Anwendungen schnell auf Cocoa portiert werden um nicht 2 Frameworks nebenher pflegen zu müssen. Dagen haben sich aber vor allem die großen gewehrt (MS, Adobe, Quack) und letztendlich hatte Apple klein bei gegeben und beide Frameworks gleichwertig weiter entwickelt. Nun durch die Umstellung auf Intel und der Tatsache, daß die Portierung der OS9-Anwendungen praktisch abgeschlossen ist, kann man davon ausgehen, daß Apple die Weiterentwicklung von Carbon langsam aber sicher auslaufen lassen wird. MS und Adobe haben ja bereits signalisiert, daß ihre Anwendungen schon soweit umgestellt sind, daß diese bereits beim Intel-Start als Universal Binary vorliegen werden. Ich gehe davon aus, daß nach der Einstellung der Profuktion von PPC-Basierten Macs einfach kein Bedarf mehr an OS-9 Kompatibilität geben wird. Aber das ist noch ein paar Jahre hin. :cool:
 
Ich glaube nicht das Carbon nur dafür entwickelt wurde. Portierte OS 9 Anwendungen sind natürlich automatisch Carbon, weil es eben unter OS 9 nichts mit Cocoa vergleichbares gab.

Aber nur deswegen zu sagen Carbon wäre nur für den Umstieg von 9 auf X gedacht? Auf Apples Developer Seiten steht jedenfalls nichts darüber das Carbon nur dafür gedacht ist. Immerhin beschreibt Apple Carbon so:
Apple's Carbon is the essential building block for writing both C and C++ applications that run on Mac OS X. You gain all the benefits of Mac OS X while using some of the simplest yet most capable C interfaces available. This combination makes it easier than ever to create world-class applications for this world-class operating system.
http://developer.apple.com/carbon/overview.html

Ich glaube nicht das Apple beabsichtig Carbon irgendwann einzustellen, zumindest liest man nirgendwo etwas darüber. Und auf den Developerseiten müsste es ja zumindest irgendwo erwähnt werden falls Carbon in Zukunft nicht mehr erweitert wird.

Carbon & Cocoa sind eben die zwei nativen APIs unter OS X, die eine traditionelles C und C++, die andere Objective-C. Warum sollte man auf die eine verzichten?

Die Brücke von OS 9 zu X war ja eher Classic. Und das wird mit dem Umstieg auf Intel wegfallen. Eine OS 9 Anwendung wird durch vollständiges portieren auf X zu einer Carbon Anwendung und ist damit voll OS X nativ und sollte auch auf den Intel Macs lauffähig sein.

Und Wikipedia sagt das hier:
Carbon is often seen as a transitional or legacy technology, but in fact it is unlikely that large legacy codebases (eg, Adobe Photoshop, etc) will be completely rewritten for Mac OS X, and so it will necessarily remain a core part of the OS X operating system indefinitely. In addition, Cocoa relies on Carbon for some of its lower level services, and some services that don't fit the Cocoa design approach only have Carbon APIs.
http://en.wikipedia.org/wiki/Carbon_(API)
 
Zuletzt bearbeitet:
Magicq99 schrieb:
Ich glaube nicht das Carbon nur dafür entwickelt wurde. Portierte OS 9 Anwendungen sind natürlich automatisch Carbon, weil es eben unter OS 9 nichts mit Cocoa vergleichbares gab.

Aber nur deswegen zu sagen Carbon wäre nur für den Umstieg von 9 auf X gedacht? Auf Apples Developer Seiten steht jedenfalls nichts darüber das Carbon nur dafür gedacht ist. Immerhin beschreibt Apple Carbon so:

http://developer.apple.com/carbon/overview.html

Ich glaube nicht das Apple beabsichtig Carbon irgendwann einzustellen, zumindest liest man nirgendwo etwas darüber. Und auf den Developerseiten müsste es ja zumindest irgendwo erwähnt werden falls Carbon in Zukunft nicht mehr erweitert wird.
Wie gesagt, daß war Apples ursprünglicher Plan und Carbon diente eben vorwiegend OS9 Awendungen zu portieren. Hier ein Zitat aus Deinem Link von der Developer Beschreibung "f you are already familiar with a C/C++ API, either on another platform or on Mac OS 9 and earlier, Carbon simplifies porting your application to Mac OS X."
Magicq99 schrieb:
Carbon & Cocoa sind eben die zwei nativen APIs unter OS X, die eine traditionelles C und C++, die andere Objective-C. Warum sollte man auf die eine verzichten?
Es werden viele Sachen verschwinden, die zu Kompatibilitätswahrung mit OS9 dienten.
Magicq99 schrieb:
Die Brücke von OS 9 zu X war ja eher Classic. Und das wird mit dem Umstieg auf Intel wegfallen. Eine OS 9 Anwendung wird durch vollständiges portieren auf X zu einer Carbon Anwendung und ist damit voll OS X nativ und sollte auch auf den Intel Macs lauffähig sein.
und nein Classic war nicht die Brücke. Hätte es MS office, die Adobe suite und Quack nur unter Classic gegeben, wäre OSX nie so erfolgreich geworden. Eine Carbon Anwendung ist nur native auf Intel Hardware, wenn diese mit der Mach -o Option kompilierbar ist. Nich bei allen Carbonanwendungen ist dies machbar und dies Carbon Anwendungen müssen mit Rosetta emuliert werden.
:p
 
Carbon CFM ist die Brücke zu Mac OS 9. Die meisten großen Applikationen, wie Adobe CS, M$ Office etc., laufen noch unter CFM und sind im alten Mac-PowerPC-Format PEF kompiliert. Das wird es auf Intel nicht mehr geben. Dort gibt es nur noch Carbon im Mach-O-Format und Cocoa.

Carbon und Cocoa werden derzeit immer auf dem selben Stand gehalten, sind also absolut gleichwertig.
Das wird sich so bald auch nicht ändern, denn um aus einem Carbon-, einem Mac-OS-9-, einem Windows oder einem X11-Programm ein Cocoa-Programm zu machen, müsste es komplett neu geschrieben werden. Die Mühe macht sich kein kommerzieller Programmhersteller. Programme zu portieren bzw. auf mehreren Plattformen zu pflegen bedeutet mit Carbon weniger Aufwand.
 
._ut schrieb:
Carbon CFM ist die Brücke zu Mac OS 9. Die meisten großen Applikationen, wie Adobe CS, M$ Office etc., laufen noch unter CFM und sind im alten Mac-PowerPC-Format PEF kompiliert. Das wird es auf Intel nicht mehr geben. Dort gibt es nur noch Carbon im Mach-O-Format und Cocoa.
Ja, so meinte ich daß, habe mich vielleicht ein wenig ungenau ausgedrückt.
._ut schrieb:
Carbon und Cocoa werden derzeit immer auf dem selben Stand gehalten, sind also absolut gleichwertig.
Das wird sich so bald auch nicht ändern, denn um aus einem Carbon-, einem Mac-OS-9-, einem Windows oder einem X11-Programm ein Cocoa-Programm zu machen, müsste es komplett neu geschrieben werden. Die Mühe macht sich kein kommerzieller Programmhersteller. Programme zu portieren bzw. auf mehreren Plattformen zu pflegen bedeutet mit Carbon weniger Aufwand.
Das ist zwar richtig, aber mit der Zeit wird der CFM teil verschwinden, da die kompatibilität mit OS9 nicht mehr benötigt wird. ;)
 
Ok, jetzt habe ich es auch verstanden, Danke an euch beide für die Erläuterungen.

Aber es ist doch trotzdem so das Carbon nicht nur eine Brücke ist, sondern genauso nativ wie Cocoa. Wenn man also schon Erfahrung mit einer anderen Programmiersprache als Objective-C oder Java hat ist es kein Fehler Carbon zu verwenden. Darauf wollte ich eigentlich hinaus.

CFM verschwindet, aber nicht Carbon.
 
Zuletzt bearbeitet:
Der CFM-Teil wird in erster Linie verschwinden, weil CFM auf Intel nicht läuft.
(CFM arbeitet AFAIK sehr nahe mit dem PowerPC-Prozessor zusammen bzw. braucht eine Prozessor-Einheit, zu der es beim x86 keine Entsprechung gibt.)

(Vielleicht wird es ja auch Mac-OS-X auf Intel geben, damit ein Grund vorhanden ist, dass CFM verschwindet. Die ganzen Programmhersteller setzten nämlich auch nach 5 Jahren OS X immer noch auf CFM und werden so gezwungen, auf Mach-O zu gehen.)

@ Magicq99
Richtig. Carbon CFM ist die Brücke, Carbon jedoch ist genauso nativ wie Cocoa.
 
Zuletzt bearbeitet von einem Moderator:
Das ist korrekt. Wenn man C++ beherrscht, kann man weiter dabei bleiben, obwohl es dann wiederum mehr Sinn macht, wenn man zB. QT benutzt, welches ja auch auf Windows und Linux läuft. Wenn man ausschließlich Mac Programme schreibt, macht es vielleicht doch Sinn Objective C zu lernen. :cool:
 
Zuletzt bearbeitet:
._ut schrieb:
Die ganzen Programmhersteller setzten nämlich auch nach 5 Jahren OS X immer noch auf CFM und werden so gezwungen, auf Mach-O zu gehen.)
Aber anscheinend waren Sie darauf vorbereitet, da offensichtlich die Programme schon soweit angepaßt sind, daß zumindest MS, Adobe und Quark bereits Versionen für Intel angekündigt haben im Universal Binary format, was bekanntlich nicht mit Carbon CFM geht. Warten wir es halt ab, macht aber Sinn. :p
 
Zuletzt bearbeitet:
pdr2002 schrieb:
Das ist korrekt. Wenn man C++ beherrscht, kann man weiter dabei bleiben, obwohl dann wiederum es Sinn macht, wenn man zB QT benutzt, welches ja auch auf Windows und Linux läuft. Wenn man ausschließlich Mac Programme schreiben, macht vielleicht doch Sinn Objective C zu lernen. :cool:
Nach welchen Kriterien man dies letztlich entscheidet ist ja erstmal egal, es ging mir nur darum das Carbon oft als einen überholten und bald wegfallenden Teil des OS angesehen wird, obwohl dies ja nicht der Fall ist.

pdr2002 schrieb:
Aber anscheinend waren Sie darauf vorbereitet, da offensichtlich die Programme schon soweit angepaßt sind, daß zumindest MS, Adobe und Quark bereits Versionen für Intel angekündigt haben im Universal Binary format, was bekanntich nicht mit Carbon CFM geht. Warten wir es halt ab, macht aber Sinn. :p
Angekündigt heißt aber nicht das sie auch schon laufen. Immerhin sind diese Anwendungen noch mindestens 1 Jahr entfernt. Und beim Umstieg von 9 auf X waren MS und Adobe auch nicht gleich am ersten Tag dabei.

Die großen werden wohl erst nach und nach richtig auf Intel laufen, aber bis dahin dient Rosetta als Brücke.
 
Zuletzt bearbeitet:
pdr2002 schrieb:
Aber anscheinend waren Sie darauf vorbereitet, da offensichtlich die Programme schon soweit angepaßt sind, daß zumindest MS, Adobe und Quark bereits Versionen für Intel angekündigt haben im Universal Binary format, was bekanntich nicht mit Carbon CFM geht. Warten wir es halt ab, macht aber Sinn. :p
Naja, angekündigt wird immer viel. Ich kann es allerdings wirklich nicht nachvollziehen, dass der Adobe-Mann bei der Keynote so begeistert tat über den Intel-Switch.
Magicq99 schrieb:
Angekündigt heißt aber nicht das sie auch schon laufen. Immerhin sind diese Anwendungen noch mindestens 1 Jahr entfernt. Und beim Umstieg von 9 auf X waren MS und Adobe auch nicht gleich am ersten Tag dabei.
Auf der Mac-OS-X-Vorstellung wurde PS 6 für Mac OS X gezeigt, dass angeblich über das Wochenende von Mac OS 9 portiert worden sein sollte. Trotzdem gab es erst PS 7 für Mac OS X, ein gutes Jahr später.
AFAIR (auch, wenn z.T. anderes behauptet wird) ist der Aufwand, um Programme von 9 nach X/CFM zu portieren um einiges geringer, als der Aufwand, CFM-Programme vom Codewarrior für Mach-O-Universal-Binary nach XCode zu portieren.
Wie man die (kommerziellen) Programmhersteller so kennt, werden die mit dem Portieren eh erst anfangen, wenn die Intel-Macs auf dem Markt sind.
 
Zuletzt bearbeitet von einem Moderator:
._ut schrieb:
Wie man die (kommerziellen) Programmhersteller so kennt, werden die mit dem Portieren eh erst anfangen, wenn die Intel-Macs auf dem Markt sind.
Das mein lieber ._ut glaube ich allerdings nicht. Im Vorfeld zum Wechsel zu OSX haben Sie zwar durchgesetzt, daß sie für eine längere Zeit die Carbon-CFM nutzen können, aber da Ihnen immer bewußt war, daß dieser Teil irgendwann weg fällt, haben Sie, soweit ich aus Gesprächen mit MS und Adobe erfahren habe (ich hatte mal die Gelegenheit mit einigen Programmieren zu sprechen), wurde bereits seit der Portiertung angefangen, immer mehr Code zu ersetzen, der für Carbon CFM notwendig war. Der Endanwender konnte das an den Produkten erkennen. Office 2004 sieht man z.B keine Wurzeln von OS9 mehr an und läuft auch gar nicht mehr unter OS9, wenn es noch eine auschschließliche Carbon CFM Anwendung wäre, müßte diese auch noch unter OS9 laufen, richtig? Das gleiche gilt auch für die Adobe Suite CS2, die läuft meines Wissens auch nicht mehr unter OS9. ;)
 
Zurück
Oben Unten