Text

Cocoa, Gianduia e derivati

Lo sapevo. È bastato un minimo di tam tam su Gianduia, la nuova tecnologia software di Apple, che qui da noi subito si è generato un bordello all’italiana. Si è subito supposto di aver compreso le ragioni di tanto accanimento nei confronti di Flash e, soprattutto, si è gridato alla vergogna di una azienda che vuole arraffare tutto. Alla Microsoft insomma.

Vi va se facciamo un po’ di chiarezza?

Cocoa

È la tecnologia software adottata per lo sviluppo di applicazioni per Mac, iPhone e iPad. Di fatto è un insieme di librerie software che gli sviluppatori usano per la creazione delle applicazioni sui sistemi succitati.

Personalmente adoro questa piattaforma, che trovo, rispetto alle molte che ho utilizzato in trent’anni di sviluppo software, elengante, efficiente e incredibilmente produttiva.

Cocoa è una piattaforma per applicazioni native. Pertanto con essa non è possibile creare applicazioni web, né applicazioni per altri ambienti, come Windows o Linux. Alla luce delle sue caratteristiche, questo è un peccato, perché molti sviluppatori esperti in Cocoa gradirebbero assai poter sviluppare in altri ambienti operativi utilizzando la stessa tecnologia.

Cocotron

È un progetto Open Source che consente di sviluppare con Cocoa applicazioni Windows e Linux. Di fatto è la replicazione di parte dell’ambiente Cocoa.

Anche se ancora incompleto e con molte falle, è un esperimento interessante. Personalmente sto seguendo un progetto originariamente scritto in Cocoa per Mac che, grazie a Cocotron e con poche modifiche, è in grado di girare in Windows.

Il web

Anche per il web alcuni esperimenti di questo tipo si stanno facendo.

Un ottimo esempio è Cappuccino, un framework (insieme di librerie) sempre Open Source che, come Cocotron, replica l’ambiente di Apple, in questo caso per lo sviluppo di applicazioni web.

Il mio progetto di cui sopra è stato convertito in Cappuccino in pochi giorni di lavoro, fornendo un’applicazione web in grado di funzionare su qualsiasi moderno browser e senza alcun plugin.

Perché?

La domanda è: perché portare Cocoa su altre piattaforme operative, quando queste hanno già parecchi e, in alcuni casi, buoni ambienti di sviluppo?

La risposta è insita nella complessità dei moderni sistemi di sviluppo software e nelle loro gigantesche librerie di funzioni. L’apprendimento è lungo e ancora più lungo è il tempo necessario per avere una significativa padronanza. Parliamo di migliaia di pagine di documentazione da studiare, ma soprattutto di settimane e mesi di prove, errori, affinamenti della conoscenza e tanta, tanta esperienza.

Ovvie a questo punto le ragioni, per uno sviluppatore, di focalizzarsi su una sola tecnologia, per lo sviluppo su più piattaforme. È già parzialmente vero per tecnologie come Microsoft .Net (per Windows, mobili e web) o Java (applicazioni multi-piattaforma, mobili e web). Non vedo quindi come la copertura di più sistemi anche per Cocoa possa rappresentare una minaccia.

Gianduia

Altro non è che il porting (la conversione) ufficiale di Cocoa per il web. Ufficiale nel senso che è realizzate internamente da Apple. Una garanzia sicuramente, visto che nessuno meglio di loro conosce Cocoa. Sono quindi certo che saranno in grado di farne una versione efficiente anche per il web.

Tutte le “ciaculatorie” che vedono in questo progetto un antagonista di Flash e giustificano l’avversione di Apple per l’ambiente di sviluppo di Adobe, stanno a zero.
Gianduia sarà un serio concorrente di Cappuccino, SproutCore e altri frameworks ispirati a Cocoa, perché molto probabilmente porterà gli sviluppatori già esperti di Cocoa verso il sistema di Apple.

Lo sviluppatore Flash difficilmente passerà alle tecnologie software offerte da Cocoa, per varie ragioni. La principale forse sarà la filosofia di sviluppo improntata, nel caso di Cocoa, su programmazione pura. Si pensi che il linguaggio primario per lo sviluppo in Cocoa è Objective-C che, senza entrare in dettaglio, è materia come si suol dire “tosta”.
Con questo non è mia intenzione considerare gli sviluppatori Flash programmatori di serie B, ma certo è che il background è assai diverso.

