8 maggio 2015

Se non sei uno di noi, sei uno di loro (cit.)


Bentornati!

Notizia di qualche giorno fa è che un sondaggio, effettuato da Black Duck Software e North Bridge sul futuro dell'Open Source, ha sancito che ben il 78% delle aziende nel mondo, oggi, basa il proprio lavoro su tecnologie a codice aperto.

Viviamo (in) un mondo open-source!

In realtà i numeri rivelano anche molto altro, ad esempio che l'utilizzo di queste tecnologie è spesso passivo:
  • in pochissimi contribuiscono allo stesso;
  • molti scelgono soluzioni open quasi più "per moda o per suggerimento" che per reale necessità;
  • in tanti scelgono soluzioni a codice aperto poiché ritenute più sicure, ma poi non effettuano verifiche sul campo in tal senso.

Certamente i numeri snocciolati dalla survey sono molto -molto- interessanti. Ma è anche vero che utilizzare male tali tecnologie alla lunga non porta vantaggi. Anzi...

Per come si sono configurate le cose nell'ultimo decennio, poi, questo modello sta prendendo sempre più piede, spesso però solamente di facciata, e molte altre volte di comodo. Capita, quindi, di vedere grandi nomi sponsorizzarsi dietro l'etichetta open-source, o progetti molto chiacchierati proprio perché sbandieranti la sempre-più-desiderata-e-necessaria apertura del codice.

Quello che spesso viene lasciato in secondo piano, però, è che poter accedere ai sorgenti è solo una parte dell'equazione...




La nostra società -in generale il mondo Occidentale, ma non solo- vive sulla e con la tecnologia (e tante persone per la tecnologia, ma questo è un altro discorso :P). Ci si appresta ad un mondo di oggetti sempre più connessi tra loro ed in modo del tutto automatico; e negli ultimi anni lo strato logico ed i dati (anche privati) degli utenti sono stati spostati in massa dai client ai vari server.

C'è addirittura tutta una generazione nata con e cresciuta sul web!


È chiaro che, data la situazione, i monopoli ed il controllo da parte di singole entità, ma anche solo la chiusura in silos non siano cose ben viste da molti.
Senza contare che non tutti hanno le stesse esigenze, desideri, scopi ed interessi...

Ed è probabilmente anche per questo che, dall'altra parte, cioè da parte di chi ha creato silos per anni o di chi continua a cercare di tenere un controllo generale, si senta la necessità di abbracciare movimenti come quello open-source attualmente molto sentiti (se non addirittura richiesti dai governi...).



L'ultimo caso è quello di Microsoft, che durante la sua conferenza annuale (//build/, quest'anno dal 29 Aprile al 1 Maggio), ha annunciato il rilascio del suo famoso IDE Visual Studio (ribattezzato Code) anche per sistemi operativi non Windows. Ecco quindi arrivare le versioni per Mac OSX e per le varie distro-Linux, pronte per permettere lo sviluppo nel linguaggio .NET anche su questi OS. Il core dello stesso linguaggio era stato aperto (con upload dei sorgenti su GitHub) pochi mesi fa (Novembre 2014).

Questa mossa, per quanto sorprendente possa essere apparsa, in realtà racchiude aspetti molto più sottili. Ad esempio nasce dal fatto che Microsoft abbia una necessità spasmodica di attirare sviluppatori sulla propria barca, che galleggia -più o meno- nell'immenso oceano della telefonia mobile. Windows Phone (presto riunificato nella grande famiglia Windows 10) ha pochi utenti ed un gran bisogno di applicazioni compatibili. Gli utenti senza app non arrivano, e le app senza utenti faticano a generare profitti, e quindi interesse nel mondo dei developers.

Rilasciare l'IDE anche per sistemi come Mac OSX molto caro a queste figure professionali, oltre ai vari tools pensati per "facilitare" il porting di codice scritto per i due ecosistemi che oggi si spartiscono praticamente il 90% del mercato mobile (Android/Java ed iOS/ObjectiveC), sono mosse fatte proprio per questo scopo.

Tralasciando le reazioni -poco convinte- dei presenti all'evento, ed il perché la seconda mossa (il porting del codice) non sia il massimo della vita, od anche i limiti stessi del tutto, è chiaro che mettere avanti il marchio open-source sia principalmente una etichetta (se non derivato dell'implementazione tecnica) o poco più.

