jump to navigation

Linux Myth #1: Reliability March 12, 2006

Posted by laspinanelfianco in Programmazione.
trackback

Uno dei più vecchi e consolidati miti che riguardano il mondo Unix, e di conseguenza Linux, è che il software Unix, soprattutto quello Open Source sia “indistruttibile”. A sostegno di questa tesi si portano le statistiche di funzionamento dei server web (Apache) e altri servizi di rete, facendo notare i memory leak ed i crash cui vanno soggetti i concorrenti commerciali (M$ IIS, tanto per non fare nomi).

Ma è vero?

No.

Per quanto possa sembrare strano, non è così. La robustezza dei programmi Unix, in particolare quelli Open Source, non dipende affatto dalla loro natura Unix o dalla loro natura Open. Dipende da due fattori che non hanno nulla a che fare con tutto questo:

  1. Si tratta di programmi relativamente semplici, in particolar modo si tratta di programmi privi di interfaccia grafica. La GUI, da sola può far triplicare le dimensioni di un programma e, con le dimensioni, il numero di bug presenti.
  2. Si tratta di programmi molto vecchi e molto ben collaudati. Questo è, ad esempio, il caso di Apache (erede del server httpd di NCSA, che risale al 1991).

Non appena vengono meno questi due aspetti, il software Unix e quello Open Source comincia a creare problemi esattamente quanto il tanto vituperato “pattume” Windows commerciale.

In questi giorni sto usando OpenOffice 2.01 e KOffice su KDE 3.5 su Mandriva, SuSe, Debian e su un vecchio laptop con VectorLinux 5. Sto riscontrando dei problemi che, un tempo, avrebbero fatto pensare a M$ Office su Windows:

  • OpenOffice e KWord che vanno in crash, senza preavviso.
  • OpenOffice che si rifiuta di aprire alcuni dei suoi stessi documenti, senza nessuna apparente ragione.
  • KWord che, senza apparente motivo, si mette a funzionare al rallentatore

Si tratta, sia ben chiaro di problemi tecnici risolvibili, in alcuni casi già noti agli sviluppatori ed in via di soluzione ma… sembra ugualmente di avere per le mani M$ Office e Windows (quelli di diversi anni fa, oltretutto, perchè quelli più recenti sono decisamente più affidabili).

Che sta succedendo?

Semplicemente sta succedendo che OpenOffice e KOffice sono programmi da milioni di righe di codice, sviluppati cooperativamente da migliaia di persone e dotati di una pesantissima GUI che, da sola, rappresenta il 70% del codice. Il altri termini si tratta di oggetti di complessità paragonabile ad uno Space Shuttle o, per fare un’altro esempio, all’impianto FIAT di Mirafiori. Non si tratta più di programmi a linea di comando da qualche decina di migliaia di righe di codice, sviluppati quasi completamente da un singolo geniale programmatore, come un server web. Come se non bastasse, si tratta di programmi “giovani”, almeno in confronto alla loro complessità. Non c’è ancora stato il tempo di incappare in ogni singolo bug e di correggerlo, nemmeno lavorando in modalità “Open Source”.

Questo dovrebbe insegnare una cosa fondamentale agli sviluppatori del mondo “open”: non ci sono pallottolle d’argento con cui combattere il lupo mannaro dei bug. L’unico modo di costruire programmi affidabili consiste nel lavorare duramente sopra di essi per anni. Non basta una licenza GPL per trasformare un programma in una fortezza inviolabile e non basta un numero di release superiore a 1.0 per avere un programma stabile.

L’esperienza che tutti abbiamo fatto a suo tempo con Windows e MS Office, insieme a quello che sta succedendo ora a OpenOffice e KOffice, ci dovrebbero avere insegnato già una cosa: il software GUI-based comincia a diventare realmente stabile dopo la release 3.0. Fino ad allora, avremo a che fare con qualcosa di poco affidabile.

Di questo bisogna tenere conto. Il software Unix/Linux, specialmente quello Open Source è già adesso più che utilizzabile per le normali applicazioni d’ufficio e per moltissime applicazioni industriali, ma va trattato con un minimo di intelligenza.

La mia personale speranza è che la comunità di sviluppatori riesca a concentrare i propri sforzi su questi programmi “cruciali” ed a renderli stabili nel minore tempo possibile. Se c’è qualcosa che può ammazzare sul nascere l’entusiasmo dei singoli e delle aziende per il mondo Open è proprio una scarsa affidabilità dei programmi.

Comments»

1. Daniele - March 12, 2006

Questa informazione mi mancava, non sapevo che le GUI dei programmi portavano via la maggior parte del codice del programma. Purtroppo anche io devo dire che in passato ho avuto problemi con openoffice, ora lo sto usando pochissimo ma comunque la versione 2.0.1 ha risolto molti dei problemi che avevo.

Grazie mille, sei un’ottima fonte di informazioni utili.

2. Daniele Masini - March 13, 2006

C’è comunque da mettere in evidenza il fatto che i software open source permettono a chiunque di vedere (ed eventualmente modificare) il sorgente e quindi verificare la qualità del codice che può essere fonte di bug o di comportamenti “strani” volutamente non dichiarati dal produttore. Quindi sicuramente il software open source dà maggiori garanzie di fiducia sul suo comportamento e permette a chiunque ne abbia le conoscenze di apportare eventuali modifiche, correggendone i bug o introducendo nuove funzionalità, e redistribuirle a tutti. Con un software closed source è necessario attendere che il produttore apporti le modifiche al software per correggere i vari bug che si presentano e comunque non è possibile analizzarne i sorgenti per verificare che non vi siano comportamenti non documentati. Ad esempio, chi può essere sicuro del fatto che un software di videoscrittura non faccia nient’altro che permettere all’utente di scrivere un testo: potrebbe tentare di comunicare telematicamente con il produttore inviandogli informazioni o altre operazioni che l’utente potrebbe non approvare.
In quest’ottica è di gran lunga preferibile l’uso di software open source rispetto a quello closed source.

3. dieEasy - March 18, 2006

mi viene in mente una delle grandi differenze di vedute tra due personaggi chiave del mondo open: Richard Stallman e Linus Torvalds

in effetti una delle maggiori differenze tra i due è che uno (il padre della FSF) vede il software “libero” e dà a questo aspetto la massima importanza, dicendo tranquillamente che per lui la qualità del software può anche essere inferiore a un software commerciale, ma quello che conta è che sia libero; al contrario il creatore del kernel che ha dato inizio alla diffuzione di sistemi GNU/Linux vede il mondo open source come fonte di software di maggior qualità rispetto al modello di sviluppo commerciale, chiuso

i due aspetti si incontrano e si scontrano continuamente, formando di fatto un’unione simbiotica, soprattutto quando si confronta il free/open source software con del software commerciale, ma di fatto sono due cose distinte


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: