Successivo

News

Objective Javascript? Sì, per le slide sul web

Michele Costabile | 11 Giugno 2008

Tre ragazzi con un’esperienza alla Apple hanno creato un nuovo dialetto di JavaScript rendendolo più simile al linguaggio Objective C, […]

LTre ragazzi con un’esperienza alla Apple hanno creato un nuovo dialetto di JavaScript rendendolo più simile al linguaggio Objective C, creato da Next e usato con successo da Apple. Non contenti, hanno creato una copia del framework Cocoa in questo linguaggio e un’applicazione Web per la creazione di diapositive davvero impressionante.

L’estensione di JavaScript si chiama, prevedibilmente, Objective-J e non richiede un interprete particolare per essere eseguita, dato che l’ambiente di supporto del linguaggio, scritto in JavaScript, traduce al volo il codice Objective-J in JavaScript.
L’uso di Objective-J differisce quindi dall’uso di una delle comuni librerie di supporto per JavaScript, come Prototype o Scriptaculous, per il fatto che cambia la sintassi del linguaggio. Ecco un piccolo esempio per dare il sapore della cosa:

 var okButton = [[CPButton alloc] initWithFrame:CGRectMake(490.0, 330.0, 70.0, 20.0)];
        
[okButton setTitle:@"OK"];
[okButton setBezelStyle:CPHUDBezelStyle];
[okButton setBordered:YES];
[okButton setAutoresizingMask:CPViewMinXMargin | CPViewMinYMargin];
[okButton setTarget:self];
[okButton setAction:@selector(ok:)];

Lo strumento di analisi delle pagine di WebKitIl codice che vediamo crea un pulsante, ne imposta le proprietà  visuali e di comportamento, in particolare associa gli eventi creati dal pulsante all’oggetto chiamante ([okButton setTarget:self]) e li indirizza a un gestore di eventi ([okButton setAction:@selector(ok:)]).
La sintassi con le parentesi quadre è il modo standard in cui si inviano messaggi agli oggetti in Objective-C, quindi

[okButton setTitle:@"OK"];

si può leggere come

okButton.setTitle("OK");

in un altro linguaggio. Si tratta di uno dei tanti linguaggi in cui l’invio di messaggi è distinto sintatticamente da una chiamata a funzione. Nel caso di Objective C, forse la ragione primaria per la sintassi era per comodità  del traduttore verso il linguaggio C, ma comunque c’è sempre discussione fra i creatori di linguaggi su quale strada preferire. Un vantaggio è che si può inviare un messaggio a un oggetto anche se questo non sa rispondere, in Java invece i messaggi sono chiamate a funzione e le funzioni chiamate devono esistere.
La costruzione di un traduttore da Objective-J a JavaScript e di un framework in Objective-J è un lavoro notevole, ma costruire per prima cosa un framework invece del prodotto finale è uno dei vizi tipici degli sviluppatori. Quando il progetto fallisce, avere realizzato un framework è la colpa principale, quando il progetto ha successo invece si può sempre sostenere che il risultato dipende dal framework.
In questo caso il successo è eclatante, perché lo showcase di Objective-J non è una misera applicazione di test, ma un’applicazione web per la creazione di diapositive, che rivaleggia con le applicazioni tradizionali e ha un appeal grafico degno di Apple.
Il framework usato da 280 North si chiama Cappuccino ed è una versione personalizzata del framework Cocoa, l’ambiente di programmazione di Apple su cui si fondano tutte le applicazioni. La galleria di oggetti visuali è impressionante e molto curata esteticamente.
Lo strumento di analisi delle pagine di FirebugiL’accesso a 280 Slides è libero e si può smanettare con l’applicazione senza nemmeno registrarsi, anche se la registrazione è d’obbligo per registrare una presentazione e riutilizzarla.
Le slide possono essere create a casa, completate in un Internet Café e mostrate a destinazione in un browser qualsiasi, oppure scaricate in formato PowerPoint. Le immagini possono essere prelevate dal web o da una galleria accessibile dopo la registrazione.
Infine, una nota sul nome della società . 280 North è legato alla collocazione geografica. La Interstate 280 collega la 80 e la 101 agli inizi di San José, California.
Secondo 280 North il linguaggio Objective J avrà  presto un sito e sarà  disponibile con licenza open source. Per adesso, objective-j.org è un sito vuoto.
Si può studiare la sintassi del linguaggio andando a curiosare nei file scaricati dal browser, con Firebug, se si usa Firefox, o magari con l’ottimo Web Inspector delle release di sviluppo di Safari.