Risorse finite, strategie indefinite di Roberto Rosselli Del Turco
Qualche tempo fa, un giorno dello scorso autunno, ho letto per caso quello che, secondo i curatori, era un messaggio di posta elettronica di Bill Gates ai suoi collaboratori, avente come tema, fra le altre cose, la possibile minaccia del sistema operativo Linux come concorrente non nel settore dei server, ma in quello ben più vasto dei sistemi desktop, i computer usati da milioni di utenti per gli usi più diversi. In quest'ambito, le statistiche sono tristemente famose: più del 90% dei computer esistenti sul globo terracqueo impiegano un sistema operativo prodotto da Microsoft (Windows 3.x, Windows 9x o Windows 2000 Workstation).
Recentemente, tuttavia, questa tendenza al perdurare di un monopolio Microsoft è stata messa in discussione proprio dai sistemi operativi open source, in particolare da Linux, quindi è comprensibile l'interesse che tale sistema suscita non solo tra gli utenti, nella stampa e presso i produttori di hardware, ma anche in casa del monopolista di turno, ovvero Bill Gates. In passato, l'atteggiamento della MS è stato sempre, con una piccola ma significativa eccezione , quello di arrogante supponenza nei confronti di un sistema creato grazie alla collaborazione di migliaia di "dilettanti". In quest'ultima email di Gates non sembrano esservi, vera o falsa che sia, sostanziali mutamenti di posizione: le sue (?) parole, tuttavia, mi hanno portato a una serie di riflessioni sullo stato attuale dello sviluppo di Linux, e sulle tendenze a breve termine.
In sostanza, le abbreviazioni del boss della MS possono essere condensate in poche righe: le risorse disponibili per lo sviluppo di Linux sono limitate, in particolare se si considera che gran parte degli sviluppatori Linux operano nel loro tempo libero; e Linux resta inadatto a un uso generico da parte degli utenti non-business, dato che ancora non dispone di un sufficiente supporto per il multimedia, come testimoniano, ad esempio, i problemi nel fornire un supporto per i lettori di DVD Video.
A seconda del punto di vista, queste affermazioni possono essere considerate talmente generiche da essere necessariamente vere (qualunque progetto software, o hardware, non può che disporre di un numero di risorse finite, visto che finito è il numero di risorse materiali e umane a disposizione del genere umano) oppure, inquadrandole in un contesto più preciso, del tutto inesatte (si veda il recente impegno di IBM, che ha dichiarato di voler investire un miliardo di dollari nello sviluppo di software per Linux; o le decine di programmatori messi a disposizione del progetto GNOME da Sun; o le risorse investite dalla comunità finanziaria in questo e altri progetti; etc.). Lasciando da parte la questione del supporto per il multimedia (per ora ...), su cui peraltro ci sarebbe molto da dire riguardo le pastoie allo sviluppo del software libero introdotte dalla stessa MS e dai produttori di hardware, il pensiero che mi ha colpito mentre leggevo questo testo è stato il seguente:
"Le risorse su cui può contare Linux e il software libero in genere sono molto maggiori di quello che può immaginare Bill Gates, ma che uso stiamo facendo di tali risorse?"
Premetto che l'uso del plurale è, in un certo senso, una forzatura, in quanto il mio contributo alla comunità del free software è molto limitato: non sono un programmatore, e nemmeno dirigo una società che sviluppa software libero, mi limito a tradurre documentazione (per la Mandrakesoft, la mia distribuzione Linux preferita) e a fornire feedback per alcuni programmi in beta testing (Evolution, ad esempio). Anche l'opinione di un umile utente ha il suo peso, comunque, e poi questo è un paese libero :)
Tornando alle risorse finite e al loro uso, ho notato con una certa preoccupazione che nel mondo del software libero vi è una fortissima tendenza alla duplicazione, o peggio, nello sviluppo dei programmi e anche dei progetti di più largo respiro. Questo è un fenomeno normale e, se contenuto entro certi limiti, del tutto fisiologico e persino positivo: del resto, gran parte del software libero non è nato proprio per soddisfare un'esigenza individuale, colmare una nicchia nel panorama software esistente? La mancanza di un approccio centralizzato allo sviluppo del sistema e dei programmi che girano sotto di esso, a favore di una collaborazione decentralizzata e a volte del tutto estemporanea (si pensi all'intervento individuale mirato unicamente a correggere un singolo bug, ad esempio) non ha forse permesso a Linux di crescere e sopravanzare altri sistemi operativi, anch'essi liberi peraltro, caratterizzati dallo schema di sviluppo top-down (qui il riferimento è al BSD nelle sue varie incarnazioni)?
La pletora di editor di testo, file manager, programmi di posta elettronica etc. non sono che un piccolo prezzo da pagare per questa libertà. Alcune componenti critiche di Linux, come il kernel o XFree86, sono comunque affidate a gruppi di sviluppo compatti ed efficienti; si pensi anche allo sviluppo di Apache, GNOME, KDE, etc. Ma se qualche dozzina di editor di testo tra cui scegliere non costituiscono un problema, dove si nascondono i pericoli di spreco delle risorse? Dov'è che viene reinventata continuamente la ruota?
Secondo molti, l'esistenza di due progetti distinti e sostanzialmente incompatibili per lo sviluppo di un ambiente desktop integrato costituirebbe un pericoloso spreco da eliminare, con una fusione o con la rinuncia di uno dei due gruppi, il prima possibile. Mi riferisco, come avrete intuito, alla spesso difficile coesistenza dei progetti GNOME e KDE, due ambienti integrati egualmente validi e interessanti, per quanto ciascuno presenti pregi e difetti, sviluppati in maniera indipendente e in diretta concorrenza l'uno contro l'altro per il predominio sul desktop di Linux e non solo.
Certo è innegabile che concentrare gli sforzi in un'unica direzione permetterebbe al progetto "superstite" di crescere più rapidamente, anche se probabilmente la velocità di sviluppo non verrebbe esattamente raddoppiata, ma non sono sicuro che questo sia realmente indispensabile. In primo luogo, mi sembra che entrambi i progetti dispongano di risorse sufficienti per il proprio sviluppo: GNOME si avvia verso la versione 1.4 ed è già tracciato il cammino che porterà alla 2.0, mentre KDE sta per raffinare la nuova versione 2.0, un notevole passo in avanti rispetto all'ultima versione stabile, con la ormai prossima 2.1. In secondo luogo, come utente avanzato (per lo meno questo penso di me stesso :) non posso che esser contento di avere una scelta, se non altro nel caso uno dei due progetti venga abbandonato o resti indietro rispetto all'altro; al momento prediligo GNOME, ma seguo anche gli sviluppi di KDE, quest'ultimo è certamente più avanzato e ricco sul piano delle applicazioni in stile office che propone all'utente.
Un giorno, forse, esisterà un unico, ottimo ambiente grafico integrato per il desktop, e questo risolverà molti problemi soprattutto per quanto riguarda la coerenza del look and feel, vero tallone di Achille di Linux rispetto a Windows. Quando mostro prima GNOME e poi KDE all'ignaro utente Windows, infatti, in genere ricevo commenti del tipo "Ma è sempre Linux?" o "Perché le finestre sono tutte diverse?" (notare che ancora non ho accennato ai 6 milioni circa di diversi window manager che esistono per Linux ... :) Su questo tema tornerò tra poco, per ora basti dire che Linux e la GUI stanno ancora cercando il modo più indolore di convolare a giuste nozze, in questa fase anche la coesistenza di più progetti ha un suo senso e una sua utilità.
Il problema è assai più insidioso, e coinvolge in buona misura le varie case software che sviluppano le varie distribuzioni Linux. Poiché ciascuna di esse propone in sostanza lo stesso prodotto, il criterio di scelta, l'appeal nei confronti del compratore viene affidato al "valore aggiunto" che dovrebbe differenziarle, concetto che può assumere forme diverse:
-
una documentazione ricca ed esauriente;
-
il supporto telefonico e/o tramite email;
-
lo sviluppo di programmi di installazione, configurazione e gestione del sistema specifici per la distribuzione XYZ.
Visto che difficilmente si possono fare danni offrendo assistenza agli utenti e provvedendo in primo luogo perché dispongano di una documentazione adeguata, il punto critico è il terzo. Sono l'unico ad aver notato come vi sia una proliferazione impressionante dei programmi di configurazione e aggiornamento del sistema? Prendiamo ad esempio la distribuzione Linux della Mandrakesoft, supponiamo che una volta terminata l'installazione voglia finire di configurare o modificare la configurazione del sistema, in tal caso posso scegliere tra:
-
i programmi scritti specificamente per la Linux Mandrake, in gran parte raggiungibili grazie al programma "contenitore", DrakConf;
-
linuxconf, che dispone di due diverse interfacce (console e X);
-
webadmin, programma che fa uso di un'interfaccia basata su navigatore web;
-
se ho installato la versione Helix di GNOME, tra non molto saranno disponibili gli Helix Setup Tools, attualmente in fase di beta testing;
-
un discreto numero di programmi di utilità relativi a caratteristiche specifiche del sistema, come kups per configurare il sistema di stampa cups etc.
A questi si aggiungano i vari centri di controllo di GNOME e KDE, e il quadro dovrebbe essere chiaro. Le cose si complicano ulteriormente se si prendono in considerazione i programmi di gestione dei pacchetti (kpackage, rpmdrake, gnorpm) e quelli di aggiornamento online degli stessi (qui però la scelta è ristretta in base all'ambiente grafico usato, per GNOME abbiamo Helix Update oltre a Mandrake Update e, tra poco, i servizi offerti dalla Eazel). Si noti che nessuno di questi programmi, al momento, spicca per eccellenza, facilità d'uso o stabilità rispetto agli altri, con la possibile eccezione di Linuxconf: questo porta l'utente a scegliere programmi diversi per le varie opzioni di configurazione e gestione del sistema, e spesso questo comporta non solo una generale confusione di stili, toolkit grafici, disposizione dei menu etc., ma anche l'uso di programmi che appartengono a un ambiente grafico diverso da quello che si utilizza normalmente, con un generale spreco di memoria dovuto al caricamento di librerie supplementari per quel singolo programma. Pur utilizzando GNOME, ad esempio, per gestire i pacchetti RPM della mia distribuzione Linux Mandrake uso kpackage, che trovo di gran lunga migliore rispetto all'offerta di GNOME (gnorpm) o della Mandrakesoft (rpmdrake); ovviamente questo significa caricare delle librerie relative all'ambiente KDE che altrimenti non occuperebbero memoria accanto a quelle di GNOME ...
A differenza dei mille editor di testo che esistono per Linux, insomma, questa babele dei programmi di configurazione comporta conseguenze molto più negative:
-
si verifica un effettivo e notevole spreco di risorse: come ho detto, la gran parte dei programmi in questione sono in fase beta o addirittura pre-beta, nessuno di loro è in grado di soddisfare tutte le esigenze dell'utente, le cose sarebbero di gran lunga diverse se gli sforzi venissero concentrati su pochi progetti;
-
la configurazione del sistema è affidata a un insieme di programmi che obbediscono a strategie e schemi assai diversi: si va dal programma che contiene più sotto-programmi (DrakConf), un po' secondo lo schema del Pannello di controllo di Windows 9x, a quello centralizzato suddiviso in diverse sezioni (linuxconf), al programma singolo (Xconfigurator, kups);
-
dato che tali programmi si appoggiano a toolkit diversi, anche l'aspetto esteriore è assai disomogeneo: alla scarsa, per non dire inesistente, consistenza funzionale corrisponde un'altrettanto sconfortante inconsistenza grafica.
In conclusione, la mancanza di uno sviluppo centralizzato ha avuto come conseguenza, in questo caso, il fatto che in un'area critica come la configurazione del sistema Linux è servito da una selva di programmi incompatibili, di efficacia assai variabile, disomogenei sul piano dell'interfaccia grafica e su quello funzionale, pochi dei quali hanno raggiunto una buona stabilità e completezza nel loro ambito; le cose peggiorano ancora se prendo in considerazione l'idea di passare da una distribuzione all'altra: un nuovo insieme di programmi da imparare ... Possiamo permetterci ancora a lungo questa situazione? Come può Linux avere successo come sistema desktop quando un compito fondamentale come la configurazione del sistema richiede all'utente medio un corso accelerato nell'uso di toolkit e programmi diversi, a volte anche della linea di comando?
Non possiamo certo contestare alle software house il diritto di aumentare il valore delle varie distribuzioni sviluppando propri strumenti di configurazione e gestione del sistema: in fondo l'idea (aiutare l'utente a gestire il sistema) è buona, peccato che al momento l'obiettivo non possa proprio considerarsi raggiunto, a meno di futuri, ingenti investimenti in questo settore da parte di ciascuna delle distribuzioni, quindi aumentando lo spreco di risorse invece di diminuirlo; risorse che potrebbero essere altrimenti spese per ovviare al vero punto debole di Linux, il supporto per il multimedia (invece di sprecare denaro per reinventare la ruota, perché non spenderlo per la licenza di qualche CODEC, o per sviluppare un lettore di DVD? Questo sì che sarebbe valore aggiunto per qualsiasi distribuzione!). Come incoraggiare i produttori di distribuzioni Linux e, più in generale, gli sviluppatori a fare un miglior uso delle proprie, non infinite, risorse?
Per quanto sia difficile sospettarne l'esistenza, vista la quiete che lo caratterizza, esiste un ente, il Linux Standard Base, deputato a stabilire delle caratteristiche minime che dovrebbero essere comuni a tutte le distribuzioni Linux; sfortunatamente, come accennavo prima, sono ormai mesi che non dà segno di vita. Nel caso specifico, se il LSB indicasse come parte indispensabile di ogni distribuzione Linux uno dei programmi di configurazione più avanzati, ad esempio Linuxconf, questo fatto costituirebbe un chiaro segnale e un invito a concentrare gli sforzi di sviluppo su quel programma. E se esistesse un tale punto di riferimento, gli sviluppatori, compresi quelli delle varie distribuzioni, sarebbe incoraggiati a focalizzare i loro sforzi su di esso, oppure a sviluppare altri programmi utili a differenziare le singole distribuzioni, ad esempio programmi relativi al multimedia.
|
|
LINUX |
OPENSOURCE |
Dott. Roberto Rosselli Del Turco
Ricercatore presso la Facoltà di Lettere dell'Università di Torino, da lungo
tempo utente amighista, in passato ha collaborato per circa un anno con Amiga
Magazine. Dall'inizio degli anni '80 si interessa attivamente di informatica, in
particolar modo per quanto riguarda le tendenze all'evoluzione e all'innovazione
dei sistemi operativi contemporanei. Attualmente sta concentrando la sua
attenzione su Linux e sul fenomeno del free / open source software.
| |
Puoi contattare l'autore scrivendo a:
rosselli@diff.org
| |
Altri articoli dello stesso autore:
Migrazioni possibili
Era Post Microsoft (traduzione)
Installazione Linux Mandrake 7
Risorse finite, strategie indefinite
|
|