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 Macchina Linguaggio C 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 Sono grossomodo l’equivalente dei programmi per computer, e arricchiscono il corredo di funzioni di base offerto dall’apparecchio. Web App 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 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