DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

A domanda rispondo - sezione MacOSX

Sviluppare per OS X

Piccola domanda, probabilmente molto stupida.
Ora come ora, sviluppare per Mac OS X, a quanto ho capito, mette di fronte
ad una scelta: Carbon oppure Cocoa. Cocoa dovrebbe essere l'ambiente di
sviluppo nativo per X, mentre carbon dovrebbe velocizzare il porting delle
applicazioni classic verso in nuovo system. Ma per sviluppare in Cocoa ho
solo la scelta tra Objective C e Java? No perché risulterebbe sicuramente
scomodo. Objective C non è un linguaggio di programmazione tra i più usati,
i più utilizzati sono C e C++, possibile che apple abbia scelto di limitare
in tal modo gli sviluppatori? Oppure sono io che non ho capito assolutamente
nulla?
Inoltre quali sono i vantaggi e gli svantaggi dei due ambienti?
Tutto questo perché sono uno studente di informatica al primo anno e vorrei
iniziare ad interessarmi un po' di più dello sviluppo sotto Mac e vorrei
sapere dove indirizzare i miei sforzi.

Filippo Trocca

Per la cronaca, c'è una terza alternativa: Java 2. Ma vediamo di discutere caratteristiche, vantaggi e svantaggi relativi delle due architetture citate. Dal punto di vista del programmatore: chi fa un altro mestiere probabilmente troverà il resto di questa pagina incomprensibile.

Come forse saprai, in C++ c'è un limite stabilito a compile time sul numero di metodi di cui si dota un oggetto, e questo rende assai limitate le possibilità di far crescere un framework complesso a livello di sistema operativo con il meccanismo dello override. Non era possibile integrare C++ con l'architettuta OpenStep, su cui si basa Cocoa.

Per un confronto puoi studiare il truccaccio scelto per aggirare il problema in BeOS. Ogni oggetto di sistema è dotato dalla nascita di una serie di metodi che non fanno nulla. Man mano che viene ampliato, quegli slot vengono riempiti di puntatori al codice. Ovviamente, se tutti gli slot di un oggetto vebissero riempiti sarebbero guai grossi...

Cocoa è interamente orientato all'oggetto, è un rapid application development system, sullo sviluppo di applicazioni verticali offre un tempo di realizzazione anche inferiore del 90% rispetto a soluzioni tradizionali.

Carbon è una raccolta delle API classiche di Macintosh, leggermente aggiornate per renderlo protetto, buon cittadino di un sistema multiutente multiprocessore multitasking. È conosciutissimo e gode di montagne di codice pronto.