Miguel De Icaza ha pubblicato giorni fa un post piuttosto sconvolgente circa il suo passaggio definitivo ad OSX, il sistema operativo di casa Apple.

Prima di addentrarsi nei dettagli dell'articolo occorre ricordare chi Miguel De Icaza sia. Miguel è uno sviluppatore eccezionale, autore prima di Midnigth Commander, e poi fondatore e leader del progetto Gnome, uno dei desktop piu' famosi per ambienti Unix e Linux. E' anche fondatore di Mono, il "port" della tecnologia .NET di casa Microsoft su piattaforma Unix, ed è stato, fra le altre cose, fondatore di Ximian e ora di Xamarin. Miguel è una mente brillante, ha dato prova nel tempo di essere un hacker eccellente e di saper vedere nel sistema Open Source una ragione di essere e un modo di fare business. E' ovviamente un forte sostenitore del Free Software, e Mono inizialmente tanto criticato si è rivelata una delle sue ennesime scelte azzeccate: rendere i clienti Microsoft interessati anche al mondo Unix e Linux (free).

Solitamente gli hacker "impegnati" del calibro di Miguel non si lasciano "corrompere" dal mondo Apple. Parliamo di gente che è in grado di aggiustare i driver del proprio computer se non funzionano, e quindi di persone che non devono aspettare un qualche rilascio su mainstream o una patch solo per avere funzionante il tasto del volume del loro nuovo portatile.
Ecco quindi perche' il post di Miguel è sembrato sconvolgente.

E il cambiamento di Miguel verso il mondo Apple era gia' stato annunciato da un precedente post in cui spiegava come Linux avesse perso la corsa al desktop. http://tirania.org/blog/archive/2012/Aug-29.html

Ultimamente la discussione sui desktop alternativi a OSX e a Microsoft Windows diviene sempre piu' serrata, e molti utenti sui forum continuano a chiedere a gran voce supporto per i loro computer.
Il post di Miguel sostanzialmente puo' essere riassunto in "uso OSX perche' l'hardware funziona e ho accesso ad un sistema Unix", pensiero condiviso da sempre piu' hacker. Perché OSX funziona? Beh tutto sommato è semplice: la Apple fornisce un sistema completo, ovvero hardware e software. Ne consegue che la Apple ha le specifiche hardware prima ancora di installare il software, e quindi puo' creare il connubio perfetto cambiando il software ad-hoc o ricercando hardware differente e meglio compatibile. E tipicamente un utente Apple non farà modifiche all'hardware se non per sostituire un componente rotto con uno rigorosamente Apple (e rigorosamente bianco con una mela morsicata sopra).
Questa cosa mi ricorda molto le workstation Sun: funzionava tutto alla perfezione, e vi erano perfino comandi appositi per controllare le schede grafiche 3D, e tutto questo era possibile perché chi forniva il software era, prima di tutto, un fornitore hardware.

Nello scenario del commodity hardware la situazione é invece differente: Microsoft stringe da sempre alleanze con i produttori di hardware per avere la possibilità di fornire driver di (mediocre) qualità. Di contro, i sistemi liberi si trovano nella difficoltà di non aver accesso a tutto l'hardware esistente, come pure di non avere sufficiente forza lavoro per implementare nuovi driver e stare al passo con il mercato. Certo, fino a che i driver si possono appoggiare a degli standard il gioco regge. O meglio puo' reggere: l'hardware puo' infatti essere affetto da bug, e non sempre questi sono di facile soluzione. In tutto questo chi produce anche l'hardware si trova nell'indiscussa posizione di vantaggio che gli consente di fornire ai clienti un prodotto finito solo quando tutto sia ben testato: i bug vengono corretti o i problemi hardware vengono risolti sostituendo addirittura i componenti fallati.

In altre parole, il vero nocciolo della questione e' il supporto hardware e i relativi driver.
Gia', i driver, sono questi quelli che gli utenti chiedono a gran voce, e sono questi quei componenti che i sistemi open tanto faticano a fornire.
E si badi, non è un problema di compatibilità binaria, come descritto da Miguel: sistemi operativi come FreeBSD (che fondamentalmente importano "tutto") non sono messi bene nel ramo desktop, anzi sono ancora indietro rispetto a Linux.

E' quindi forse un problema legato all'API di [Open/Next]Step e alla scelta del linguaggio, Objective-C, rispetto all'uso ad esempio del C++ di KDE o del C (ad oggetti) di Gnome/GTK?
Io non penso, visto che il progetto GNUStep, fondamentalmente una implementazione libera della suddetta API compatibile con l'implementazione OSX, non ha portato piu' avanti il desktop Linux. Infatti, nonostante WindowMaker sia un ottimo window manager, e uno dei miei preferiti quando ero un'apprendista unixiano, non mi pare sia uno dei piu' apprezzati, anzi credo di poter affermare che ricopre un ruolo di nicchia. Si lo so, WindowMaker e GNUStep sono progetti tutto sommato separati e GNUStep non necessita nemmeno di un window manager, ma mi si passi il ragionamento.

La soluzione quindi e' forse condividere la ricerca sui driver open in modo che tutti i vari sistemi possano ispirarsi a risultati gia' ottenuti per incrementare il loro supporto? Non mi pare nemmeno questa la strada, visto le forti discrepanze fra i vari OS.

Creare allora livelli di astrazioni che mascherino l'hardware (ad es. Solid di KDE)? Si, sulla carta, ma alla fine quello che capita e' che ogni sistema prima o poi reinventa un pezzo di ruota. Ad esempio Gnome e' ormai fortemente ispirato a Linux, e quindi di difficile adattamento a BSD; PCBSD ha scelto deliberatamente di riscrivere quasi tutti i tool gia' inclusi in KDE piuttosto che "adattarli", e cosi' via.

Allora la soluzione e' prendere un sistema OSX che funziona out-of-the-box?
Beh, saro' forse un purista, ma non penso sia nemmeno questa la soluzione. Anzi, penso sia la morte del sistema Open Source. Eh si, perche' se e' vero che tutti noi abbiamo un lavoro da fare e un sistema che non si blocca e' meglio di uno che ha dei problemi, comprare un sistema proprietario, per quanto buono sia, significa ammettere esplicitamente il fallimento del movimento Open Source e negare il nostro supporto ad esso.

Vale la pena rifletterci.

The article Passare da [OpenSource Desktop] a OSX è giusto? has been posted by Luca Ferrari on April 2, 2013