Forse mai come oggi gli sviluppatori (e più in generale, i programmatori) hanno avuto a disposizione tante soluzioni per svolgere il proprio lavoro in modo differente, utilizzando soluzioni, strumenti, framework e linguaggi di natura diversa ma spesso alternativi per il conseguimento del medesimo risultato. Quali saranno le caratteristiche del linguaggio di programmazione del futuro? Difficile rispondere con esattezza, ma è comunque possibile proporre delle ipotesi.
Tale tentativo viene portato avanti grazie all'iniziativa denominata "Future Of Programming Languages" che, in linea più specifica, cerca di incentivare lo svolgimento di una discussione quanto più ampia possibile legata al tag "Language Of The Future"; ciò raccogliendo dei commenti sotto forma di previsioni, più o meno valide o probabili, riguardanti quello che potrebbe essere il panorama del coding da oggi ai prossimi 10 o 20 anni.
Numerosi i contributi raccolti, ma in molti casi le risposte fornite rappresentano lo spunto per ulteriori interrogativi: il linguaggio del futuro (ma ci si potrebbe riferire anche a più linguaggi) prevedrà di default la presenza di un framework per l'Unit Testing nelle sue specifiche? Sarà basato sul paradigma ad oggetti ma funzionerà facendo ampio ricorso ad altri approcci, funzionale compreso? Uilizzerà il Dynamic Typing in modalità predefinita? Verrà superata definitivamente, nel nome del runtime, la visione di compilazione ed esecuzione come fasi distinte?
Al di là del fatto che già esistano soluzioni concepite per soddisfare alcune delle aspettative espresse in precedenza, sempre secondo le previsioni formulate il linguaggio di programmazione del futuro potrebbe mutuare numerosi costrutti da Lisp e Smalltalk, senza però essere uno di questi due o derivare da essi; non dovrebbe essere nè C/C++, Java o un linguaggio DotNet, mentre le Virtual Machines dovrebbero continuare a mantenere una certa centralità ma non nel lungo periodo.
Il linguaggio di programmazione del futuro sarà Open Source, cioè dotato di specifiche non controllate dai vendors? Sarà utilizzabile sia per la realizzazione di piccole applicazioni che per la creazione di progetti più articolati? Sarà concepito per semplificare la metaprogrammazione permettendo di scrivere programmi finalizzati a manipolare ulteriori programmi? Domande che vogliono essere anche previsioni in attesa di eventuali conferme o smentite future.