Conclusioni

Si rilassino i teorici del complotto. Gianduia sarà una manna principalmente per gli attuali sviluppatori Cocoa, che potranno portare con relativa semplicità le loro applicazioni desktop anche sul web, a tutto vantaggio degli utenti. Sarà un’opportunità anche per tutti quegli sviluppatori web alla ricerca di un framework solido, elegante ed efficiente, anche qui per il bene dell’utenza.

Se Flash morirà insomma, non sarà certo a causa delle tiranniche velleità di Apple. La mia personale opinione a riguardo, nata in tempi meno sospetti, è che la morte di Flash era insita nella sua natura di prodotto nato per colmare un vuoto nella navigazione sul web, quando il web non era quello che è ora.

Text

Il mio primo giorno di scuola

…pare strano ma risale a non molto tempo fa.

Era il 2005 o giù di lì. Vagavo in uno dei tanti progetti in corso, sviluppato con uno dei tanti linguaggi di uno dei tanti framework al mondo. Da poco stavo familiarizzando, un po’ per gioco, con il Mac della nuova era, dopo 15 anni di militanza in Windows e prima ancora DOS e UNIX prima di lui.

Il Mac affascina chiunque, ammettiamolo; anche i geek che più geek non ce n’è, chiusi nella loro cameretta un po’ maleodorante, con il PC con chassis di dubbio stile e costantemente aperto, pronto al prossimo “taroccamento”.

Ma come ogni addetto ai lavori sa “il Mac è per i grafici, i musicisti, i giornalisti”. Quando si parla di strumenti di sviluppo, linguaggi e frameworks, allora la faccenda cambia e il PC diventa l’indiscusso padrone della scena.

Ma chi sapeva che in casa Apple, negli ultimi sette-otto anni qualcosa di realmente nuovo era accaduto? Una sorta di renaissance dalle ceneri di un rogo che aveva quasi consumato i fasti dell’Apple II (1977) e del primo Macintosh (1984). Con l’acquisizione di NeXT, Apple non solo riportò all’ovile il suo fondatore Jobs, ma soprattutto acquisì una tecnologia, quella del sistema operativo NextStep che, a cavallo tra gli anni ’80 e ’90, era anni luce avanti a qualsiasi altra tecnologia software. L’attuale Mac OS X è quindi il diretto discendente di quella tecnologia e ne eredita le meraviglie, naturalmente con un vestito tutto nuovo. Ma io, appunto, non lo sapevo.

Quasi per caso mi imbattei in una guida on-line di Cocoa e Objective-C; fu amore.

Ricordai le teorie software dei miei primi studi e di quanto fossero distanti dalla pratica della programmazione “di tutti i giorni”: il modello MVC puro, quasi sempre inapplicabile agli schemi enterprise; l’innalzamento del livello di astrazione che provoca spesso il crollo delle prestazioni e altri nefasti effetti collaterali; lo sviluppo a basso livello che tiene le prestazioni e la purezza della scienza ma fa a pugni con la realtà del mercato e dei suoi tempi.

Mi ricordai di tutto questo perché ciò che avevo davanti era la trasposizione pratica di tutte quelle teorie: MVC di semplice applicazione, un elevatissimo livello di astrazione con prestazioni elevate, scalabilità e mantenimento adeguato alle esigenze di enterprise e di mercato.

Installai i tools dalla Apple che, per la cronaca, sono disponibili direttamente nel DVD di installazione fornito con ogni nuovo Mac. Affrontai, con quasi 5 lustri di programmazione alle spalle, la canonica applicazione “Hello World” che però era un qualcosa di full-featured e realmente utilizzabile: un convertitore di valuta. In poche ore mi mangiai letteralmente centinaia di pagine di documentazione e cominciai la mia conoscenza dell’ambiente che ora occupa la maggior parte dei miei impegni professionali.

Fu il mio primo giorno di scuola. E chi se lo dimentica…