Late as usual!

giovedì, maggio 05, 2005

Tiger Developer Briefing, Milano, 2004-12-09

Qualche tempo fa, esattamente il 9 dicembre 2004, ho partecipato ad un evento organizzato da ADC (Apple Developer Connection) per la presentazione in anteprima di Mac OS X 10.4 Tiger agli sviluppatori italiani, presso l'Enterprise Hotel a Milano.

Al termine dell'evento, peraltro in maniera molto informale secondo lo stile con il quale tutto si era svolto fino a quel momento, ci viene detto che quanto abbiamo visto è da considerarsi coperto da NDA e sfuma così la possibilità di mettere gli appunti presi sul weblog appena possibile. Non del tutto, perchè l'appena possibile sommato alla mia abituale pigrizia mi porta giusto giutso ad oggi, con Tiger rilasciato e piena libertà di scriverne. Tanto meglio perchè in realtà non avevo neanche preso in considerazione l'ipotesi di dovermi limitare a parlarne, e visto che ultimamente Apple ha perso l'abitudine delle buone maniere probabilmente ho anche fatto bene ad aspettare...

In ogni caso, questo è ciò che avevo scritto in quell'occasione, ovviamente il passare del tempo non può che aver migliorato il tutto... :D

Introduzione
Quando arrivo è appena terminato l'intervento dello speaker di Apple Italia ed il palco è tutto per Paul Burford ed Etienne Vautherin, responsabili delle Developer Relations per l'Europa, i quali si alterneranno nelle spiegazione delle diverse nuove feature della nuova release del sistema operativo.

Il motto della presentazione è un programmatico:
the power of unix, the simplicity of a mac


Subito dopo questo si va in dettaglio sulle direzioni nelle quali si muove questo aggiornamento.
Innanzitutto il tradizionale faster applications on older processors che rappresenta sempre una forte spinta per decidere se aggiornarsi o meno. Quindi un supporto ai 64bit più capillare, con possibilità di indirizzare fino a 16EB di RAM e di gestire all'interrno di uno stesso file eseguibile (fat binary) versioni a 32 e 64bit.
Inoltre viene indicato come elemento di innovazione - forse per mettere le mani avanti rispetto alle criticihe che vedono una Apple che ruba idee dai produttori di applicazioni terze parti - il vantaggio derivante dallo spostamento di funzionalità applicative a livello del sistema operativo, argomento estremamente delicato.

File System
La gestione dei permessi sui file cambia radicalmente e raggiunge la flessibilità di quanto disponibile su Windows. Si passa da un'impostazione per utenti e gruppi Unix ad ACL (Access Control List) associate ai singoli file. Ogni ACL è composta a sua volta da un insieme di ACE (Access Control Entry) contenenti impostazioni per singolo gruppo o utente.

Rendezvous
Al tempo TIBCO non era ancora passata dalle minacce ai fatti, per cui Rendezvous non era ancora stato rinominato in Bonjour per non contrastare il loro omonimo prodotto.
Viene sottolineata l'intenzione di Apple di rendere disponibile questa tecnologia ben oltre i confini di OS (non solo Mac), rete (non solo LAN ma anche Internet via .Mac), linguaggio (non solo Objective-C), in pratica il messaggio è: we don't wanna do it like Apple did it 10 years ago..., chissà a cosa si riferiscono ;)

Spotlight
La ricerca integrata nel Finder grazie a Spotlight si arricchisce in modo tale da diventare un'interfaccia utente alternativa.
Spotlight è un motore di indicizzazione estensibile, funziona sui dischi locali ma non richiede un filesystem adhoc, in quanto memorizza i propri indici in modo indipendente nella Libreria dell'utente.
Non implementa una ricerca fulltext, ma lavora su attributi associati ai file, ovvero metadata, visibili da Inspector ma non modificabili, sui quali si può lavorare tramite una vera e propria Query API, che poi è la stessa utilizzata dai vari iTunes, iPhoto, Mail, con tutte le caratteristiche del caso come operatori, parentesi, wildcard ed escaping.
A livello di Finder ci sono anche gli Smart Folder, cartelle virtuali che nascondono una ricerca sui metadata associati ai file ed ora la ricerca incrementale viene dotata di possibilità di raggruppare i risultati in base a tali metadata.
SpotLight è uno di quegli oggetti che aumentano di valore in base al numero di applicazioni che si integrano con esso, infatti fornisce un SDK per sviluppare plugin in modo che le applicazioni possano definire i propri metadata sui quali effettuare la ricerca: tali plugin vanno a finire nella cartella MDImporters all'interno della Libreria, sia essa dell'utente o del sistema. Esiste inoltre una utility da linea di comando per lanciare l'importer in modo indipendente dall'indicizzatore automatico a tempo di Spotlight.
Un'ultima nota della serie diamo credito a chi se lo merita: l'idea di SpotLight viene da BeOS e chi ne ha curato l'implementazione in Mac OS X è proprio lo stesso ingegnere, ora in forze presso Apple.

