Il software del futuro? Sviluppato dai computer secondo Intel
- 2 min
- vai ai commenti
In un intervento sul blog di Intel, Justin 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“.