Alessio Biancalana Grab The Blaster di Alessio Biancalana

L'interoperabilità un male: ma quando mai!

Prendo spunto da un post scritto dal buon Lorenzo aka monossido, su una recente dichiarazione di Steve Wozniak, forse l'uomo grazie al quale l'informatica attuale è quello che è, che ha detto testualmente che l'interoperabilità è un male. Un male, si. Ora, io nutro profonda stima per l'uomo che ha inventato l'Apple I, ma cribbio, una scemenza di proporzioni così immense poteva anche risparmiarsela; ma cos'è l'interoperabilità, direte voi?

Ebbene, facciamo degli esempi che aiutino a capire meglio. Interoperabilità significa poter sviluppare per molti hardware e piattaforme: QT è un esempio di software con molta interoperabilità; le librerie QT funzionano tramite C++ prevalentemente, e sono state portate su quasi tutti i sistemi operativi al mondo. Un programma scritto in QT ragionevolmente girerà su un ampio ventaglio di piattaforme, da Linux, a OSX, ad Haiku. Mac OS X invece è il contrario: un pessimo esempio sia di interoperabilità che di portabilità; la parte grafica delle applicazioni si basa sulle librerie Cocoa, disponibili solo per OSX e iOS, e tutto ciò che serve per sviluppare viene fornito direttamente da Apple, dall'SDK al designer di interfacce, interfacce che si basano su un linguaggio di cui onestamente non ho mai sentito parlare in termini di diffusione esponenziale, ossia Objective C.

Ebbene, tralasciando i discorsi senza senso dei fanboy del tipo "se hai una sola piattaforma ottimizzi per quella", secondo Wozniak √® un male che noi sviluppiamo per un sistema che va su pi√Ļ dispositivi, perch√® a quanto pare ci sono pi√Ļ problemi hardware da prendere in considerazione, non √® definito uno standard preciso e a quanto pare gli sviluppatori non amano sfornare codice che poi installato su un dispositivo non perfettamente compatibile potrebbe creare problemi.

Questo è vero. Ma è vero nella misura in cui il ventaglio di device si diversifica a tal punto da includere hardware mastodontico ad un'estremità, nano-hardware all'altra; a quel punto si che ti si creano dei veri problemi. Peccato che per Android queste beghe non ci siano, perchè è un sistema operativo che bene o male garantisce il suo funzionamento su vasta scala grazie a una serie di API appositamente scritte, che riescono a supportare decentemente qualunque tipo di dispositivo io mi ritrovi per le mani, dal mid alla fotocamera. L'unico problema realmente riscontrabile parlando di veri fastidi hardware è un monitor QVGA: ci sono pochi dispositivi in giro che montano questa tecnologia una spanna inferiore, anche se HTC con il suo Wildfire sta migliorando la situazione, dato che proponendo un QVGA come monitor di fascia medio-bassa ne incentiverà l'acquisto, e con una base utenti maggiore gli sviluppatori saranno invogliati a supportare al meglio anche quest'altro tipo di monitor.

Abbiamo dunque visto che con Android, che pure √® un OS che supporta pi√Ļ fasce di prodotto e hardware anche diametralmente opposti, comunque ci si pu√≤ trovare pi√Ļ che bene sviluppando codice interoperabile. Woz inoltre ha messo a fuoco anche l'aspetto del codice: secondo lui, un programmatore si trova meglio a gestire un solo dispositivo anzich√® una vasta gamma. Vorrei ben vedere. Anch'io sarei raggiante nell'andare all'esame di Fondamenti di Informatica e dire al prof che deve mettermi 30 perch√® se il programma non gira √® colpa del suo PC. Fortunatamente, il mondo non gira secondo queste regole, ma i programmatori sviluppano non solo per loro ma anche per chi gli sta intorno, ed √® una soddisfazione quando le persone usano il tuo applicativo. Ed √® una soddisfazione anche superare un paio di problemi idioti, rendere il tuo applicativo compatibile con milioni di smartphone al mondo, e godere della sensazione di aver fatto qualcosa di utile per una base utenti veramente consistente, anzich√® lasciare la propria idea a ristagnare su tre dispositivi in croce con una base utenti, secondo me, al limite del ridicolo.

Ecco, si, diciamo che queste sono le ragioni per cui io adoro Android, QT, e tutto ciò che si riveli versatile. Perchè versatilità significa interoperabilità, e interoperabilità, caro Woz, significa progresso.

comments powered by Disqus