Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Apple>Coca v. Carbon

Coca v. Carbon

Cmon
Cmon03.02.0410:01
Hallo

Kann mir mal jemand genau erklären, was der Unterschied zwischen Coca und Carbon-Programmen ist? iTunes ist ja aktuell ein Carbon-Programm, soll aber laut Gerüchten neu in Coca geschrieben werden...hat das Vorteile? Schliesslich ist sogar der Finder in Carbon!


Wenn Coca wirklich so viel besser/schneller ist, warum macht dann nicht mal Apple nur Coca-programme?

Danke!
„Bei MTN seid 2003…wie die Zeit vergeht!“
0

Kommentare

Ogi Brown03.02.0410:30
Ja! Hier! Ich auch!

Danke Cmon, das hab mich nach dem News-Artikel auch grade das erste mal gefragt. War aber dann doch nicht mutig genug, das hier zu posten (*spottreinhagel*), danach heisst's noch, "der Ogi, der alte Blödfrager, weiss als einziger wieder nicht Bescheid"

Also, liebe Nerds, raus mit der Sprache!

0
aska
aska03.02.0410:54
Aus

Carbon
Die Carbon-APIs basieren auf früheren Versionen von Mac OS APIs. Obwohl Sie mit CarbonAnwendungen die Vorteile der Mac OS X Funktionen wie Multiprocessing-Unterstützung und die Aqua-Benutzeroberfläche nutzen können, wurde es eigentlich speziell aus Gründen der Kompatibilität mit älteren Mac OS Versionen entwickelt.

Cocoa
Die Cocoa-Anwendungsumgebung wird ursprünglich unter Mac OS X ausgeführt. Für diejenigen, die für Mac OS X entwickeln und dazu RAD-Tools (Rapid Application Development) und objektorientierte Verfahren nutzen, stellt die Cocoa-Grundlage eine schnelle und vollständige Lösung zur Verfügung. Diese Grundlagen bieten sowohl Java und Objective-C APIs.

oder einfach: Carbon=Vergangenheit; Cocoa = Zukunft
0
Martin Kautz03.02.0410:55
Also, erst mal sollte festgestellt werden, daß es Cocoa (ausgesprochen: Coco) heißt. Fangen wir mit den Gemeinsamkeiten an: Beides sind zwei gleichwertige Frameworks, die jeweils ein API für Mac OS X zur Verfügung stellen. Der größte Unterschied ist, dass sich Carbon an Programmierer wendet, die C, C++, Fortran oder ähnliche - überwiegend prozedurale - Sprachen verwenden.
Hingegen ist Cocoa für die Benutzung von Objective-C oder Java (letzteres ist eher ein Marketing-Schachzug) gedacht. Der Vorteil von Cocoa ist, dass es die modernere (streng objektorientierte) Architektur besitzt, was aber keine Aussage über die Performance erlaubt. Warum sind nun iTunes und der Finder noch größtenteils unter Verwendung des "älteren" Frameworks geschrieben? Die Antwort ist simpel: Aus "historischen" Gründen: iTunes besitzt die Codebasis von SoundJam (errinnert sich noch jemand daran?) und viele Routinen des Finders beruhen auf seinem Mac OS 7/8/9 Pendant. Es war einfach noch nicht genug Zeit, beide Programme, auf das neue Framework "zu heben" und aus Sicht der zu erzielenden Vorteile bestand vermutlich auch kein Grund dazu... Ich betone nochmals: Die pure Verwendung des einen oder anderen Frameworks erlaubt noch keine Aussage über die Güte/Performance des entstehenden Codes, ein schlechter Programmierer schreibt auch bei Verwendung des moderneren Frameworks Cocoa nicht automatisch besseren Code als der "alte Hase", der sein (über Jahre) hochoptimierte C++ Repository verwendet.

Martin
0
Gaspode03.02.0410:55
Oder Äpfel != Birnen und deshalb wird eine funktionierende App ganz sicher nie nochmal in Cocoa neu erfunden.

Da investiert Apple die Energie lieber in eine sechste iLife-App
0
Hßn
Hßn03.02.0411:38
den Unterschied kann man selber ganz einfach auch in der Praxis erfahren z.B.:
- iTunes öffnen, zum anderen Benutzer wechseln (>10.3) dort versuchen iTunes zu öffnen Fehlermeldung (iPhoto funzt mit mehreren accounts gleichzeitig)
- oder im Finder die Sprache wechseln, iTunes bleibt in deutsch, iPhoto wechselt mit
0
Cmon
Cmon03.02.0412:04
Hmm, auch ist es doch z. B. möglich von Cocoa-App zu Cocoa-App Text per Drag&Drop zu kopieren, während das bei Carbon-Apps nicht geht.


Ausserdem ist es möglich, dass Carbon Appls per Sat1-Ball ganz Blockiert werden (z. B. Finder). Bei Cocoa ist das glaub auch nicht möglich....oder?
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
uweb
uweb04.02.0400:28
Die alten Hasen sagen oftmals:" Machen wir es Objektorientiert, oder soll es funktionieren"
0
jup04.02.0400:50
Hßn
den Unterschied kann man selber ganz einfach auch in der Praxis erfahren z.B.:
- iTunes öffnen, zum anderen Benutzer wechseln (>10.3) dort versuchen iTunes zu öffnen Fehlermeldung (iPhoto funzt mit mehreren accounts gleichzeitig)
- oder im Finder die Sprache wechseln, iTunes bleibt in deutsch, iPhoto wechselt mit
iTunes wechselt bei mir auch die Sprache, auch kann ich iTunes mit mehreren Usern gleichzeitig starten...
0
Pseudemys
Pseudemys04.02.0403:23
Teilweise geraffte Beschreibungen aus dem Buch „apropos Mac OS X“ von Uthelm Bechtel, ADDISON-WESLEY-Verlag, Münschen 2001 (die teilweise schon Beschriebenes wiederholen):

<i>Cocoa</i> ist die aus NeXTStep entstandene Programmumgebung, die die eigens mit NeXTStep zusammen entwickelte Programmiersprache Objektiv-C verwendet, eine verhältnismäßig einfach zu programmierende und sehr leistungsfähige objektorientierte Programmiersprache, die jedoch nicht sehr verbreitet ist. Alternativ kann aber auch Java als Programmiersprache verwendet werden, das vom Project-Builder in Objective-C übersetzt wird.

<i>Carbon</i> ist eine für das Mac OS X angepaßte Version der Mac-OS-Programmumgebung. Etwa 70% der APIs entsprechen denen des klassischen Mac OS. In einer großen Testaktion hat Apple herausgefunden, daß die restlichen 30% kaum in Programmen verwendet werden. So kann ein Programmierer sein klassisches Mac-OS-Programm auf die Carbon-Umgebung anpassen, indem er lediglich etwas fünf Prozent seines Codes neu schreibt. Er kann dabei seine aus dem Mac OS vertrauten Programmierwerkzeuge benutzen.
Carbon-Programme laufen dann sowohl im herkömmlichen Mac OS – mittels der Systemerweiterung „CarbonLib“ – als auch in Mac OS X.
0
Gaspode04.02.0408:15
iTun es wechselt wie alles andere die Sprache!

Und das es mit mehreren Usern nicht geht ist ein Feature von iTunes und hat nix mit Carbon zu tun!

Zum Beachball: Ja Cocoa ist häufiger multithreaded aber multithreaded gab es selbst auf dem Mac schon vorher und es ist einfach eine Sache, was ein Programmierer aus seiner Anwendung macht.

0
Cmon
Cmon04.02.0409:28
"das hat nur was damit zu tun, dass apple keinen sinn darin sieht, dass das itunes von 2 usern gleichzeitig tönt. dass iphoto das kann ist nur ein beispiel für die inkonsistenz von apple.. "

Richtig ,iTunes soll nicht von 2 Benutzern gleichzeitig tönen. Aber warum ist es eine inkonsistenz von Apple, dass 2 Benutzer gleichzeitig ihre Fotos anschaen dürfen?

Ich find das eher ein nettes Feature! Danke Apple, manchmal überlegt ihr auch was!
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
Cmon
Cmon04.02.0410:01
Naja, also so viel ich weiss, ist es doch ein Feature, dass man Musik bei einem inaktiven Benutzer weiterlaufen lassen kann....also das Deaktivieren ist da ja auch nicht der richtige Weg.

Und iTunes ist ja wohl die einzige App. welche blockiert, oder? Damit kann man doch gut leben. Wenn du iPhoto nicht laufen lassen könntest, wär das schon dümmer!


Ausserdem kannst du doch nicht WÄHREND einer SlideShow, die mit Musik untermalt ist den Benutzer wechseln, oder? Also passts schon!
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
Gaspode04.02.0410:26
Zwei offene Fotos ist ok, aber zweimal "offene" Musik ist ein bisschen Strange, oder? Hallo Kakophonie...

Und in Quicktime kann man sehr wohl in den Preferences einspielen, dass nicht nur der vorderste Film Ton abspielt. Wer's mag...
0
Frank
Frank04.02.0410:37
Pseudemys:

Ich glaube nicht, dass bei Cocoa-Java Programmen, der Java-Code in ObjC übersetzt wird. Das ist schon normales Java. Es wird halt nur über eine Bridge der ObjC-Code von Cocoa aufgerufen.

Ist wohl auch nur für die Sachen interessant, die es nicht in Java gibt. Die String-Funktionen werden bspw. nicht übersetzt. Hier muss man die original Java-Routinen nehmen.
0
NoName
NoName04.02.0411:27
Oliver Kurlvink Hier Dein Beitrag noch mal, da er aufgrund eines fehlenden Tags das Forum verhagelt hat.
Cmon
Naja, also so viel ich weiss, ist es doch ein Feature, dass man Musik bei einem inaktiven Benutzer weiterlaufen lassen kann....also das Deaktivieren ist da ja auch nicht der richtige Weg.

spitzenfeature, bei dem ich musik anmache, dann die loginmaske aufrufe und sich somit jeder anmelden aber niemand eigene musik abspielen kann.

nein, das ist wenn nicht ein bug so doch eine überarbeitungsbedürftige konstruktion.
„Komm wir essen Opa (Satzzeichen retten leben)“
0
Cmon
Cmon04.02.0411:59
Ja logisch darf niemand eigene Musik abspielen, solange meine Musik noch spielt....oder gehörst du zu den Leuten, die 3 Mal iTunes offen haben müssen und in jedem verschiedene Musik laufen haben????


Wenn ich will, dass jeder Benutzer eigene Musik spielen kann, dann mach ich mein iTunes zu und jeder kann spielen, was er will!!
„Bei MTN seid 2003…wie die Zeit vergeht!“
0
Pseudemys
Pseudemys04.02.0413:34
Frank
Danke für die Ergänzung!
(Ich habe oben nur zitiert, da mir diese Buch-Erklärung auch dem Laien-Anwender gut verständlich erscheint, selbst von der Materie aber nicht die allergeringste Ahnung.)
0
Agrajag04.02.0414:20
Oliver Kurlvink
alle audiokanäle des nicht aktiven users müssen deaktiviert werden. mac os x kann das.
Dann aber bitte optional. Wäre doch echt blöd, wenn die Musik aus geht, nur weil ich mal kurz aus administrativen Gründen den Benutzer wechsel.

Mal ehrlich, wie oft kommt es denn vor, dass verschiedene User gleichzeitig auf einem Rechner arbeiten wollen. Man lässt doch mal jemanden kurz dran und dann finde ich es sogar besser, dass die Musik weiter läuft.

Wenn jemand anderes für längere Zeit den Rechner benötigt, dann kann man sich auch gleich ausloggen, da der andere wahrscheinlich auch die Power für sich benötigt. Oder man schaltet dann einfach die entsprechenden Töne aus.

Wenn man öfter den Rechner gleichzeitig benötigt, dann sollte man eh darüber nachdenken, ob es nicht angebrachter wäre einen zweiten Rechner zuzulegen.

Gruß
Mike
0
NoName
NoName04.02.0414:32
Cmon Dein Beitrag noch mal. Du hast den Tag vergessen zu schließen.
Agrajag
Oliver Kurlvink