Del resto stiamo sempre parlando di una azienda che è configurata in un certo modo, fin dalla sua fondazione, e non ci si può certo aspettare grandi cambiamenti da qui al prossimo futuro.
Semplicemente negli ultimi anni i guadagni si sono spostati dal prodotto ai servizi ad esso connessi, e rilasciare i sorgenti può aiutare a spingerne l'utilizzo favorendo un successivo interessamento alle remunerative funzioni premium.
Ha funzionato per i video-games, funziona per il software in genere.



Non è da meno -in questo gioco- Google, con il suo ecosistema Android: esso è, forse, l'esempio più grande sotto gli occhi di tutto il mondo di quanto nascondersi dietro l'etichetta open-source sia soltanto una minima parte di tutto quello che bolle in pentola.

BigG nel corso degli ultimi anni ha sempre più accentrato su di sé le funzioni core di Android: non solo, quindi, tutte le app proprietarie che, non essendo mai state rilasciate con licenze open, giustamente non hanno mai fatto parte dell'AOSP (il progetto open-source che guida lo sviluppo del robottino verde). Pian pianino tutti i vari servizi utili e più importanti sono stati estratti e spostati su un nuovo layer, i Play Services, chiuso e controllato in toto a Mountain View.


Affermare che Android ora sia open-source è poco corretto, soprattutto se si fa riferimento all'Android che tutti noi siamo abituati a vedere e ad utilizzare.
Certo, esiste l'AOSP ed esistono progetti come Cyanogen che, partendo ovviamente dall'AOSP, sono liberi dal codice chiuso di Google. Ma utilizzare AOSP/CyanogenMOD/similari nudi e crudi non è assolutamente la stessa esperienza che usare Android così come lo conosciamo.

