IL SOFTWARE
Articoli, tips, recensioni e news sul mondo del software

Il Software

Il termine software (usato in ambito informatico) è un vocabolo della lingua inglese costituito dall’unione di due parole, soft (morbido) e ware (manufatto, componente, oggetto). Sta ad indicare un programma o un insieme di programmi in grado di funzionare su un elaboratore. In alcune lingue romanze la parola con la radice latina programmatura è anche usata. 

Il termine software ha origine durante la seconda guerra mondiale. I tecnici dell'esercito inglese erano impegnati nella decrittazione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (detta hardware, componente dura, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione di Enigma sfruttava tre rotori per mescolare le lettere.
software

Breve storia del software.


Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptanalisti inglesi, capitanati da Alan Turing, si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova Enigma. Dato che queste istruzioni erano scritte su pagine solubili nell'acqua (per poter essere più facilmente distrutte, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate software (componente tenera), in contrapposizione all'hardware.
Leggi anche: Blogger è un servizio di blogging attualmente gestito da Google a cui è possibile accedere gratuitamente.

Il senso moderno del termine deriva dalle istruzioni date ai computer, ed è stato utilizzato per la prima volta nel 1957 da John Wilder Tukey, noto statistico statunitense. Molte volte i software realizzati vengono rilasciati sotto forma di versioni e release successive, ciascuna identificata da un numero intero progressivo con in aggiunta uno o più numeri decimali che identificano la release: tipicamente l'ordine di rilascio segue un andamento progressivo della numerazione dove versione o release successive rappresentano evoluzioni delle precedenti con miglioramenti in termini di nuove caratteristiche e funzionalità aggiunte e/o bug corretti.

L'edizione è il principale stadio di una evoluzione, mentre le versioni ne rappresentano i minori cambiamenti.
Come espresso negli articoli 1 e 2 n. 8 della Legge sul Diritto d'Autore (L.633/41) anche i programmi per elaboratore sono protetti da diritto d'autore in qualsiasi forma espressi purché siano originali.

Viene altresì tutelato il materiale preparatorio a differenza delle idee e dei principi che stanno alla base di qualsiasi elemento di un programma (compresi quelli alla base delle sue interfacce) i quali non vengono tutelati.
Secondo l'articolo 12 bis della legge sopracitata, in caso di lavoro su commissione il titolare del diritto esclusivo di utilizzazione economica è il datore di lavoro. Questo però non fa venire meno i diritti morali di chi ha creato il codice, ovvero il lavoratore dipendente.

Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il software e la mente umana si è fatta molto forte, dal momento che Turing ha sostenuto che il progresso tecnologico sarebbe riuscito a creare, entro il 2000, delle macchine intelligenti (in grado cioè di "pensare" autonomamente) atte alla risoluzione dei problemi.

Evoluzione del software.

Alla storia dell'evoluzione del software è legato lo sviluppo dell'hardware. Come evidenziato dalla seconda legge di Moore, una minaccia alla velocità di elaborazione, oltre ai costi, proviene dal software. Infatti ciò che conta per un utente non è tanto la velocità di elaborazione del processore, quanto la velocità effettiva di elaborazione del codice, calcolata in base al tempo che occorre alla CPU per eseguire un'operazione (come la scrittura di un testo, la creazione di una cartella, ecc.).
  
Nathan Myhrvold, direttore dell'Advanced Technology Group della Microsoft, ha effettuato uno studio sui prodotti Microsoft calcolando le linee di codifica per le successive release dello stesso software:
  
* Basic: 4.000 linee di codice nel 1975 a 500.000 nel 1995 
* Word: 27.000 linee di codice nel 1982 a 2.000.000 nel 2002

Nuove funzionalità.

La continua aggiunta di nuove funzionalità al software esistente giustifica la costante richiesta di processori più veloci, memorie sempre più grandi e più ampie capacità di I/O (Input/Output).
Breve storia del software, licenze di utilizzo e distribuzione del software libero.Twitta

Infatti, anche le altre tecnologie si sono evolute di pari passo:

  
* i dischi rigidi da 10 MB (1982) a 1 TB (2007); 
* i modem analogici da 110 bit/sec a 56 kbit/sec.
  
Myhrvold traccia un parallelismo con la legge di Moore: "abbiamo aumentato la dimensione e la complessità del software ancora più rapidamente di quanto non prevedeva la legge di Moore", "gli utenti del software hanno sempre consumato le maggiori capacità di elaborazione ad una velocità uguale o superiore a quella con cui i produttori di chip le mettevano a disposizione" (Stewart Brand, 1995).

Licenze d'utilizzo e distribuzione.

La licenza d'uso è un documento che accompagna il software e specifica i diritti e i doveri di chi lo riceve e di chi lo diffonde.

Tutte le licenze d'uso traggono il loro valore legale dalle norme sul diritto d'autore (il copyright). 
Esistono licenze libere, le licenze Open Source e licenze proprietarie. Nasce in seguito anche l'Open content che ha come scopo quello di trasferire le licenze su opere diverse dal software.
  
Le licenze di utilizzo e distribuzione del software libere ed Open Source sono numerose, ma quelle effettivamente diffuse sono poche. Per l'89% si tratta di GPL, LGPL e BSD (licenza storica di Unix, tornata in uso dall'avvento di Linux). 

Alcune licenze libere.

    * GNU-GPL (la licenza libera più diffusa) 
    * GNU-LGPL 
    * BSD 
    * Creative Commons 
Ogni tipo di licenza differisce dagli altri pebackupr vari aspetti.

Le varie licenze analizzano sommariamente i seguenti aspetti: 
    * Il permesso d'autore (copyleft) 
    * Il diritto d'autore (copyright) 
    * Il software proprietario 
    * Il software libero (free software) 
    * Il software Open Source