Oltre SproutCore: Objective-J & Cappuccino

Posted on the August 26th, 2008 under Blog Cafe by Daniele Margutti

Riprendo velocemente un post di qualche giorno fa per segnalare quello che a mio avviso è un ulteriore segno di come la Yellow Box, o almeno quella che era l’idea di fondo, sopravvive ancora e che presto sarà qualcosa che potrete toccare con mano (stranamente sembra che la stampa ’specializzata’ nostrana abbia ).
Nei primi giorni di giugno abbiamo visto quella che è la strategia di Apple nella lotta per le Rich Internet Applications: per farla breve Apple ha introdotto (o meglio ha supportato) un nuovo framework chiamato SproutCore che ha come finalità quella di portare l’idea dell’MVC (Model View Controller) dal desktop development al web. In realtà, come afferma anche l’autore Charles Jolley (ora dipendente Apple), non si tratta di un porting del framework Cocoa (AppKit e Foundation) verso il web, quanto più di una libera ispirazione verso i concetti che lo caratterizzano.

Ma c’è qualcuno che ha fatto di più: due ragazzi, Francisco Tolmasky e Ross Boucher (laureati da meno di un paio d’anni e con un passato già in Apple), hanno non solo portato Cocoa sul web, ma perfino il runtime di Objective-C.
Il progetto, manco a dirlo, si chiama Objective-J (J per javascript) e comprende buona parte di Cocoa (che in questa implementazione prende il nome di Cappuccino) ed è per ora alla base della loro prima applicazione, 280 Slides (la compagnia da loro fondata, qualche mese fa, è 280 North).
280 Slides è quello che potremmo definire il Keynote o il PowerPoint del web. Su MacOS X si fatica a capire che si sta usando una web app anzichè una normale applicazione desktop.

Ma torniamo a Objective-J: “abbiamo costruito un preprocessore client-side the prende il codice Objective-J e lo traduce in JavaScript nativo; e questo ovviamente include un runtime Objective-J”. Il codice javascript viene quindi eseguito direttamente dal browser.
“Da qui siamo partiti per implementare buona parte del framework Cocoa al fine di poter permettere la realizzazione veloce di web app con gui”. Cappuccino è una re-implementazione di Cocoa in Objective-J ed include AppKit, Foundation, CoreGraphics e parti del CoreAnimation.
L’idea, affermano gli autori, nasce dall’esigenza di poter creare in maniera facile (nella misura in cui sono facili per il desktop) applicazioni senza dover necessariamente conoscere HTML,CSS o JavaScript.
Al contrario di SproutCore infatti, Cappuccino e Objective-J approcciano in maniera totalmente differente il web development. Siccome Cappuccino gira interamente lato client non c’è bisogno di generare HTML o CSS; tutta l’interfaccia viene scritta direttamente con Objective-J e Cappuccino.

AppKit genererà per noi gli elementi DOM della pagina, ma in verità non si tratta che di una particolare implementazione; se un giorno il web fosse SVG non ci vorrebbe molto a trasferire Capuccino su SVG.
Dal punto di vista tecnico Objective-J viene tradotto in puro codice JavaScript prima di essere eseguito (e questo rende il caricamento iniziale più lento rispetto ad altre soluzioni) al contrario, ad esempio di SproutCore. Tuttavia Boucher ha riferito come la società abbia un tool in grado di preprocessare il codice Objective-J eliminando il carico sul client e il tempo di esecuzione (a questo ovviamente si devono aggiungere le ultime notizie che riguardano nuovi e potenti motori javascript sia per Safari 4 sia per Firefox 3.1).

Cappuccino e Objective-J saranno disponibili come prodotti opensource perchè, come hanno detto gli autori stessi, è il miglior modo per programmare su web (nonchè il miglior modo per renderla adottabile dal più grande pubblico possibile).
Mentre Sproutcore aggiunge MVCC a HTML+CSS+JS, Cappuccino permette a tutti i programmatori che fino ad oggi hanno sviluppato desktop app, di saltare sul web mantenendo quelle che sono le pecurialità di sviluppoo di un ambiente sicuramente più completo e rodato.
Entrambi i prodotti verranno distribuiti al pubblico nel più breve tempo possibile (in questi giorni i giovani sviluppatori stanno ripulendo il codice dopo aver distribuito 280 Slides su internet) sebbene nessuna data sia stata formalmente espressa.

Quello che ci chiediamo invece è se e quanto tempo passera prima che Apple adotti una tecnologia simile, magari implementendola con Interface Builder e XCode…

VN:F [1.0.6_327]
Rating: 0.0/5 (0 votes cast)

Leave a Reply




XHTML::
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>