Dall'Assembly alle Intelligenze artificiali: Un Viaggio etico nella Storia della Programmazione
Giuseppe Di Grande Aggiornato il 15/03/2024 08:00In base alle mie esperienze maturate con i diversi sistemi operativi che ho utilizzato nel corso del mio lungo Percorso informatico, è possibile delineare tre distinte fasi nel periodo dell'Informatica che ho vissuto: l'Hardware, il Software, i servizi Web. In questo breve excursus del tutto personale, intendo percorrere un arco temporale di quasi quarant'anni, durante i quali ho osservato l'evolversi di Hardware e sistemi operativi, fino alle intelligenze artificiali entrate in scena nell'ultimo anno.
Il mio viaggio è iniziato nel 1985, un'epoca in cui la Programmazione di un certo spessore scendeva a contatto diretto con l'Hardware del calcolatore. Non a caso utilizzo il termine "calcolatore", poiché gli anni ottanta del ventesimo secolo sono stati il decennio interlocutorio tra le macchine di calcolo degli anni settanta (per esempio, Commodore prima di lanciarsi nel mercato dei microprocessori e dei Computer produceva calcolatrici) e il boom dell'Informatica di massa degli anni novanta. Gli adolescenti dell'epoca stavano semplicemente inventando una nuova Cultura dell'accesso all'Informazione. Il quindicenne che si chiudeva in camera per Programmare videogiochi (ragazzi etichettati come bed room coders), era l'elemento di base del movimento informatico di massa che in pochissimi anni sarebbe esploso raggiungendo ogni attività Sociale, economica, scientifica, politica e ludica in ogni parte del mondo. In quel contesto, l'assembly emergeva come il Linguaggio prediletto per i programmatori desiderosi di esprimere la propria creatività e sfruttare appieno le potenzialità dell'Hardware. Non a caso cito l'assembly (allora chiamato assembler). L'assembly era del tutto sovrapponibile al Linguaggio macchina (LM che ho ugualmente utilizzato), presentando i codici numerici del LM in letterali mnemonici più facili da ricordare. Durante quegli anni, il programmatore deteneva un controllo totale della macchina, nel senso più autentico del termine. Se si aveva la "necessità" di raggiungere determinati livelli, bisognava conoscere in profondità l'Hardware su cui veniva eseguito il Software. Uno dei libri più iconici che ho acquistato alla fine degli anni ottanta è "Amiga Hardware Programming Reference". Completamente in lingua inglese, non insegnava a Programmare, ma descriveva l'Hardware che si intendeva conoscere internamente, Chip per Chip. Avendo pochi megahertz di potenza del microprocessore (MOS 6510 girava a 1 mhz, Motorola 68000 a poco più di 7 mhz), se si voleva sfruttare tutta la potenza della macchina, era indispensabile conoscere in profondità l'Hardware - molte volte costituito da più coprocessori -, oppure conoscere persino i cicli macchina che il microprocessore compiva per eseguire una Istruzione.
In questo periodo, le ruote che muovevano il sistema erano tre: produttori dell'Hardware (il Computer), programmatori dei Software e utenti finali, questi ultimi successivamente considerati "consumatori". In quel decennio, l'interconnessione tra questi tre elementi diventava di anno in anno sempre più complessa e interdipendente. I produttori di Hardware fornivano le piattaforme su cui i programmatori sviluppavano Software innovativi, che a loro volta venivano utilizzati dagli utenti finali per una gamma crescente di scopi, primo su tutti l'intrattenimento videoludico. Il Videogioco in quegli anni era caratterizzato da una schiera di ragazzi in cerca di una identità Digitale, tra adolescenti arcade da sala giochi e gruppi accomunati dalla passione per gli home Computer.
Dieci anni dopo ho assistito all'avvento di Windows 95, un sistema operativo che, nella mia percezione storica degli eventi più significativi, rappresenta uno spartiacque tra il periodo precedente e quello successivo. Tale sistema, almeno per i Computer PC IBM/compatibili, ha segnato l'inizio della prima vera astrazione del programmatore dall'Hardware. Non perché fosse una novità Programmare con linguaggi ad alto livello (per alto livello si intende astratti dall'Hardware), d'altronde nel decennio precedente il Basic era stato il Linguaggio di elezione subito disponibile a tanti programmatori, ma perché Windows in poco tempo aveva innovato davvero e con prepotenza conquistato una sostanziale fetta di mercato. Una Operazione di marketing molto aggressiva da parte di Microsoft, anche grazie all'assenza di una reale concorrenza, viste le defaillances di Apple di quegli anni e il settore altamente specialistico in cui stava crescendo Linux. L'astrazione era mirata a semplificare il processo di sviluppo di soluzioni Software, sollevando il programmatore da tutte le difficoltà di conoscere a fondo un Hardware per poterne sfruttare le caratteristiche. Si consideri che nella prima metà degli anni novanta del ventesimo secolo gli home Computer perdevano lentamente mercato (il fallimento di Commodore nel 1994 è il simbolo della fine di un'epoca), a favore delle console - concepite esclusivamente per il gioco - e dei personal Computer. Questi ultimi, data la loro modularità, costringevano i programmatori a conoscere anche l'Hardware delle innumerevoli schede prodotte da terzi. Infatti per poter sviluppare un Videogioco per PC, nella prima metà degli anni novanta, era indispensabile conoscere l'Hardware del Computer, compreso quello delle schede audio e video, almeno quelle più diffuse, per poterne sfruttare a fondo le caratteristiche. Questo problema era conosciuto da tutti i programmatori, persone che inconsapevolmente stavano portando il mercato videoludico dagli home Computer ai personal Computer, PC che grazie alle schede esterne acquisivano nuove capacità grafiche e sonore. Mi resi conto di ciò nel 1992, quando a casa di un amico vidi due videogiochi per PC di nuova concezione: Wolfenstein 3D e Comanche. Qualcosa stava cambiando, perché quei titoli si allontanavano di molto dalla semplicità dei videogiochi per PC degli anni precedenti. Erano veri giochi che utilizzavano bene la potenza crescente di quelle macchine, introducendo un nuovo paradigma di gioco. Per ciò che riguarda le console - in quegli anni la scena era dominata da due grossi player, Nintendo e Sega -, era già possibile intuire come il mercato videoludico si sarebbe spostato verso sistemi chiusi che tagliavano di netto il rapporto col passato, con quel movimento di programmatori indipendenti degli anni ottanta, ragazzi che avrebbero fatto sempre più fatica a esprimere la loro creatività e/o avrebbero fatto carriera in una delle tante aziende di Informatica che nel frattempo venivano fondate. L'Informatica si stava semplicemente professionalizzando, da gioco era diventata Lavoro. Infatti, questa gallina dalle uova d'oro era un'ambita preda delle multinazionali in ascesa che sgomitavano per ritagliarsi fette sempre più consistenti nel mercato del Software.
Prima dell'arrivo di Windows 95, il panorama informatico era dominato da sistemi operativi come MS-DOS e dalle versioni precedenti di Windows (come Windows 3.1). Questi sistemi offrivano una funzionalità limitata e un'interfaccia utente piuttosto rudimentale, che non era ancora pienamente adatta all'uso da parte del grande pubblico. L'esperienza Informatica era per lo più caratterizzata da testo e righe di comando, da cui era inevitabile passare.
Quando il 24 agosto 1995 Microsoft ha distribuito Windows 95, il nuovo sistema operativo ha segnato una svolta significativa nell'evoluzione dei sistemi operativi per PC. Le sue nuove funzionalità hanno reso l'utilizzo del Computer più intuitivo e Accessibile per gli utenti medi, aprendo la strada a un'adozione più ampia dei PC. Infatti, l'adozione di Windows 95 è stata rapida e travolgente. Il sistema operativo ha suscitato un'enorme interesse nel pubblico e ha registrato vendite record nelle prime settimane dopo il lancio.
Windows 95 ha fornito un'interfaccia API a 32 bit (Application Programming Interface) che ha consentito ai programmatori di sviluppare applicazioni senza dover interagire direttamente con l'Hardware sottostante. In qualche modo anche le versioni precedenti di Windows avevano offerto una limitata interfaccia API, ma non avevano la diffusione e la popolarità raggiunta dal nuovo sistema. Windows 95 ha reso lo sviluppo delle applicazioni più Accessibile a un pubblico più ampio di sviluppatori, senza la necessità di una conoscenza dettagliata dell'Hardware. Pertanto, un sistema operativo evoluto e i suoi driver di periferica si occupano di comunicare con l'Hardware del Computer, in modo che il programmatore non debba preoccuparsi di come funziona."
Pur mantenendo il controllo sul codice e la focalizzazione sul Progetto in corso, il programmatore indipendente gradualmente veniva allontanato dall'aspetto più basso del funzionamento del Computer. Nel frattempo, i linguaggi di Programmazione si evolvevano, attraverso due fenomeni: la diffusione della Programmazione orientata agli oggetti e la progressiva perdita di contatto con il livello più profondo della macchina. Contestualmente, la potenza di calcolo dei processori si moltiplicava, relegando in secondo piano l'ottimizzazione del codice, con l'assembly Operazione molto utile. In passato, i programmatori potevano ottimizzare il codice per sfruttare al meglio le caratteristiche specifiche del processore. Gradualmente questa possibilità è stata limitata e poi inibita dal sistema operativo, che fornisce un'interfaccia generica per l'accesso all'Hardware. Per esempio, con Turbo Pascal di Borland, pubblicato per la prima volta nel 1983, si poteva inserire codice assembly, semplicemente aprendo parti assembly di codice attraverso la parola chiave "ASM". Questa caratteristica è tutt'ora presente in Delphi, il Linguaggio successore di Turbo Pascal, orientato alla Programmazione a oggetti, dove si può Programmare ancora in assembly. Tuttavia Assembly oggi non è conosciuto quasi da nessuno - relegato tra l'archeologia e la mitologia Informatica - e tale caratteristica resta sconosciuta. Turbo Pascal non a caso è stato prodotto fino al 1995, sostituito nello stesso anno dal suo successore Delphi.
Se per tutti gli anni ottanta il programmatore mantiene una stretta connessione con l'Hardware e detiene un notevole controllo su tutti i dettagli del proprio Software, con l'avvento dei sistemi operativi a interfaccia Grafica si trasferisce al produttore del sistema operativo e ai produttori di Hardware la complessità di interagire con le profondità Hardware del Computer. Infatti, è il produttore del sistema operativo che assume il ruolo di determinare come avviene l'interazione con l'Hardware e di esporre al programmatore l'interfaccia di Programmazione designata (API). Questa sorta di standardizzazione ha portato indubbiamente ad una "perdita" di libertà per il programmatore che, invece di poter Scrivere codice che interagisce direttamente con l'Hardware, consentendogli di esprimere a pieno inventiva e creatività, ora deve adattarsi alle regole e alle limitazioni imposte dal substrato di interfaccia fornito dal sistema operativo. Ciò significa che il livello di controllo e personalizzazione che i programmatori possono esercitare è limitato dalle decisioni prese dal produttore del sistema operativo.
Questo fenomeno ha comportato la riduzione di conoscenza del reale funzionamento dell'Hardware e, allo stesso tempo, l'aumento del numero di sviluppatori, un fenomeno che si è protratto per gran parte del primo ventennio del XXI secolo. Questo è stato più evidente a partire dall'avvento della telefonia mobile, soprattutto negli anni degli Smartphone e dei sistemi operativi fortemente restrittivi (IOS e Android). La parola chiave per Aprire le porte di questo cambio di paradigma è "Sicurezza". Il vantaggio di questo approccio delinea due aspetti sostanziali: la "semplificazione" della Programmazione di Software e la sua sicurezza declinata all'utente. La sicurezza è il tema che ha preso sempre più sostanza nel corso degli anni, da quando l'Informatica, da Materia altamente specialistica finalizzata al gioco o a pochissimi ambiti professionali, è diventata di massa e ha letteralmente invaso la vita di tutta la società.
Se per tutti gli anni ottanta il programmatore era tenuto a comprendere anche l'Hardware che intendeva Programmare, a condizione che volesse raggiungere determinati livelli di complessità ed efficienza, l'approccio imposto dai produttori dei "nuovi" sistemi operativi ha alleggerito il carico di Studio del programmatore e lo ha vincolato alla "sola" conoscenza del sistema operativo. In una certa prospettiva, se prima nel rapporto di sviluppo dei Software erano coinvolti solo tre attori - produttore del Computer, programmatore del Software, utente finale -, adesso entra in posizione dominante anche il produttore del sistema operativo, che ha il potere di restrizione sull'esecuzione dei Software sviluppati dal programmatore, anche in virtù della sicurezza.
Perdere il controllo sull'Hardware ammetto che mi è dispiaciuto, soprattutto quando nel corso degli anni novanta e maggiormente negli anni duemila ho vissuto una progressione restrittiva dei sistemi operativi. È indubbio che ci siano delle solide motivazioni per queste restrizioni, in prima linea sempre presenti le questioni di sicurezza, ma ciò non toglie il fatto che il programmatore è stato costretto a seguire le regole imposte dal sistema operativo a svantaggio della sua creatività e della sua inventiva. Questo fenomeno è emerso del tutto con l'avvento degli Smartphone e in generale coi sistemi di telefonia mobile. L'utente ha la percezione di essere più protetto dal fornitore del sistema operativo, che in qualche modo, ma non del tutto, garantisce sulla qualità del Software proposto. È il periodo in cui nascono gli "store" di Software, mentre si sviluppano altre tecnologie che negli anni a seguire porteranno i programmatori a perdere quasi del tutto il controllo sul codice scritto.
A questo punto è d'obbligo un accenno al movimento Free Software e Open Source, che alla fine degli anni novanta muoveva i suoi primi passi sviluppando poi un vero e proprio fenomeno Sociale tra i programmatori. Il tentativo, in qualche modo riuscito, era quello di trasferire nuovamente le conoscenze dei programmatori dall'ambito industriale a quello scientifico. Fino a quando i produttori maggiori erano quelli di Hardware, la condivisione del Software era un modo da loro adottato per rendere le loro macchine appetibili a un pubblico maggiore. Questa dinamica è cambiata soprattutto a partire dalla seconda metà degli anni ottanta, quando all'industria dell'Hardware si è unita quella del Software, in cui il Lavoro del programmatore è diventato un segreto industriale da preservare piuttosto che una conoscenza scientifica da condividere.
Nel 1985 nasce la Free Software Foundation su iniziativa di Richard Stallman, una organizzazione senza fini di lucro per la distribuzione di Software libero. Se le licenze dei programmi commerciali vietavano agli utenti di farne delle copie, i Software liberi erano caratterizzati dal codice aperto (leggibile a tutti) e dalla libera condivisione. Fino alla seconda metà degli anni novanta la filosofia della Free Software Foundation non ebbe molto seguito, limitandosi a un fenomeno prettamente conosciuto tra gli addetti ai lavori. Una spinta invece arrivò con l'avvento e la diffusione di Internet. Internet rese la conoscenza tra i programmatori e il Software libero facilmente trasmissibili.
Ho voluto accennare al movimento Open Source perché, osservando le dinamiche informatiche degli ultimi decenni, ho osservato un crescente interesse da parte dei principali fornitori di tecnologie verso questo settore in rapida espansione. Essi hanno abbracciato attivamente il movimento attraverso progetti open source di vasta portata e acquisizioni di aziende, dimostrando così il loro impegno. Per esempio, il servizio di hosting di progetti Software denominato GitHub nel 2018 è stato acquisito da Microsoft e viene utilizzato da tutte le big tech dell'Informatica, oltre che da milioni di piccoli programmatori indipendenti che persistono nella convinzione di mantenere il controllo del sistema tramite lo sviluppo collaborativo open source. Da quanto ho osservato, considero che questa Operazione rappresenti principalmente un greenwashing delle politiche restrittive e dominanti delle big tech. Parallelamente, con l'avanzare dei servizi Web, si è verificato un impoverimento della qualità del codice aperto collaborativo, accompagnato da una sua crescente obsolescenza. Ad esempio, nel corso degli anni, i programmatori hanno spostato il loro interesse dall'elaborazione di codice che incorpora algoritmi e procedure complesse allo sviluppo di codice "semplice", limitandosi all'utilizzo di chiamate ai servizi Web, come quelli offerti dalle attuali tecnologie di Intelligenza Artificiale o delle Web API in costante aggiornamento dei Social network (social entrati nella scena mondiale quasi venti anni fa). Sicuramente tutto ciò è anche dipeso dalla complessità nettamente in aumento del Software e dalla potenza di calcolo per far girare i servizi offerti. Tuttavia è innegabile che i programmatori di oggi non sviluppano più codice, ma piccole routine che si limitano a usare servizi prodotti da altri, come usare dall'esterno una scatola nera che fa qualcosa, senza sapere come lo fa. In pratica, dopo anni di ricerca e di sviluppo, le tecnologie sono approdate a un nuovo paradigma behaviorista. Questa mia analisi individua un sistema sempre più elitario, fatto di big tech che offrono dei servizi Web inconoscibili e incontrollabili e di piccoli utilizzatori sparsi per il mondo che acriticamente se ne avvalgono. In questo nuovo scenario postinformatico, i veri programmatori di queste scatole nere chiamate Web API sono assoldati dalle grandi multinazionali dell'Informatica.
Intorno al 2000 si è diffusa l'idea di implementare interfacce di Programmazione attraverso le tecnologie definite per il Web. L'intenzione era di rendere interoperabili gli applicativi, indipendentemente dal sistema operativo e dal Linguaggio di Programmazione utilizzati. Prima sviluppate come Web Service, poi evolute in Web API, queste tecnologie portano la Programmazione a una nuova altezza di astrazione, concentrandosi solo sul risultato finale di un servizio multipiattaforma.
I Web service sono stati i precursori delle Web API e rappresentano una Tecnologia che consente a due o più sistemi Software di comunicare tra loro attraverso il Web. Senza scendere a dettagli troppo tecnici, questi servizi consentono la comunicazione e lo scambio di dati tra applicazioni eterogenee. Invece, le Web API rappresentano un'evoluzione di questa Tecnologia, focalizzandosi maggiormente sull'esposizione di risorse e funzionalità attraverso HTTP. Le Web API sono diventate uno standard de facto per la comunicazione tra client e server nel contesto delle applicazioni Web e mobili.
Oggi, l'utilizzo delle Web API per i programmatori di nuova generazione offre vantaggi in termini di rapidità nello sviluppo, visto che il codice di un'applicazione si "limita" a utilizzare funzionalità esterne ad essa, residenti da qualche parte del Web e nell'esclusivo controllo di terzi. Quando un codice dipende da funzioni sviluppate da terze parti e fornite tramite Web API, è soggetto alla loro stabilità, disponibilità e manutenzione. Infatti, il programmatore si affida a servizi esterni su cui non ha il controllo diretto. Ciò significa che, in caso di disservizi o dismissioni dei servizi API, il funzionamento dell'applicazione può essere compromesso. Questa perdita di controllo sulle parti vitali di un'applicazione, significa lateralmente perdita di conoscenza sullo sviluppo di algoritmi da parte del programmatore. Delegando la complessità di un'applicazioni a funzioni esterne conoscibili dai soli risultati restituiti, non è possibile comprendere come siano implementate o gestite tali funzionalità. Questo si traduce in una mancanza di trasparenza e controllo sul comportamento interno dei servizi utilizzati. Inoltre, non è raro che le Web API subiscano modifiche nel tempo, ad esempio aggiornamenti delle specifiche o delle politiche di utilizzo. Ciò implica modifiche indipendenti dalla volontà del programmatore e dell'utente, costretti ad Aggiornare l'applicazione per adattarsi ai cambiamenti dell'API. Questo potrebbe comportare costi aggiuntivi in termini di tempo e risorse, oltre che a una interruzione temporanea o definitiva dell'applicazione. Da parte dell'utente finale, l'affidabilità e le prestazioni dell'applicazione basata su Web API possono variare e dipendono dalla qualità del servizio offerto dal fornitore, oltre che dalla disponibilità e dalla qualità della connessione Internet dello stesso utente. Penso che l'epoca dei Software liberi e/o gratuiti sia al termine, essendo i nuovi servizi basati sul Web offerti quasi sempre in abbonamento.
In definitiva, con le Web API, fino a quando la catena di attori fatta di Hardware, produttore di API e di sistema operativo, infrastruttura Web e connessione Internet, programmatore di Web app e utente, è interconnessa e comunicante, allora le informazioni dal punto A si spostano al punto B e viceversa, cioè all'utente e dall'utente che utilizza il servizio offerto, come se si stesse tornando ai terminali degli anni settanta. Quando un punto di questa catena viene meno, l'utente è decisamente tagliato fuori. I problemi derivanti da questo approccio vanno dalla limitata conoscenza delle tecniche di Programmazione da parte dei nuovi programmatori all'obsolescenza programmata, quest'ultima sempre più generata dalla disponibilità di versione del Software, che a insindacabile arbitrio del suo produttore potrebbe rifiutarsi di girare su un Hardware perfettamente funzionante, come già oggi avviene.
Il problema delle dipendenze esterne e della perdita di controllo del codice oggi è una realtà tangibile. Il 2023 è stato caratterizzato da un evento che mai prima nella Storia delle tecnologie elettroniche e informatiche si era verificato: la massificazione quasi istantanea dell'Intelligenza Artificiale. Le API esposte da questi recentissimi servizi consentono agli sviluppatori di integrare funzionalità avanzate di Intelligenza Artificiale, come Riconoscimento Vocale, analisi del Linguaggio naturale, visione Artificiale e altro ancora, nelle proprie applicazioni senza dover sviluppare tali funzionalità.
Anche i servizi collegati alle intelligenze artificiali, settori dell'Informatica sempre più interconnesse alla vita delle persone, sono fonte dei problemi etici e tecnici evidenziati prima.
Le API di Intelligenza Artificiale sono oggi fondamentali per il funzionamento di applicazioni moderne in settori come l'e-commerce, la sanità, l'automazione industriale e altro ancora. La mancanza di accesso o problemi nelle API di Intelligenza Artificiale potrebbero compromettere seriamente la vita di un individuo o di una intera comunità. Perché dovrebbe avvenire? potrebbe essere la domanda a cui rispondere. Invece la giro e la rilancio: perché non dovrebbe avvenire? Nell'esperienza dei Social network un'evenienza simile non si è già verificata? Per un programmatore, queste nuove interfacce sono scatole nere basate su algoritmi complessi e modelli di machine learning che richiedono una vasta quantità di dati di Addestramento e una continua ottimizzazione. Ciò rende letteralmente impossibile per gli sviluppatori indipendenti comprendere appieno il funzionamento interno delle API e mitigare eventuali problemi etici o limitazioni tecniche.
Devo necessariamente arrivare a concludere questa disamina, ammettendo che le implicazioni sociali di tale problematica abbracciano tutti i settori della società attuale e meriterebbero un'analisi ben più approfondita, in cui si dovrebbero esaminare con decisione i concetti di responsabilità personale, di sicurezza dei dati, di eticità di sviluppo delle tecnologie, di obsolescenza programmata, di politiche di accesso alle informazioni, di accessibilità e di usabilità dei dispositivi per tutte le persone, indipendentemente dalla diversità Sociale, culturale o Fisica di ognuno.
Per quanto articolata e creativa sia la mia analisi di questi fenomeni, sento che qualcosa non sia ancora giunto a completa espressione. Ho voluto brevemente percorrere la Storia della Programmazione Informatica dal punto di Vista di me sviluppatore di lunga data, osservando come l'evoluzione dei sistemi abbia limitato l'orizzonte Tecnico e culturale di un programmatore indipendente. Nel limitare le possibilità di uno sviluppatore, non solo sono stati tacitamente trasferiti da lui agli altri conoscenze, competenze e capacità, i tre pilastri fondamentali dell'Educazione e della formazione, ma anche la responsabilità nello sviluppo. Il programmatore si libera dal tormento della scelta e la fa apparire come un risultato proveniente da altrove, una sorta di liberazione dalla responsabilità della sua arte e delle sue scelte. Ho messo in evidenza come l'evoluzione dei sistemi abbia portato a una crescente dipendenza da tecnologie e servizi controllati da poche grandi aziende del settore informatico, oggi definite big tech e identificate dall'acronimo "GAFAM", ricavato dalle prime lettere dei loro nomi: Google, Apple, Facebook, Amazon e Microsoft. Queste multinazionali dell'Informatica, con il loro potere economico e tecnologico, hanno acquisito un'enorme influenza sull'industria e sulla società nel suo complesso. Il fenomeno dell'esproprio di conoscenza, derivante dalla concentrazione del controllo delle tecnologie e delle informazioni nelle mani di pochi attori dominanti, solleva importanti questioni riguardo alle problematiche etiche e sociali menzionate. In qualche modo, è urgente affrontarle attraverso un approccio d'insieme, che coinvolga non solo gli sviluppatori e le aziende, ma anche i governi, le istituzioni educative e tutti i settori della società. Questo comprende politiche e normative volte a promuovere la diversità e la concorrenza nel settore tecnologico, nonché investimenti nell'Educazione Digitale e nella sensibilizzazione agli aspetti etici e sociali di questo sviluppo. Solo affrontando queste questioni in modo deciso e collaborativo sarà possibile garantire un futuro Digitale più equo, inclusivo e sostenibile.