Guida

Il futuro del low code? Il Big Code. Open source, affidabile e flessibile 

Sarà presto in grado di individuare errori nei software in uso e di individuarne l’autore per evitare plagi. In un futuro non immediato, permetterà anche la generazione automatica di interi programmi. Basterà spiegare cosa ci si aspetta da un software e sarà un modello AI/ML a scriverne il codice. Tutto fa pensare che il Big Code avrà un “big impact” sul mondo dei developer e su chiunque utilizzi programmi per fare business o divertirsi. L’Italia e i suoi ricercatori, grazie al Tecnopolo di Bologna, hanno l’opportunità di essere tra i protagonisti di questa rivoluzione IT.  

Pubblicato il 14 Giu 2022

big code

Fortemente ispirato ai principi dell’open source, il big code promette un effetto disruptive nel mondo degli sviluppatori con riscontri concreti in tutti i settori. Il “code”, infatti, è alla base di ogni programma e i programmi sono ovunque. Renderlo più semplice, accessibile e corretto può avere impatti positivi sull’intero sistema economico globale, al prezzo però di un cambio di mindset.

Come ci si è resi conto dell’importanza vitale dei dati per qualsiasi genere di attività, infatti, si dovrà presto riconoscere anche il valore dei codici sorgente. Forse saranno anch’essi un nuovo oggetto di attenzione per governi, aziende e privati. Sicuramente già sono al centro di interessanti iniziative di collaborazione e condivisione.

Dai big data al big code: AI e ML protagoniste del mondo software

Esplicitamente e volutamente ispirato al termine “big data”, il concetto di “big code” sostituisce ai dati i codici sorgente mantenendo la stessa logica e lo stesso fine. Ne considera in grande quantità e li utilizza per estrarre informazioni, pattern e insights utilizzando intelligenza artificiale e machine learning. Una trasposizione semplice dal punto di vista teorico, ma che nel concreto presenta alcune sfide. I codici sorgente sono infatti elementi più complessi dei dati e possono essere espressi con linguaggi diversi, non banali da decifrare e utilizzare.

Le ricadute del big code, per lo meno quelle immediate, hanno a che fare con l’ingegneria dei software. Maurizio Gabbrielli, professore e direttore del Dipartimento di Informatica – Scienza e Ingegneria, Università di Bologna, spiega infatti che “grazie a modelli predittivi AI/ML e a meccanismi di apprendimento supervisionato e non, è possibile produrre programmi corretti ed estrarre informazioni utili al loro miglioramento”. È un campo di ricerca prezioso, con ampie aree ancora inesplorate ma esistono già degli output concreti. Addestrando reti neurali artificiali oggi si riesce a riconoscere programmi contenenti errori oppure ad individuare l’autore di un codice analizzandone poche righe.

I vantaggi del big code

I principali vantaggi del big code sono tre e sono tutti e tre dall’effetto dirompente, non solo per chi fa software:

  • Automatizzazione dei processi. Il riconoscimento di errori di codice può essere effettuato anche in altri modi, il vero valore aggiunto del big code è il saperlo fare in modo autonomo, veloce e più efficace.
  • Nuove frontiere di ricerca. Col tempo si mira ad addestrare i modelli AI/ML perché arrivino a effettuare compiti non affrontabili nemmeno per gli esperti, a partire da quelli legati alla stilometria.
  • Correttezza dei programmi. Il big code rappresenta un grande passo avanti nella qualità della produzione di software permettendone analisi approfondite, veloci, diffuse e frequenti.

Su quest’ultimo punto Gabbrielli insiste, perché “non si deve dare per scontato che i software oggi in uso siano corretti. Anche se se ne fa largo uso, spesso contengono molti errori, difficili da individuare e che raramente si riescono a correggere. Con il big code possiamo implementare la qualità dei codici e del loro controllo con impatti evidenti prima di tutto in settori mission critical come la sanità, le infrastrutture, i trasporti, l’energia

