Il software del futuro? Sviluppato dai computer secondo Intel

Si chiama machine programming e rivoluzionerà il mondo della programmazione permettendo ai computer di fare il "lavoro sporco". Tutti potranno esprimere la loro creatività e sviluppare il proprio software senza scrivere una singola linea di codice".

Avatar di Jacopo Ferrante

a cura di Jacopo Ferrante

In un intervento sul blog di IntelJustin Gottschlich degli Intel Labs, a capo del team Machine Programming Research del Systems e Software Research Lab, spiega perché Intel sta lavorando per automatizzare lo sviluppo software: l'obiettivo è ridurre gli errori e affrontare la carenza di programmatori esperti.

Il gruppo guidato da Gottschlich si concentra sulla promessa pionieristica del machine programming, una fusione di machine learning, metodi formali, linguaggi di programmazione, compilatori e sistemi di calcolo. Quando il "machine programming" sarà pienamente realizzato, "tutti potranno esprimere la loro creatività e sviluppare il proprio software senza scrivere una singola linea di codice".

Sviluppare e mantenere del software è un processo prono ad errori e che richiede tempo. "Credo che possiamo creare una società dove ognuno può creare software, ma i sistemi gestiranno la parte di programmazione. Questo è il machine programming", ha affermato il ricercatore di Intel.

Un problema fondamentale per Intel e altre importanti aziende tecnologiche, secondo Justin, è che stanno esaurendo gli sviluppatori senior. Secondo code.org, ci sono 500.000 posizioni aperte nel mondo della programmazione solo negli Stati Uniti - rispetto a una produzione annuale di 50.000 laureati in informatica. Una carenza simile può essere riscontrata in tutta Europa.

Nella migliore delle ipotesi, spiega il ricercatore, solo il 10% dei programmatori ha la formazione necessaria per diventare sviluppatore avanzato di alto livello. "Con l'hardware eterogeneo di oggi - CPU, GPU, FPGA, ASIC, chip neuromorfici, quantistici e così via - diventerà difficile, forse impossibile, trovare sviluppatori in grado di programmare correttamente, efficientemente e in modo sicuro su tutto quell'hardware".

I ricercatori guardano al machine programming fin dagli anni '50, ma "oggi è diverso. Siamo a un punto di svolta grazie a nuovi algoritmi di machine learning, hardware nuovo e migliorato e un insieme ricco e denso di dati. Questi sono i tre ingredienti essenziali che crediamo consentano il machine programming".

Un esempio è illustrato nella recente ricerca sugli algoritmi genetici (GA) del team di Justin, che illustra come la funzione di fitness di un algoritmo genetico - una complicata euristica di apprendimento automatico sviluppata da programmatori esperti - possa essere automatizzata. Justin ha spiegato che questo lavoro probabilmente non sarebbe stato possibile solo pochi anni fa.

C'è poi il tema dei bug, che possono sfuggire persino a programmatori esperti ma che possono essere rilevati automaticamente con la nuova tecnica, richiedendo zero intervento umano. "Il prossimo passo è correggerli automaticamente".

Google Translate, il servizio di traduzione automatico di Big G, è stato realizzato da ingegneri che hanno scritto a mano circa 500.000 righe di codice usando tecniche di programmazione classiche. Con il machine programming Google ha riscritto il suo codice, riducendolo a 500 righe. "Non solo la dimensione del codice si è ridotta di 1000 volte", afferma Justin, "ma la precisione del sistema è effettivamente migliorata, è incredibile".

La nuova tecnologia secondo Justin Gottschlich "non eliminerà posti di lavoro, ma invece ne creerà, possibilmente a milioni. A essere automatizzati saranno gli aspetti più umili della programmazione, ed è questo l'obiettivo". Justin e il suo team hanno delineato loro visione futura in un documento pubblicato insieme ai ricercatori del MIT chiamato "I tre pilastri del machine programming".