eh, mi chiedi una risposta complicata ... dovrei partire dal 1984, cioè dalla nascita del mac ... ma tu non credo abbia tutto questo tempo e voglia di leggere.
Te la faccio brevissima: il passaggio tra OS9 e OSX ha obbligato i programmatori a introdurre le API per non dover riscrivere da capo un programma per il nuovo system e per non dover, loro stessi, imparare 2-3 linguaggi di programmazione diversi (le API permettono a qualunque applicazione di comunicare con il sistema operativo, permettono cioè ad un software di inviare istruzioni al sistema operativo per fare una qualsiasi operazione).
Cocoa è il nome che apple ha dato a queste API che già venivano usate con il MacOS Rhapsody.
Le API carbon vennero aggiunte nel passaggio da Rhapsody ad OSX per "convertire" i programmi e farli funzionare sul nuovo system della Apple. In questo modo fu possibile far funzionare applicazioni per MacOS classic (Rhapsody) sotto OSX operando solo una piccola modifica al codice. Le API cocoa sono più complesse (Java o C) delle API carbon (C e C++) e chi scrive nuovi programmi per OSX si affida a queste e non a quelle carbon perchè il cocoa è un codice nuovo mentre il carbon è stato scritto negli anni attraverso i vari passaggi del MacOS.
Molti programmatori dicono che trai due linguaggi non c'è molta differenza, nella mia ignoranza informatica ho sempre riscontrato che le applicazioni interamente scritte in cocoa risultano più veloci e leggere...
ciao
Robs