Na also, mit dir bin ich 100%ig einverstanden, so stimmts!
„Komm wir essen Opa (Satzzeichen retten leben)“
0
damian
damian05.02.0400:24
falls der thread noch aktuell ist: da hats ein schöner überblick zu der entstehungsgeschichte von den ersten objektorientierten anfängen "pink" über die versuche mit copland und rhapsody bis zu der "blue box", die anfängliche bezeichnung für das classic. carbon war dann ein strategisch geschickter zug von apple um den software-entwicklern os x schmackhaft zu machen. die anfängliche "yellow box" heisst nach der erweiterung mit java nun cocoa.

das ist eine ganz grobe zusammenfassung des artikels, dem ich übrigens jedem empfehle, der erst seit osx an board ist und das ganze mit os9, classic, carbon, cocoa und unix/bsd/next nicht so durchschaut.
0
oliver kurlvink
oliver kurlvink04.02.0408:18
Hßn<br>
den Unterschied kann man selber ganz einfach auch in der Praxis erfahren z.B.:
<br>- iTunes öffnen, zum anderen Benutzer wechseln (>10.3) dort versuchen iTunes zu öffnen Fehlermeldung (iPhoto funzt mit mehreren accounts gleichzeitig)
<br>
<br>
<br>das hat nur was damit zu tun, dass apple keinen sinn darin sieht, dass das itunes von 2 usern gleichzeitig tönt. dass iphoto das kann ist nur ein beispiel für die inkonsistenz von apple. mir carbon/cocoa hat das nichts zu tun.
<br>
<br>ich empfehle:
<br>
<br>http://en.wikipedia.org/wiki/Cocoa_(software)
<br>http://en.wikipedia.org/wiki/Carbon_(computing)
<br>
<br>Carbon is often confused and/or compared with Cocoa, but the two are complementary and are solving different problems. In general, Carbon is the lower level APIs, whereas Cocoa is a higher level application framework. While a software project may exclusively use one or the other, in practice it is often necessary to use elements of both. Carbon is more versatile in that it may be accessed using C, C++, Pascal, Ada, or any other language with suitable interface headers, whereas Cocoa exclusively uses Objective C and Java. A higher level approach may be taken with Carbon by using an application framework built on it, for example MacApp, Metrowerks Powerplant or MacZoop.
0
oliver kurlvink
oliver kurlvink04.02.0409:35
Cmon<br>
<br>Richtig ,iTunes soll nicht von 2 Benutzern gleichzeitig tönen. Aber warum ist es eine inkonsistenz von Apple, dass 2 Benutzer gleichzeitig ihre Fotos anschaen dürfen?
<br>
<br>Ich find das eher ein nettes Feature! Danke Apple, manchmal überlegt ihr auch was!
<br>
<br>denk mal an eine slideshow mit musik unterlegt, die im fenster des einen users abläuft, während der andere ebenfalls eine starten möchte...
<br>
<br>grundsätzlich ist aber die vorgehensweise von apple, nämlich das starten von applikationen zu unterbinden, ein sehr schlechter weg. spiele ich z.b. 2 quicktimefilme ab, so gibt nur der soudn aus, der im vordergrund liegt bzw. zuletzt gestartet wurde. da hat apple wirklich nachgedacht. die itunes-lösung ist nur ein böser und undurchdachter workaround für ein grundsätzliches problem: alle audiokanäle des nicht aktiven users müssen deaktiviert werden. mac os x kann das. es gibt shareware, die das kann. schon unter jaguar (ausblenden oder steuern von sound beliebiger applikationen). da sollte apple ein wenig nachhilfe nehmen.
0
Maxefaxe04.02.0410:33
Oliver Kurlvink
<br>
<br><i>"spiele ich z.b. 2 quicktimefilme ab, so gibt nur der soudn aus, der im vordergrund liegt bzw. zuletzt gestartet wurde. da hat apple wirklich nachgedacht."</i>
<br>
<br>Einfach mal in die Eistellungen von Quicktime gehen und das ändern. Ich denke auch die Mehrheit der User will nicht bei 5 Filmen auch 5 Audiospuren höhren. Das geht ganz schön ans Nervenkostüm. Wenn Du es aber willst steht dir dieses glücklicherweise defaultmässig deaktivierte Feature dennoch zur Verfügung.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.