La programación es un arte y una disciplina, la cual se va puliendo en la medida que los que programan trabajan en ella. Sin embargo, parece ser que las herramientas de programación actuales van atrasadas frente al ritmo que lleva el hardware. Este es el motivo por el que la Universidad de Pennsylvania ha entrado como líder en un proyecto de la Fundación Nacional de la Ciencia de Estados Unidos por 10 millones de dólares, en donde se involucra a otras instituciones, como ExCAPE (Expeditions in Computer Augmented Program Engineering).

El equipo, comandado por Rajeev Alur, profesor de compuación y de las ciencias de información, dijo: “Las computadoras se han desarrollado dramáticamente, pero la tecnología que se ha usado para desarrollar programas y software lo ha hecho de manera muy lenta, comparativamente”.

Esto significa que el código no ha cambiado mucho en los últimos 20 a 30 años. Se hace aún por programadores expertos y lleva mucho tiempo, amén de que es costoso y está sujeto a muchísimos errores y problemas. Lo que se espera con esta iniciativa es crear una especie de “caja de herramientas” que trabaje para la programación; que ayuden a crear y a verificar programas. Una de las áreas que serán exploradas será la robótica, la cual está basada en el trabajo físico y en tener muchas limitaciones qe no están interconstruidas actualmente en los lenguajes de programación. Por ejemplo, hacer que un robot (programa) estacione automáticamente un automóvil. “Los programadores pueden empezar especificando metas de alto nivel, tales como la posición final deseada del auto y los requerimientos para que no haya colisiones en el camino”. La herramienta de síntesis puede entonces empezar por dar las estrategias al codificador, explorando las diferentes combinaciones para las partes complejas y llenando automáticamente los detalles con los valores más idóneos para producir un programa completo”.

Otra área en donde se espera cierto éxito es la que se refiere a manejo de flujo en redes y su aplicación en la programación en paralelo de múltiples núcleos.

La meta es producir una serie de herramientas de diseño que permitan a los usuarios programar robots demostrando comportamientos ejemplares y asistir a los programadores expertos para satisfacer sus necesidades en los retos de la programación de núcleos múltiples.

Anteriormente ya han existido proyectos para reemplazar a los programadores (uno antiquísimo fue The Last One, un intento razonable para la época aunque con poco éxito), haciendo que quienes codifican den el flujo lógico y las ideas básicas de lo que se quiere hacer y el sistema construye el programa. Aquí ésa no es la idea, sino tratar de ayudar a los programadores en la lógica del código a escribir, lo cual parece más sustentable como propuesta. En este caso, el dominio de actividad se restringe y es más fácil de formalizar. Ejemplos de este esquema son Mathematica, Maple y Alpha, en donde los sistemas pueden ayudar a planear los problemas y a buscar las metas a resolver.

Algo que parece claro es que los programadores necesitan mejores herramientas y no sólo nuevos lenguajes.

Fuente: ExCAPE.