Per illustrare le caratteristiche che rendono il software un prodotto diverso da altri, partiamo dal confronto tra due oggetti di uso comune:
Il PC ha però una caratteristica fondamentale: hardware (h/w) e software (s/w) non sono collegati in modo inscindibile. È possibile sostituire il s/w mantenendo lo stesso h/w, o trasferire il s/w su un h/w diverso; cosa che in genere non è possibile fare su un televisore.
Questa modularità di h/w e s/w nel PC ha alcuni vantaggi
Perché l'organizzazione in moduli indipendenti dia i migliori frutti è necessario che il punto di contatto o interfaccia tra i vari livelli abbia caratteristiche note e pubbliche: sia cioè uno standard. La possibilità di utilizzare diverse apparecchiature nell'impianto elettrico di casa è legata all'esistenza di prese di corrente sempre uguali.
Si è visto che un secondo elemento che risulta utile è la possibilità di conoscere il funzionamento del s/w, ad esempio del Sistema Operativo. In questo modo si possono produrre applicazioni che non solo possono funzionare (grazie all'intefaccia standard) ma anche sfruttano al meglio le caratteristiche del S.O. È noto che sul sistema Windows della Microsoft le applicazioni Microsoft funzionano meglio di quelle concorrenti, e ciò grazie ad una proficua collaborazione tra gli sviluppatori delle applicazioni e quelli del S.O. Questa possibilità è aperta a tutti quando il funzionamento è noto, o, come si dice, il codice origine è in chiaro (open source)
Il massimo dell'efficienza lo si raggiunge quando l'utente o sviluppatore hanno del s/w una disponibilità piena, cioè quando il s/w è ``libero''. Con questo non si intende gratuito. Si intende che una volta acquistato se ne acquisiscono pieni diritti. Illustriamo questo concetto con un confronto tra i diritti che si hanno quando si compra un'automobile e quando si compra un software ``proprietario'' come Microsoft Windows:
l'acquirente ha diritto di | automobile | Windows |
usarlo | SI | SI |
studiarne il funzionamento | SI | NO |
modificarlo | SI | NO |
cederlo, anche modificato | SI | NO |
L'esperienza sembra dimostrare che rendere il s/w libero e a codice in chiaro è remunerativo anche dal punto di vista del produttore: ad esempio, di alcuni prodotti gira una versione libera che permette al produttore della versione commerciale di mettere a punto un prodotto migliore: