Programar será facíl.
Hay una idea que lleva rondándome ya mucho tiempo.
Para empezar tenemos el hecho, de que programar, sin errores, hoy por hoy, parece imposible.
Por otro lado es una técnica difícil de dominar.
Ahora expongo mi idea, que puede que sea imposible de llevar a la práctica por su complejidad, pero haría de la programación un juego de niños.
Ya conté algo de que lo ideal sería un diálogo en el que tu le indicases, abstractamente, al ordenador, que es lo que deseas hacer.
La primera parte de la idea es buscar un lenguaje de programación que no pueda fallar, y ahí esta SPARKAda.
La segunda es montar sobre ese lenguaje otro mucho mas complejo. Esto llevará posiblemente a una sobrecarga algorítmica bastante importante, pero no se puede hacer una tortilla sin romper los huevos ;).
Con este segundo lenguaje (lo llamare miSOl, si de verdad lo hago algún rato), la idea sería muy sencilla, hay que hacer una base de datos enorme, de algoritmos (una librería, del tamaño de la de Alejandría).
En esta base de datos habrá un algoritmo para cada propósito, pero no se trata de hacer un sistema experto con una librería enorme de per se, la idea es infinitamente más simple y cómoda.
Resumiendo, tu lo que haces es pedir hacer un programa, eliges que tipo de programa quieres hacer y su nombre, luego, siguiendo un procedimiento de diseño descendente, explicas de forma general lo que hace el programa.
En cada parte de lo que has dicho que hace explicas lo que hace esa parte, y así sucesivamente, hasta que reduces el problema a uno que se pueda escribir en un par de lineas de SPARK. Este programita en SPARK se añade a una gigantesca base de datos, y cada vez que quieras volver a hacer eso, directamente usará ese algoritmo.
Aún tengo que pensar que estructura habria qe usar para esa base de datos, y creo que aún no se me han ocurrido ni una facción de los problemas que puedan aparecer(el principal creo que sería automatizar la especificación en SPARK, pero de verdad pienso que la idea es realizable, y que puede simplificar la programación e incrementar su velocidad y fiabilidad de forma exponencial (al fin y al cabo es nuestro lenguaje el que dominamos, incluso pensamos con él).