Principali tipologie di
licenze software e
software libero
Alia Rosario
Tipologie di linguaggio
Citiamo solo alcuni dei possibili modi di classificare in linguaggio
• Linguaggio connotativo, serve a fare descrizioni (esempio:
Marco è un uomo alto ed un po’ soprappeso, quando è
rilassato riesce ad essere moto simpatico …)
• Linguaggio espressivo, serve a esprimere sentimenti ed
emozioni (esempio: Quando vedo il tramonto la mia mente
corre alla mia terra lontana e un groppo mi si forma in gola)
• Linguaggio poetico, spezza le regole tradizionali della lingua
ufficiale per dare più forza ad un concetto (esempio: Soldati Si
sta come d’autunno sugli alberi le foglie – G. Ungaretti)
• Linguaggio non verbale..
• Linguaggio Imperativo, serve solo a dare istruzioni, ovvero
ordini e comandi (esempio: Pulisci la lavagna, scrivi il testo
dell’esercizio che ti detto, svolgi correttamente l’esercizio …)
Linguaggi naturali
Italiano – Inglese – Francese – Spagnolo - Sardo – Siciliano …
• I linguaggi naturali normalmente appresi e usati da
noi umani, usano un numero molto elevato di
vocaboli ed hanno una struttura grammaticale
assai complessa, sono strumenti di comunicazione
estremamente flessibili e potenti e riescono ad
assolvere a gran parte delle funzioni prima viste.
• A volte può presentare delle ambiguità che
possono essere anche volute: i versi di Dante “Godi,
Fiorenza, poi che se' sì grande” che aprono il 26°
canto dell’Inferno formalmente sono un elogio alla
sua città, in realtà sono un ironico e amaro richiamo
che viene chiarito dai versi successivi.
Linguaggi di programmazione
• Sono particolari linguaggi imperativi che
servono a dare degli ordini ad un
calcolatore elettronico.
• Si caratterizzano per una struttura
estremamente semplice e sintetica.
• Sono univoci, ovvero ammettono un’unica
interpretazione ovvero non sono soggetti ad
equivoci e incomprensioni.
Linguaggi macchina
Il primo linguaggio di programmazione
• I circuiti elettronici di un computer possono capire e
interpretare solo la presenza o l’assenza di una tensione
elettrica, situazioni simbolicamente rappresentate da
sequenze di cifre 0 e 1 che formano un codice binari.
• Con i soli due caratteri 0 e 1 è teoricamente possibile scrivere
qualsiasi cosa, in particolare impartire degli ordini ed eseguire
dei calcoli.
• Il principale limite di tale forma di linguaggio è che,
paradossalmente a causa della sua semplicità, è
estremamente lontano dai linguaggi naturali degli esseri
umani, è risulta per noi molto difficoltoso da usare.
• Ogni tipologia di calcolatore adotta un particolare linguaggio
macchina.
Linguaggi di più alto livello
• Per aggirare l’assoluta difficoltà di usare i linguaggio
macchina, sono stati introdotti dei linguaggi
comunque imperativi ed univoci ma più vicini al
linguaggio umano (storicamente si è cercato di
avvicinarsi maggiormente alla lingua inglese).
• Alcuni esempi di questi linguaggi sono:
• Fortran, Cobol, Algol, Basic, c, c++, Pascal, Java ...
Interpreti e compilatori
• Testo in linguaggio C -> Compitatore -> Linguaggio
Macchina -> Calcolatore
• Con la compilazione il programma scritto in
linguaggio di alto livello viene tradotto in linguaggio
macchina.
• Contrariamente a quanto si possa pensare la
possibilità di queste traduzioni non è bidirezionale
Traduzione non
bidirezionale
Agevole
Linguaggio
Linguaggio
C
Macchina
Difficoltosa
Produce un
risultato scadente
Quali sono le categorie di
software?
•
•
•
•
•
Pubblico Dominio
Freeware
Shareware
Open Source
Software proprietario
Pubblico Dominio
• È un software privo di licenza o distribuito con un
diritto d’autore che non pone alcuna limitazione al
suo impiego.
• Può ad esempio essere sfruttato come base per
sviluppare un software con licenza proprietarie e
distribuito protetto e a pagamento
Software proprietario
• Programmi non liberi, e di cui non è possibile
consultare e modificare i codici sorgenti.
• Per esempio il software che viene venduto dai
negozi di informatica o quello che il grande
fornitore di software installa sui server dell’azienda.
• Il software proprietario si contrappone a quello
libero e si caratterizza solitamente per il fatto che
l’utente deve pagare per poterlo utilizzare e non
gode di alcun diritto di adattamento dello stesso.
• I codici sorgenti sono riservati.
Freeware
• Software che viene distribuito in modo
gratuito.
• È distribuito indifferentemente con o senza
codice sorgente, a totale discrezione
dell'autore e senza alcun obbligo al
riguardo.
• È sottoposto esplicitamente ad una licenza
che ne permette la redistribuzione gratuita.
• Il software freeware viene concesso in uso
senza alcun corrispettivo, ed è liberamente
duplicabile e distribuibile.
Shareware
• Il software shareware viene rilasciato
gratuitamente, solo in versione eseguibile, ma
con l’impegno morale, da parte dell’utente, di
pagare dopo un periodo di prova il costo di una
licenza, che solitamente è molto contenuto.
• Il software shareware è un modo per lo
sviluppatore di promuovere il proprio lavoro.
• Spesso, per incoraggiare il successivo
pagamento, l’autore rilascia una versione
ridotta in funzionalità, con l’impegno di fornirne
quelle aggiuntive all’atto del pagamento della
licenza.
• È un modello di business, che però si scontra
spesso con la moralità delle persone, che
preferiscono non pagare la licenza d’uso del
programma, anche se continuano a usarlo.
Open source
• Disponibilità del codice sorgente, e possibilità di
creare prodotti derivati a partire da quel
sorgente, da rilasciare sotto la stessa licenza del
software originale.
• La collaborazione di più parti (in genere libera e
spontanea) permette al prodotto finale di
raggiungere una complessità maggiore di
quanto potrebbe ottenere un singolo gruppo di
lavoro.
• I software open source attualmente più diffusi
sono Firefox, OpenOffice, 7-Zip
• La comunità open source è molto attiva,
comprende decine di migliaia di progetti.
Dai programmi … alle App
Mobile App
o Sono grossomodo l’equivalente dei
programmi per computer, e
arricchiscono il corredo di funzioni di
base offerto dall’apparecchio.
Web App
o Sono applicazioni che risiedono su un
server della rete, per sfruttarne le funzioni
devo essere connesso al sito e quindi ad
una rete, non richiedono istallazione e
non occupano in modo stabile memoria
dell’apparecchio, a volte richiedono
comunque apparecchi con buone
prestazioni per sfruttare le funzioni live e
real time.
Mobile App
• si caratterizzano per essere adattati ad uno
schermo di piccole dimensioni e a risorse hardware
e possibilità di connettersi alla rete limitate.
• Modalità di distribuzione del software
o
o
o
o
Es. ITunes Store
Es. App Store
Google play (File .apk)
Solitamente non si scarica o acquista alcun file di istallazione, ma
direttamente dalla rete viene installato il software desiderato.
• Sfruttano frequentemente la possibilità di un
costante scambio di dati con le reti senza
necessariamente richiedere una banda
eccessivamente ampia.
Web App
• si caratterizzano per essere adattati ad uno
schermo di piccole dimensioni e a risorse limitate
hardware
• Si usano solo grazie alla connessione alla rete.
• Spesso il loro uso, passa attraverso l’uso del browser
installato sul dispositivo.
• Si immagina una loro ampia diffusione con
l’introduzione e diffusione dell’HTML 5 per realizzare
siti.
Grazie X l’attenzione
Scarica

File - Alia Rosario didattica e dintorni