Un giorno qualcuno pensò che scrivendo le conoscenze
era più semplice perpetuarle rispetto alla trasmissione oralmente.
Poi qualcuno si accorse che l’alfabetizzazione, diffusa e capillare, era la migliore strategia per la perpetuazione del sapere e, soprattutto, per lo sviluppo virtuoso e la ridistribuzione del benessere.
Cosa centra questo argomento? E poi questo cripto-titolo? E su questa testata?
L’evoluzione della formalizzazione dei saperi e l’evoluzione dell’umanità (intesa come diritti e distribuzione del benessere) la stiamo rivivendo ora in forma nuova per via della digitalizzazione della conoscenza.
In questo articolo propongo una riflessione su due modelli-filosofia contrapposti.
Iniziamo con una introduzione-spiegazione dell’ICT (=informatica). Segue una presentazione di due modelli: opens-source (=aperto) e clouse-source (chiuso). Questi due diversi modelli informatici danno luogo a due diverse gestioni dei saperi, sia in senso tecnico (=sviluppo informatico), sia in senso tecnologico (=quali strumenti, quali tecnologie), sia del sapere (=conoscenza come opportunità riservata, conoscenza come opportunità aperta).
1. Premessa
Lo sviluppo dell’informatica ha una storia articolata.
L’informatica moderna assume un'identità riconosciuta intorno al 1960. Le componenti base sono l’hardware ed il software:
- hardware: fondamentalmente è costituito da componenti elettronici (chip e transistor). Attualmente si usano tecnologie elettroniche, cioè si usano gli elettroni per avere segnale e dato. I computer del prossimo futuro saranno macchine quantistiche. Cioè i calcolatori non usano gli elettroni, ma le proprietà quantistiche delle particelle.
- Software: si tratta dell’informazione che mettiamo nel computer. l’informazione può essere un programma o i dati (es. una rubrica di indirizzi). Attualmente il software è costituito da bit (informazione a due stati, binaria). Con l’avvento dei calcolatori quantistici si usano i Qbit (informazione a tre stati, ternaria).
1.1. ICT o IT
Per indicare il mondo dell’informatica applicata è invalso l’uso di due acronimi: ICT e IT. Le due sigle stanno per:
- Information Communication Technology:
- Information Technology.
È intuibile che sono sinonimi.
Per precisare ICT mette la comunicazione (es. il telefono) come asset ontologico nelle tecnologie di trattamento delle informazioni (=informatica). Pertanto ICT è l'insieme dei metodi e delle tecnologie che realizzano i sistemi di trasmissione, ricezione ed elaborazione di informazioni (tecnologie digitali comprese).
IT, invece, restringe il campo di applicazione al solo trattamento dell’informazione (=informatica). Pertanto IT indica l'utilizzo di elaboratori e attrezzature di telecomunicazione per memorizzare, recuperare, trasmettere e manipolare dati, spesso nel contesto di un'attività commerciale o di un'altra attività economica.
Anche se l’uso della sigla ICT risulta più corretto perché descrive meglio l’attuato stato dell’arte, nell’uso quotidiano è abitualmente usata la sigla IT.
Sono sinonimi (molto spesso perfetti, per via dell’uso) e indicano informatica.
Da ricordare, e aggiungere, che l’informatica è pervasiva e si incarna in moltissime forme diverse. Dal computer al tablet, ma anche il cellulare, la TV, il microonde, la lavatrice, ecc… In pratica la maggior parte degli apparecchi elettrici.
1.2. Fare software
È rilevante una conoscenza del ciclo di sviluppo del software e del ciclo di mantenimento per poter comprendere i titoli seguenti.
In primis va specificato che il software è strettamente connesso all’hardware. Cioè un’app per un cellulare con Android non funziona su un cellulare che usa Windows Mobile, ma non funziona nemmeno su un PC o un Mac. Questo principalmente perché cambiano i microprocessori che fanno funzionare i dispositivi.
Passando alla parte propria di sviluppo di un programma bisogna partire dalla parte teorica: un software è realizzato per risolvere un problema. Ad esempio: se voglio raccogliere tutte le ricette di cucina, il software che realizzo risolve questo specifico problema. In altri termini si parla di “algoritmo”, cioè la trascrittura, in forma matematica, tramite dei formalismi standardizzati, del processo necessario per risolvere il problema.
Quindi il software, in ultima analisi, è la traduzione in linguaggio macchina di un algoritmo.
Una volta che l’analista ha creato l’algoritmo la procedura di sviluppo del software è la seguente:
- un programmatore trascrive l’algoritmo con un linguaggio formale come il C++, Java, Pascal, ecc… Questi testi vengono scritti in dei file in modo del tutto analogo ai file Word. Questi file vengono detti, in gergo, “sorgenti”;
- i file sorgenti vengono messi in un programma speciale, detto “compilatore”, che li traduce in linguaggio macchina.
Nota: il linguaggio macchina è comprensibile solo ai computer e, in pratica, non è possibile tornare dal linguaggio macchina al sorgente; - il file ottenuto è il programma, detto in gergo “eseguibile”, che funzionerà nel nostro computer.
Da tener presente che in questo processo se abbiamo i file sorgente possiamo modificare il programma e, soprattutto, conoscere-capire l’algoritmo che risolve il problema (=possiamo raggiungere il sapere all’origine del programma).
Se, invece, abbiamo solo l’eseguibile abbiamo un servizio immediatamente funzionante, ma non possiamo avere né la conoscenza dell’algoritmo (cioè il sapere origine e fonte del programma), né modificarlo (quindi sarà impossibile personalizzarlo, aggiornarlo, svilupparlo).
Il ciclo di mantenimento è un percorso attivo e indispensabile:
- attivo: comporta l’aggiunta e/o la creazione di codice sorgente;
- indispensabile: la progressiva crescita di nuovo hardware (con nuovi componenti elettronici e nuovi microprocessori) richiede costantemente nuovo software perché il vecchio non funziona più o non è in grado di gestire correttamente il nuovo hardware. Inoltre c’è da considerare l’adeguamento ai bisogni mutati piuttosto che il potenziamento-completamento del programma originale.
Il ciclo di mantenimento è simile a quello di sviluppo:
- un programmatore trascrive gli aggiornamenti in righe di codice sorgente che si aggiunge al codice originale o lo sostituisce;
- nuovi, o modificati, file sorgenti vengono messi nel programma compilatore che li traduce in linguaggio macchina;
- il file ottenuto è il programma aggiornato.
1.3. Fare computer
La produzione di computer si è standardizzata rispetto alle origini.
Sostanzialmente un computer è un circuito elettronico, messo in una scatola, collegato a un dispositivo di ingresso (es. una tastiera o un touchscreen), ad un dispositivo di output (es. un monitor o lo schermo di uno smartphone) ed eventualmente ad un dispositivo di attuazione (es. ilo motore apri-porta).
I principali blocchi che costituiscono un computer sono:
- microprocessore: i più noti sono gli Intel, costruiti secondo le specifiche x86. Queste specifiche sono dette in gergo “architettura”. Molto usati gli ARM, presenti in tutti i cellulari e non solo;
- memoria: oltre alle dimensioni in byte esistono diversi altri parametri che le differenziano (ad esempio il formato, tipologia, alimentazione, ecc…). Volutamente non cito gli hard disk, i pendrive, ecc...;
- chip: tutti i componenti elettronici sono interconnessi da cavi elettrici e da dei chip. L’insieme di questi fili e chip intermedi viene detto in gergo “architettura” ed esistono molte diverse architetture.
Si: è corretto. Esiste un'architettura specifica del microprocessore e una specifica dell'elettronica intorno al microprocessore.
La caratteristica, ed il problema, è che i blocchi non sono tra loro compatibili a meno che non si impieghino parti esplicitamente compatibili. Cioè al cambio delle architetture le parti non sono compatibili. Anche al cambio di versione (o “generazione”) possiamo avere lo stesso problema.
A questo dobbiamo aggiungere le considerazioni fatte all’inizio del titolo «Fare software»: cambiando l’hardware e/o le parti che compongono il software può non funzionare o funzionare solo parzialmente.
Quindi poter conoscere non solo le specifiche esplicite dei componenti, ma anche le caratteristiche ingegneristiche interne, è un presupposto cardine per il funzionamento sia dell’hardware, sia del software.
2. Modello Close Source
L’informatica ha mosso i primi passi in laboratori. Come tecnologia nascente il tutto era noto e ad esclusivo appannaggio degli ingegneri sviluppatori.
Successivamente, come divenne più matura e uscì dai laboratori, invalse la pratica ti tenere segrete tutte le specifiche del software e dell’hardware.
Questo modello di sviluppo e di gestione prende il nome dal codice sorgente dei programmi. Infatti i programmatori, e le società che li assoldavano, iniziarono a mantenere chiuso nei propri archivi il codice sorgente e a distribuire ai clienti solo l’eseguibile dietro un pagamento e l’accettazione di un contratto d’uso (detto in gergo “licenza” o EULA).
Quindi la pratica di tenere “chiuso il sorgente” ha generato il nome “close source”.
Oltre agli aspetti di anamnesi storica e di pratica di sviluppo, il close source mutua dei valori e delle filosofie precise. Le principali sono:
- la conoscenza è un prodotto: in analogia al possesso di un bene materiale anche gli algoritmi ed il codice sorgente è un prodotto;
- proprietà intellettuale: algoritmi e sorgenti appartengono al programmatore e/o all’azienda che né fanno quello che vogliono. Viene solo concesso l’uso dell’eseguibile dietro l’accettazione di specifici obblighi e vincoli (pagamento, licenza, clausola di non ridistribuzione, ecc…);
- lock-in: il detenere sia il sorgente, sia gli algoritmi, sia le eventuali altre specifiche vincola il cliente a dipendere esclusivamente dal programmatore e/o dall’azienda.
Il close source, detto anche “soluzione proprietaria”, si riflette anche sul ciclo di sviluppo, sulla sostenibilità della tecnologia e sull’accesso alle tecnologie. Per capire:
- sviluppo nuovo software: poiché il sorgente dei programmi è chiuso un programmatore per poter modificare, estendere o interconnettere i programmi deve chiedere le conoscenze al programmatore o all’azienda proprietaria. Le conoscenze normalmente vengono concesse, oltre che con un pagamento, anche dietro l’obbligo di accettazione di un vicolo di riservatezza (=non si può far conoscere ad altri questi saperi);
- impedimento allo sviluppo: il meccanismo sopra descritto rende necessaria una disponibilità economica per poter accedere alle tecnologie. Nel meccanismo close solo chi può pagare può entrare nell’ICT.
3. Modello Open Source
Sempre ai primordi dell’informatica nacque l’open source capeggiato dal programmatore Richard Stallman. Con il saggio “The Cathedral and the Bazaar”, di Eric S. Raymond, la filosofia e gli assunti teorici assumono una fondazione epistemologica conclamata.
L’open source fornisce all’utente il codice sorgente. L’eseguibile è una comodità per semplificare l’uso agli utenti che non hanno competenze di programmatore (la compilazione può essere un passaggio complesso, come anche l’installazione di un programma).
Questa pratica deriva dal pensiero che all’utente deve essere garantita la libertà. Pertanto se l’utente ha il sorgente non dipende più da un programmatore o da una ditta. Questa distribuzione del software prevede una diversa forma di licenza d’uso che parte dal concetto che va tutelata la paternità. La consegna del codice comporta l’accettazione di una copyleft con cui i diritti e i doveri vengono spostati sull’utente. Esistono diverse licenze d’uso che si rifanno a questa filosofia. Tra le più note: GPL, AGPL, LGPL, Creative Commons, ecc…
Il primo valore è la libertà, intesa come possibilità di scegliere, non come “libero da costi”.
Il secondo valore è nel modello di sviluppo che permette di creare programmi meno difettosi e più sicuri.
Il terzo valore è legato al modello aperto, cioè nella pubblicazione dei dati tecnici ed ingegneristici che tutti possono conoscere. Anche gli standard adottati per creare questi software sono aperti e pubblici.
Il risultato combinato di questi valori sono prodotti potenti, con pochi difetti, facilmente mantenibili, integrabili e, soprattutto, che garantiscono la possibilità di sviluppo e di adozione della tecnologia anche se non si hanno capitali disponibili.
La filosofia che sottostà a questo approccio è che il sapere appartiene all’umanità, va diffuso a tutti e si sviluppa per la libera interazione.
4. I saperi
Un player di eccellenza nei saperi è la scuola nelle sue varie incarnazioni. Luogo privilegiato per trasmettere il sapere è anche una delle officine d'eccellenza nel svilupparlo.
Esistono, però, diversi approcci ideologici e la scuola vive una concorrenza con altri player configurando, così, un diverso campo d’azione.
4.1. Il sapere a scuola: open vs close?
In occidente la scuola deriva dall’idea che il sapere è un bene a cui tutti hanno diritto. Pertanto l’istituzione che eroga il servizio lo fornisce garantendo l’opportunità a tutti e promuovendo su criteri oggettivi di merito.
Al fondo di questa visione c’è un’idea open source ante litteram.
Questa prospettiva, però, non è l’unica e, forse, nemmeno la maggioritaria.
Il sapere, per diversi, è interpretato come un bene analogo ai beni materiali. In quanto tale soggiace a norme e regole come quelle commerciali. Quindi, in primis, è un bene da acquisire a fronte di un controvalore di scambio spesso individuato in soldi. Nelle istituzioni superiori (come università, centri di ricerca, acceleratori, incubatori tecnologici, ecc…) sovente il controvalore è individuato nell’acquisizione dei diritti di sfruttamento, nella titolarità della conoscenza, ecc...
4.2. Il sapere in impresa
Le ultime righe del paragrafo precedente ci introducono nel grande mondo delle imprese. In questi luoghi le conoscenze sono un asset poliedrico prezioso.
Le caratteristiche di differenza potrebbero essere riassunte dalle seguenti key word:
- spersonalizzazione. Il sapere non è legato alla persona, ma all’impresa. Ciò significa che il titolare è l’impresa. Essa crea e gestisce l’infrastruttura ed i processi che permettono la raccolta, la gestione, la conservazione e la fruizione del sapere;
- gestione. Il sapere non è una produzione casuale o legata alla genialità del singolo. Un approccio articolato forma le risorse umane per:
- un team-working inferenziale, creativo, collaborativo;
- usare una codifica comune (e standard) per la documentazione della conoscenza;
- metodologia. Uso di un metodo condiviso, standard che permette l’oggettivazione e linee guida corrette per il player qualitativo;
- riservatezza. I saperi in seno all’impresa sottostanno a norme che né controllano la diffusione. Abitualmente è la tecnologia a realizzare questo controllo e a renderlo invalicabile;
- IT. L’adozione di un’infrastruttura adeguata per gestire la conoscenza (knowledgebase). Normalmente queste soluzioni accompagnano la memorizzazione con sofisticate potenzialità che controllano gli accessi, garantiscono la disponibilità (interna) dell’informazione, ecc…
4.3. Conseguenze ortopratiche
Il quadro sopra accennato configura uno scenario innovativo. Se alcuni aspetti sono indipendenti da noi, molti, invece, dipendono dalle nostre scelte.
Gli sviluppi possono essere:
- le scuole, come strutture deputate a perpetuare la conoscenza e a costruire gli skill, possono diventare supermercati del sapere accessibili solo a clienti pagati;
- in questo contesto il sapere e lo sviluppo diventano possibilità per pochi e si escludono tutti coloro che non hanno possibilità (economica) per accedervi;
- in una relazione di dipendenza tecnologica, dove pochi detengono conoscenze e la possibilità di accedere alle conoscenze, prende consistenza una nuova forma di servitù;
- in fine va considerato un trend, già in essere, dove il possesso delle conoscenze permette di soddisfare i molti con con prodotti e servizi che rispondono eccessivamente al rpincipio di “comodità”.
L’ultima considerazione può sembrare un po’ critica, ma è il driver più significativo nell’attuale quadro dell’insicurezza informatica: scelgo, uso, adotto principalmente per comodità, non per bontà o validità.
5. Conclusione
Le considerazioni qui riportate si inscrivono in un quadro un po’ complesso e che richiede alcune conoscenze previe. Lo scopo non è di portare il lettore alla radice della questione, ma di far percepire che dietro il raggiungimento dei traguardi di sviluppo e benessere c’è anche altro che va considerato e che ha conseguenze tutt’altro che secondarie: la posta in gioco non è piccola, non riguarda pochi, non per i soli nerd.