Qual è il futuro dello sviluppo del software?

Qual è il futuro dello sviluppo del software?

Per anni lo sviluppo del software è stato fatto manualmente.

Dalle schede perforate in FORTRAN alla composizione di metodi distribuiti in Go, la disciplina è rimasta sostanzialmente la stessa: pensare intensamente a un problema, produrre un approccio intelligente (cioè algoritmo) e dare alla macchina un paio di istruzioni da implementare.

Questo approccio, che può essere chiamato "programmazione esplicita", è stato fondamentale per tutto, dal mainframe allo smartphone, dal boom di Internet alla rivoluzione mobile. Ha contribuito a creare nuovi mercati e ha reso note aziende come Apple, Microsoft, Google e Facebook.

Eppure, mancherà qualcosa. I sistemi intelligenti immaginati dagli autori dell'antica età informatica, dal taxi robotico di Philip Dick al C-3PO di George Lucas, continuano la fantascienza. Compiti apparentemente semplici sfidano ostinatamente l'automazione anche dei più brillanti scienziati informatici. Gli esperti accusano la Silicon Valley, di fronte a queste sfide, di essersi allontanati dai progressi di base per concentrarsi su società incrementali o guidate dalla moda.

Questo, ovviamente, cambierà. Le auto a guida autonoma di Waymo ultimamente hanno percorso otto milioni di chilometri. Il motore di traduzione di Microsoft, sebbene non sia fluente in sei milioni di forme di comunicazione, può adattarsi ai livelli umani di accuratezza nelle attività dal cinese all'inglese. E le startup stanno aprendo nuovi orizzonti in luoghi come assistenti intelligenti, automazione industriale, rilevamento delle frodi e molti altri.

Individualmente, queste nuove tecnologie promettono di avere un impatto sulla nostra vita quotidiana. Nel loro insieme, rappresentano un cambiamento epocale nel modo in cui pensiamo allo sviluppo del software - e anche un notevole allontanamento dal modello di programmazione esplicito.

La svolta fondamentale che supporta ciascuno di questi progressi è il deep learning, una strategia di intelligenza artificiale motivata dalla costruzione del tuo cervello. Quello che era iniziato come uno strumento di valutazione dei dati relativamente ristretto ora serve come qualcosa di simile a un sistema informatico generale. Supera le prestazioni del software tradizionale in una vasta gamma di lavori e potrebbe finalmente fornire i sistemi intelligenti che hanno eluso a lungo gli scienziati informatici - imprese che la stampa a volte espande a dismisura.

In mezzo alla profonda campagna pubblicitaria dell'apprendimento, tuttavia, la maggior parte degli osservatori trascura la ragione principale per essere positivi sul suo futuro: l'apprendimento profondo richiede ai programmatori di scrivere pochissimo codice. Piuttosto che fare affidamento su regole preimpostate o fatture if-then, un programma di deep learning scrive automaticamente i principi basati su esempi precedenti. Uno sviluppatore di software deve solo creare uno "scheletro grezzo", per parafrasare Andrej Karpathy di Tesla, quindi lasciare che i computer facciano il resto del

In questo nuovo universo, i programmatori non devono più progettare un algoritmo speciale per ogni problema. La maggior parte del lavoro si concentra, piuttosto, sulla generazione di set di dati che riflettono il comportamento desiderato e sulla gestione del processo di formazione. Pete Warden del team TensorFlow di Google lo ha sottolineato nel 2014: "Ero un programmatore", ha scritto. " Insegno ai computer a comporre le proprie app".

Ancora: il modello di programmazione che guida i miglioramenti più importanti nelle applicazioni odierne non richiede una quantità significativa di programmazione effettiva.

Cosa implica questo per il futuro dello sviluppo del software?

La programmazione e la scienza dei dati convergeranno sempre più

La maggior parte delle applicazioni non includerà programmi di apprendimento "end-to-end " per il prossimo futuro. Si baserà su modelli di dati per offrire capacità cognitive di base e logica esplicita per interfacciarsi con gli utenti e tradurre i risultati. La domanda "dovrei usare l'intelligenza artificiale o anche un approccio convenzionale a questo problema?" Si svilupperà sempre di più. La progettazione di sistemi intelligenti richiederà il controllo di entrambi.

I professionisti dell'IA saranno probabilmente le rock star

Fare AI è difficile. I programmatori di intelligenza artificiale classificate e archiviate, non solo accademici e ricercatori brillanti, saranno in seguito uno degli strumenti più preziosi per le aziende di software. Ciò comporta un po 'di ironia per i programmatori tradizionali, che hanno lavorato automaticamente in diversi settori a partire dagli anni '50 e che attualmente devono affrontare l'automazione parziale dei propri lavori. Il fabbisogno per i loro servizi non diminuirà sicuramente, ma le persone che desiderano rimanere in prima linea devono, con una sana dose di scetticismo, controllare le acque dall'intelligenza artificiale.

La catena di strumenti dell'IA deve essere costruita

Gil Arditi, responsabile dell'apprendimento automatico presso Lyft, lo ha detto meglio. "L'apprendimento automatico è ora nel periodo primordiale della zuppa. È molto simile al database dei primi anni '80 o della fine degli anni '70. Dovevi diventare uno specialista mondiale per far funzionare questi elementi ". Gli studi dimostrano anche che molti modelli di intelligenza artificiale lo sono non semplice da spiegare, insignificante da ingannare e suscettibile di pregiudizio. Gli strumenti per affrontare questi problemi, tra gli altri, saranno essenziali per sbloccare il potenziale degli sviluppatori di intelligenza artificiale.

Dobbiamo tutti familiarizzare con comportamenti imprevedibili

Il concetto di "istruzione" per PC è adatto sia ai programmatori che agli utenti. Rafforza l'impressione che i computer facciano esattamente quello che diciamo e che input simili producano costantemente output simili. Le versioni AI, al contrario, agiscono come sistemi viventi e respiratori. I nuovi strumenti li faranno comportare più come programmi espliciti, in particolare nelle configurazioni critiche per la sicurezza, tuttavia, rischiamo di perdere il valore di questi sistemi - come le mosse "aliene" di AlphaGo - se dovessimo posizionare i guardrail troppo strettamente. Man mano che cresciamo e utilizziamo il software AI, dobbiamo comprendere e abbracciare i risultati probabilistici.

E spero che la probabilità di acquisizione dell'IA sia vicina allo zero.