Software Heritage, il set di codici ideale per il Big Code

Per far sì che AI e ML sfruttino il valore dei big data è fondamentale avere o creare set di dati adeguati e ampi, per la fase di apprendimento. Lo stesso vale per il big code. Gabbrielli spiega che “servono grandi quantità di programmi per allenare i modelli. Per questo l’archivio universale del codice sorgente Software Heritage promosso dall’Unesco, con i suoi 12 miliardi di file, rappresenta una risorsa preziosissima”.

Il Tecnopolo di Bologna ne ospita il backup con 170 milioni di progetti conservati, tra cui le sessantamila linee del computer di bordo dell’Apollo11 che hanno portato l’uomo sulla Luna. “Questo mirror, il primo realizzato finora, non è l’unico repository ma attinge da tutti quelli esistenti al mondo e offre in un’unica sede tutte le informazioni in termini di codice sorgente esistenti. Sul territorio italiano, quindi, abbiamo portato un elemento cardine per lo sviluppo del big code, unico per certi aspetti” continua Gabbrielli. Ecco quali sono:

  • Aggiornamento continuo: controlla proattivamente tutti i repository presenti e acquisisce in modo automatico i nuovi codici inseriti
  • Garanzia di stabilità: offre maggiore sicurezza rispetto ad altre iniziative che possono essere interrotte senza alcun preavviso per motivi commerciali o strategici, compromettendo ogni attività di ricerca in atto
  • Fruibilità: metterà presto a disposizione metodi di accesso e ricerca negli archivi sempre più efficienti e data set appositamente preparati per supportare l’addestramento di modelli AI/ML

Addio low code: si punta alla scrittura di software automatizzata

Il binomio big code e Software Heritage, con il suo mirror bolognese, tracciano un futuro nettamente open source per la ricerca in questo campo. Una scelta legata ai valori di apertura e di condivisione e supportata da risultati concreti e prospettive invitanti. Il controllo automatico della correttezza dei programmi è in entrambi: vi sono già dei risultati ma anche tanta strada da compiere.

“La nostra attuale conoscenza della teoria della computazione non ci permette di verificare esattamente se un software contiene errori. Sappiamo che la maggior parte ne presenta, ma non potremo mai averne certezza. Questa sarà sempre una spada di Damocle sulla testa degli ingegneri dei software, ma con il big code si ottengono miglioramenti decisivi” racconta Gabbrielli. Cruciali anche i risultati promessi nel campo della sicurezza e dell’antiplagio, grazie alla possibilità di riconoscere e verificare gli autori di un codice.

Cosa avverrà in futuro?

In un futuro meno immediato, si guarda poi alla sintesi automatica dei programmi. Una volta spiegato attraverso il linguaggio naturale cosa si vorrebbe facesse un programma, ci sarà un algoritmo in grado di svilupparlo autonomamente e rapidamente. Un risultato raggiungibile e che potrebbe sostituire l’attuale approccio low code. Gabbrielli precisa poi che “oggi esistono già dei sistemi automatici che supportano i developer in modo sintattico. Con il big code sarà però possibile farlo in modo semantico. Appena il sistema comprende l’intento con cui sto scrivendo un codice, lo completa al mio posto”.

Queste prospettive a forte impatto sulla futura produttività nel campo dello sviluppo software fanno immaginare un ecosistema dell’innovazione sempre più aperto, inclusivo e in evoluzione. Ma devono anche far riflettere sul bisogno di competenze. “Il big code richiede forti conoscenze di dominio. Ci lavorano molti ricercatori anche di diverse discipline, come matematica e fisica, ma è essenziale che abbiano anche nozioni di informatica” afferma Gabbrielli. Se il Paese vuole quindi saltare sul carro del big code in tempo e abbracciare l’innovazione, deve poter contare su giovani in grado di sfruttare le opportunità offerte dal mirror bolognese al 100%.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati