Qualche giorno fa c'era un
thread su reddit in cui un utente chiedeva di rispondere alla domanda (facendo riferimento al meraviglioso talk
You And Your Research)
Quali sono i grandi problemi aperti dell'informatica?
Ho risposto con un commento in quattro punti, che traduco e riporto qui di seguito.
- La complessita' dei programmi: i programmi grandi non scalano, ma allo stesso tempo abbiamo bisogno di diversi grandi sistemi nella realta'. Non e' un invito al disegno di un nuovo linguaggi di programmazione e non e' strettamente correlato a cose come le prove di correttezza dei programmi. La sfida riguarda la compresione di cosa sia davvero la programmazione, del perche' i programmi grandi siano cosi' complessi, e dopo che verra' sviluppata una teoria di tutto questo magari ci saranno modi per abbattere tale complessita'.
- Interfacce utente. Siamo con la tastiera e il mouse, e lo stesso tipo di interfacce grafiche da... un sacco di tempo. A me pare che non ci sia stato nessun progresso reale dai tempi dell'Apple Lisa, ma questo non significa affatto che le interfacce utente di oggi siano perfette.
- Compressione. Il progresso nella compressione dei dati ha generato mp3, jpg, divx, e altro ancora, cose che stanno cambiando il nostro mondo. La capacita' di comprimere molto meglio dei tipi di dato particolarmente imporatanti puo' portare a grandi cose.
- Algoritmi in grado di capire il linguaggio umano. Google e' scarso ormai! Cerchi qualcosa e poiche' non e' in grado di capire la tua richiesta, tanto meno di capire cosa c'e' scritto nelle pagine web, cio' che ottieni molto spesso e' una lista di risultati che non hanno nulla a che fare con cio' che cercavi. C'e' ogni giorno sempre piu' informazione generata dagli umani su internet e i computer dovrebbero essere in grado di riuscire a comprenderla per permetterci di gestirla.
Se volete dire la vostra sull'argomento leggero' con grande interesse.
Nell'immagine, un robot donna di fabbricazione giapponese. Il problema della comprensione del linguaggio parlato e' di importanza vitale per lo sviluppo della robotica.