Tralasciando le app Google (come Gmail, Maps, Hangouts, YouTube e così via), mancherebbero all'appello tantissime di quelle API -una su tutte il cloud messaging- che la maggior parte delle applicazioni, di cui oggi non si riesce più a fare a meno, semplicemente non funzionerebbero più.
E questo è anche il motivo principale per cui progetti come quello suddetto di Microsoft per il porting nel suo ecosistema, come quello di BlackBerry per il proprio OS, come Amazon con il suo AppShop, o volendo anche il lavoro di Jolla, hanno grossi limiti (a meno di smanettamenti da parte dell'utente, illegali).

Ed è anche per questo motivo che Cyanogen.Inc (che ricordo essere una cosa differente rispetto al famoso firmware custom aftermarket CyanogenMOD), con il suo CyanogenOS, avendo dichiarato guerra aperta a Google e puntando alla creazione di una piattaforma a servizi su base Android, ha dovuto (e continuerà a) sostituire uno per uno tutte le app di BigG con alternative (tra cui molte offerte proprio da Microsoft, scaturendo tutti i malumori del caso).

Alternative non necessariamente open-source.



Parlando di grandi nomi potrei citare anche Apple, con il suo ResearchKit, il framework rilasciato con licenza open-source per ricerche nel campo medico e della salute. Inutile dire che lo strumento faciliterà lo sviluppo di applicazioni per l'invece-super-sigillato restante ecosistema della mela.

Il campo dell'health & fitness sarà uno di quelli di maggior scontro negli anni a venire, ed Apple come sempre sarà già pronta lì, in prima linea.


Insomma, penso che sia ormai chiaro: celarsi dietro un'etichetta è solo parte della storia. Quando i servizi che ruotano attorno al codice (rilasciato con licenze open) sono tutt'altro che liberi, parlare di codice a sorgente aperto è parlare di tutto ma -soprattutto- parlare di niente.



Le tre grandi aziende finora citate, Google, Apple e Microsoft sono i tre principali player che si stanno contendendo il dominio nel mondo dei device mobili -e non solo-: Android, iOS e Windows (in ordine di share e revenue) da soli occupano una fetta grande quasi tutta la torta del mercato a livello mondiale.

Un ristretto numero di "ribelli" però non ci sta e da qualche tempo cerca lentamente di crearsi una propria nicchia di utenza, facendo leva sulla situazione attuale e sul piattume generale creatosi.

Alla decadente-ma-sempre-presente BlackBerry (ex RIM), con il suo BlackBerry OS10, si sono affiancate tre figure nuove nel mondo mobile, ma non così sconosciute in altri lidi.
OK, sarebbero quattro considerando anche il sistema operativo open-source Tizen: ma Samsung, che ne segue lo sviluppo, al momento non sembra essere così interessata alla sua diffusione al di fuori di alcuni "piccoli" (ma-esplosivi-e-potenzialmente-giganti) mercati emergenti.


Jolla, Mozilla e Canonical hanno deciso di scendere in campo per dimostrare che è possibile portare nuovi concetti e nuove soluzioni anche nel mobile, nonostante le direzioni sempre più comuni intraprese dai player più blasonati.

Sailfish OS (recensione), Firefox OS (recensione) ed Ubuntu Touch (recensione) li abbiamo imparati a conoscere nel corso dei mesi passati: qui sul blog sono stati sia oggetto di analisi approfondite, sia fonte di aggiornamenti sull'avanzamento dei loro stessi sviluppi.

In questi giorni, visto l'arrivo del firmware 1.1.4.29 per SailfishOS, la mia curiosità nel provare le versioni nightly di FirefoxOS 3.0, ed il recente nuovo update r21 di Ubuntu Touch, ho deciso di mettere a diretto confronto queste tre piccole realtà.

Nel lunghissimo, ma suddiviso per capitoli, video seguente potete avere una panoramica generale dei tre sistemi operativi, con anche qualche mia considerazione sia sui telefoni in sé, sia sulle scelte effettuate dalle varie aziende nell'implementazione dei rispettivi OS.



Ognuno di questi sistemi, potremmo definirli alternativi, ha come avete potuto vedere le proprie peculiarità. Ma anche qui, tutti e tre fanno sfoggio dell'etichetta open-source per fare breccia nei cuori degli appassionati.



Jolla, tra i tre, è quella che ha costruito l'ecosistema "meno aperto": Sailfish OS (come distro-Linux) è chiaramente open-source, ma ci sono componenti costruite al di sopra del cuore di cui non sono stati -e non si sarà se lo saranno mai- rilasciati i sorgenti. Altre app, invece, sono state aperte (o lo saranno a breve) per velocizzarne lo sviluppo.

L'intento della start-up finlandese è stato chiaro fin dall'inizio: creare uno strato open che attiri sviluppatori e smanettoni, tutto gestito attorno ad una community di utenti attivi e interessati al progetto stesso. E su questo strato creare un business fortemente controllato dall'alto: gli avanzamenti dell'OS (dalla UI alla UX), lo sviluppo dell'ecosistema (dalle applicazioni accettate sullo store alla compatibilità con Android), le partnership (con OEM, operatori e aziende di accessori), i dispositivi dimostrativi (come telefono e tablet).

Tutto passa tra le mani dei 120-130 ragazzi del team, che tengono sempre saldamente in considerazione le segnalazioni e le richieste provenienti dagli utilizzatori stessi della piattaforma.

Essendo una piccolissima realtà tutto ciò è facilmente comprensibile: senza una forte presenza su tutta la filiera, la possibilità di essere spazzati via sarebbe decisamente alta.


L'ultimo update dell'OS Äijänpäivänjärvi (1.1.4.29), rilasciato proprio in questi giorni, non fa altro che confermare la direzione dei lavori verso la futura release 2.0 prevista per l'estate: con essa ci sarà -finalmente- anche l'apertura ai distributori OEM, i quali potranno certificare i loro device e venderli con Sailfish OS preinstallato.
Le principali novità appena rilasciate riguardano la tastiera ora splittabile quando in landscape, le nuove mappe aggiornate, il supporto al push per il protocollo IMAP nelle e-mail, ed una marea di bug-fix (molti dei quali a vecchi problemi grafici).
La nuova release è decisamente stabile e performante.

Jolla spera di riportare in Europa l'interesse ed il controllo sui sistemi operativi installati nei nostri gingilli tecnologici: attualmente, infatti, gran parte della tecnologia di cui facciamo largo uso quotidianamente è mossa da software progettato e sviluppato negli USA.
Ed i vari moti degli ultimi tempi possono essere un buon incentivo per gli scopi della start-up.



Esattamente l'opposto è quanto "tirato su" da mozilla. Il suo Firefox OS è un progetto collaborativo al 100%: non ci sono componenti chiuse ed anche il linguaggio utilizzato per la realizzazione della UI e di tutte le applicazioni che vi ruotano attorno è standard ed aperto.

L'ente no-profit è una figura importante nel panorama mondiale del web, e si occupa principalmente di standardizzare il funzionamento delle tecnologie che danno vita alla grande rete mondiale. E la discesa nel campo mobile è solo un altro passo verso questa direzione: sempre più utenti si stanno avvicinando ad Internet da mobile, e la necessità di intervenire direttamente sul campo era alta.

Esattamente come gli altri progetti seguiti dalla fondazione e dalla community di mozilla, anche su Firefox OS è possibile collaborare mettendo le mani direttamente sul codice, correggendo bug ed anomalie, partecipando alle traduzioni, e insomma dando il proprio contributo.


Lo sviluppo dietro Firefox OS è stato alacre negli ultimi due anni: si è passati dalla versione 1.x alla 2.x, finalmente pronta ad essere preinstallata nei dispositivi in arrivo nei prossimi mesi sul mercato. Ma ovviamente il lavoro su di un OS non si ferma mai, e mozilla con il supporto della community ha già avviato il ramo 3.x.

Questa versione al momento non si discosta molto dalla 2.2, ma introduce principalmente alcuni effetti grafici di feedback per l'utente, il copia ed incolla globale, le nuove raccolte nella home screen e la ricerca adattiva sempre presente in alto nella barra di stato.
E a proposito di status bar, essa ora assume il colore predominante nell'app in uso a tutto schermo, e gli indicatori delle notifiche perse sono stati sostituiti da una barra azzurrina che ci indicherà, qualora fosse necessario, l'attività all'interno della tendina, invitandoci ad espanderla per controllare cosa stia succedendo.



Canonical, infine, è sicuramente più famosa per la sua distribuzione Ubuntu per sistemi desktop e server. Ma il suo fondatore, Mark Shuttleworth, qualche anno fa ebbe una intuizione:
  • sempre più utenti si stanno avvicinando al mondo del personal computing tramite dispositivi mobili,
  • l'Internet delle Cose, come detto più volte, sarà il centro degli sviluppi nei prossimi anni,
  • e l'intrattenimento in casa è sempre stato lasciato in secondo piano dai produttori, ma ultimamente sta vivendo una seconda vita
Per questi motivi si intraprese la strada della declinazione della "distro umana" in varianti per telefoni/tablet, TV ed in ultimo per dispositivi IoT.
In questo proliferare di nuovi rami fu chiaro fin da subito che occorreva convogliare sotto identiche diramazioni le librerie ed in generale quanto più codice possibile. Magari unificando anche l'aspetto estetico delle interfacce utente.

Occorreva far convergere tutto verso un unico core, sul quale applicativi e servizi fossero in grado di adattarsi in base al sistema in uso dall'utente: che fosse stato un telefono, piuttosto che il TV od anche il PC, l'esperienza finale, la UI e le applicazioni dovevano essere identiche, ma adattate alle differenti risoluzioni degli strumenti di output (monitor, display, e quant'altro).

Questa idea di convergenza è oggi ancora lontana: si parlava del suo arrivo già a fine 2013 (con il progetto Edge in crowd-funding) e poi nel 2014 con i primi ubuntu phones (però mai commercializzati).
Ora si è segnato sul calendario l'appuntamento in corrispondenza del rilascio della versione 15.10 di Ubuntu, Wily Werewolf, con la promessa del primo dispositivo in grado di trasformarsi da telefonino a "computer da battaglia" semplicemente collegandolo ad un monitor esterno e ad una tastiera + mouse via BT.

Sarà vero questa volta? Sì? No? Staremo a vedere...
Nel frattempo i lavori per arrivare alla bramata convergenza proseguono con buon profitto:



Purtroppo il primo dispositivo al mondo ad essere stato commercializzato con la versione Touch per dispositivi mobili dell'OS di Canonical molto probabilmente non godrà di tali funzionalità per limiti hardware.

Ad ogni modo, lo stato dei lavori attuali è principalmente rivolto all'ottimizzazione di tutto lo stack a livello mobile e nel mondo dell'IoT, ma anche sul desktop. L'impegno più grande è richiesto da Unity 8, l'interfaccia che andrà ad unificare visivamente i vari mondi e che dovrà essere in grado di far adattare correttamente tutte le applicazioni in base al dispositivo in uso.


Ma questa visione di convergenza totale tra i vari mondi è stata negli ultimi giorni molto spesso tirata in ballo per via degli annunci fatti da Microsoft durante il suo ultimo keynote.


Anche Windows 10 cercherà di unificare sotto la stessa ala tutto il mondo che ruota attorno alle soluzioni sviluppate dall'azienda di Redmond: del resto sarà l'ultima versione di Windows come lo conosciamo. Presto il famoso sistema operativo diventerà una piattaforma a servizi e le applicazioni realizzate per tale ecosistema saranno universali, in grado -in teoria- di girare su qualsiasi dispositivo dotato dell'ultima versione dell'OS, la 10.

E Continuum è il nome della funzionalità che permetterà di mostrare su un display più grande, con interfaccia adattata, quello che si sta visualizzando sul telefonino/tablet.

Tralasciando le gare da primato che la stampa ed i giocatori in campo hanno intrapreso circa chi sarà il primo a rilasciare unificazione e "funzioni di trasformazione", le soluzioni proposte da Microsoft e Canonical sono leggermente differenti.

Con Continuum non tutte le applicazioni saranno in grado di trasformarsi da un formato all'altro, visto che già in partenza non tutte le app saranno eseguibili sullo smart-phone/tablet. Ma a parte ciò, quello che giungerà sul monitor sarà un riadattamento della UI in modo da somigliare all'interfaccia della stessa app in versione desktop completa.
Con la convergenza in Ubuntu, invece, come visto nel precedente video, al collegamento di un sistema di input come mouse o tastiera, l'intera applicazione switcherà di modalità: passando non solo dalla visualizzazione pensata per lo smart-phone a quella per lo schermo più grande, ma riattivando funzioni e caratteristiche complete della stessa app.

Sicuramente più ambizioso e di difficile realizzazione, e per questo motivo da anni ancora incompiuto, il progetto di Ubuntu tenterà di rivoluzionare il modo stesso con il quale attualmente interagiamo con i nostri dispositivi.



Il concetto di unificazione di tutto il mondo tecnologico è uno degli argomenti più interessanti degli ultimi anni, ed è stato affrontato (e lo sarà ancora futuro) dai vari big seguendo strade differenti.

Microsoft e Canonical hanno puntato alla convergenza fisica: unificare API e servizi in modo che in futuro le applicazioni scritte per i rispettivi ecosistemi siano universali ed in grado di essere eseguite con continuità in tutti i nostri device, o nello stesso dispositivo in modalità differenti in base alla nostra interazione (diretta o tramite accessori connessi allo stesso).

Apple e Google hanno puntato sulla convergenza dei contenuti: sulla possibilità, cioè, di interrompere e riprendere quello che stavamo facendo su di un dispositivo e continuarlo senza interruzioni su di un altro. Grazie alla potenza del cloud e delle reti sempre più veloci, oggi è possibile mantenere attivo lo stato dei lavori nell'etere e continuarlo in ogni momento sia dal fisso che in mobilità senza problemi.

Google, poi, ha fatto un passetto in più e porterà il suo ecosistema di applicazioni su qualsiasi piattaforma per la quale è presente Chrome: grazie ad una estensione del potente browser -ma forse è meglio chiamarlo sistema operativo a tutti gli effetti- sarà possibile eseguire tutte le applicazioni scritte per il robottino verde.


Insomma, viviamo in un mondo che attualmente si divide in due metà decisamente ben delineate: da una parte gli applicativi utente (applicazioni o, perché no, direttamente tutto l'OS) che sono sempre più aperti per avvicinare sviluppatori ed utilizzatori, e dall'altra servizi al di sopra di tali applicativi che sono sempre più chiusi e accentratori per far monetizzare e controllare l'intero ecosistema dall'alto dai rispettivi ideatori.


Sembra che l'epica battaglia tra software commerciale e software open-source stia cedendo il posto ad un business fondato sull'accoppiata "pacifica" dei due mondi: open-source software e closed services.

E voi che ne pensate?
Ritenete buono/valido questo tipo di approccio che si è venuto ad imporre rispetto al passato?

Fatemi sapere nei commenti!

A presto!