Grafica
La nuova libreria Core Image permette di applicare alle immagini 2D effetti in realtime paragonabili a quanto possibile fare con Photoshop, ma ancora una volta con la pervasività di una funzionalità spostata a livello di sistema operativo.
La libreria implementa anche un color space indipendente dalla scheda grafica ed un kernel di funzionalità di shading comuni, inoltre effettua un'ottimizzazione della filter chain che ricompone una sequenza di effetti in modo da essere il meno pesante possibile per la scheda grafica, ne è però richiesta almeno una a 64MB.
Ci sono già pronti più di 80 filtri, ma anche qui abbiamo un SDK per sviluppare filtri aggiuntivi che finiscono nella cartella Graphics/Image Units all'interno della Libreria. Viene fatto notare come ci sia una sovrapposizione con quanto disponibile nelle opzioni ColorSync di stampa (il filtro seppia, B/N, ecc.), ma viene spiegato come a tendere queste ultime spariranno a favore dei filtri Core Image. Per compatibilità le relative API rimangono comunque in Tiger, ma sono implementate su Core Image aggiungenfo uno strato in più.
Il supporto PDF integrato e l'applicazione Anteprima ora gestiscono sia link che encryption, rendendo Acrobat Reader sempre più superfluo, mentre Safari avrà un plugin per visualizzare i PDF al proprio interno.
La nuova versione di QuickTime aggiunge il codec ad alta qualità H264, sfruttato anche da iChat AV per una resa migliore del video con minor banda.

Cocoa
In Cocoa, il toolkit RAD per sviluppare applicazioni su Mac OS X ereditato da NeXTStep, viene rinforzato il paradigma di programmazione MVC con l'introduzione di Core Data, che rende più facile lo sviluppo della parte Model della nostra applicazione, ovvero i dati. A naso si può intuire che la V di View corrisponda alle interfacce generate con Interface Builder, mentre la C di Controller ai Cocoa Bindings che legano gli eventi dell'interfaccia utenti alle rispettive funzioni di gestione.
Core Data fornisce inoltre una serie di funzionalità per la persistenza dei dati del modello su XML, file binari e database SQLLite.
Neanche qui ci viene risparmiata la solita frasetta ad effetto:
This is the so-called No Code Effect: the only line of code that is bug-free is the one you don't write!

Il formato XML diventa sempre più presente nel sistema operativo ed ora da Cocoa è possibile accedere direttamente ad API per XSLT, XPath e XQuery utilizzando funzionalità presenti in libxml2, libxslt e tidy.

XCode
La nuova versione 2.0 di XCode integra funzionalità di modeling UML, con costruzione dei diagrammi da zero, via reverse engineering di codice esistente o da documenti XML.

Java
La versione 1.5 di Java al tempo era disponibile come preview sulla developer connection, non ci sono particolari innovazioni specifiche di Apple, a parte i necessari bugfix, il supporto a rendezvous (ora bonjour) ed una maggiore integrazione con il sistema operativo, ad esempio ora i certificati sono registrati nel Portachiavi ed i cookie sono gestiti da WebCore. Nessuna novità sul fronte J2ME, a parte la conferma di discussioni in corso fra Apple ed i produttori di telefoni come Nokia per ottenere un porting degli emulatori e delle parti non Java degli SDK.

Dashboard
Ad occhio Dashboard sembrerebbe una chicca alla Exposé per stupire gli amici, ma esattamente come Exposé non è solo fumo, anche se quello non manca di certo. Dashboard si presenta come un layer con Exposé activation via tasto F12 il quale ospita i widget: piccole applicazioni o complementi ad applicazioni esistenti, sviluppabili in HTML, CSS e JavaScript che possono accedere direttamente a script di shell Unix o a Cocoa tramite un bridge JavaScript-Cocoa. Supportano la localizzazione ed utilizzano feature non disponibili in WebCore, come lo sfondo PNG sagomato, elementi di GUI Cocoa, aree attive tramite attributi CSS custom come apple-dashboard-region o ancora l'oggetto canvas disegnabile come un'area gestita da CoreImage, utilizzando ad esempio per le lancette del widget dell'orologio.
Quando vengono aggiunti alla Dashboard i widget si animano con un effetto a goccia su pelo dell'acqua (poi rimosso nella versione finale) ed hanno un menu accessibile sul retro in maniera simile alla finestre che si ribaltano nel desktop 3D Java Project Looking Glass di Sun.

Automator
Automator sembrerebbe a naso uno strumento visuale per creare script con AppleScript, pensato per un utenza meno tecnica, da affiancare allo Script Editor o a XCode che già svolgono questo compito. In realtà è un oggetto più interessante, perchè di fatto serve a memorizzare flussi di lavoro, quindi delle macro a livello di sistema, identificando in modo molto semplice i parametri modificabili. In particolare anch'esso è associato ad un SDK per costruire Automator Action, ovvero singoli blocchi del flusso di lavoro, pubblicati dalle singole applicazioni in modo dinamico, come già avviene per i Servizi. Da questo punto di vista è uno strumento davvero potente, il cui valore incrementa man mano che le applicazioni lo supportano rendendo disponibili le proprie Action, e ovviamente anch'esse sono pilotabili via AppleScript.

In conclusione un evento interessante e ben organizzato, con contenuti ad alta qualità... rimane la curiosità su quanti dei presenti sviluppino su tecnologie specifiche Mac per lavoro e su cosa si produca in Italia, a parte il sottoscritto che si diverte a fare localizzazioni di software mac a tempo perso...

mac os x, tiger
Posta un commento