Inicio / Ingeniería / Los lenguajes de programación informática pueden influir en la ciencia y el pensamiento

Los lenguajes de programación informática pueden influir en la ciencia y el pensamiento

Durante décadas, se han mantenido encarnizados debates sobre las ventajas de unos lenguajes de programación frente a otros: Java frente a C++; Python frente a Ruby; Flask frente a Django. Aunque a menudo los informáticos y los programadores los libran con fervor, estos debates tienden a basarse en pruebas anecdóticas, con muy poca comparación rigurosa de los enfoques de programación o la cuestión más amplia de cómo el software puede aumentar el pensamiento humano.

Con una subvención de 750.000 dólares de la Fundación Alfred P. Sloan, investigadores del Laboratorio del Conocimiento de la Universidad de Chicago y del Departamento de Psicología de la Universidad de Wisconsin-Madison abordarán estas cuestiones tan controvertidas, centrándose en cómo las distintas herramientas de programación trabajan con nuestras mentes para dar forma al proceso científico.

UChicago

«La idea es examinar el modo en que los lenguajes informáticos pueden ampliar y limitar el funcionamiento de las mentes individuales y colectivas», explica James Evans, director del Laboratorio del Conocimiento, profesor de Sociología en la UChicago e investigador principal del Instituto de Computación. «Intentamos averiguar cómo responden las mentes humanas a diferentes funciones y dominios, tanto en lenguajes de programación como en entornos populares de ciencia de datos».

La idea de que el aprendizaje y el uso de determinados lenguajes informáticos pueden influir en la forma de resolver problemas se asemeja a la famosa hipótesis de Sapir-Whorf, que sostiene que las lenguas habladas difieren en aspectos psicológicamente importantes, de modo que aprender la gramática y el vocabulario de un idioma puede orientar el pensamiento en determinadas direcciones. La idea fue en su día un tema tabú en psicología y lingüística, pero cientos de estudios han revelado ahora vínculos entre el lenguaje humano, la cognición y la percepción.

Pero mientras que es difícil o imposible establecer equivalencias entre lenguajes naturales, la mayoría de los lenguajes informáticos son «Turing completos»: todo lo que puede expresarse en un lenguaje informático puede expresarse en otro. La existencia de cientos de lenguajes de programación formalmente equivalentes hace que sea aún más interesante investigar las diferencias en la forma en que apoyan la resolución de problemas y la imaginación.

«La gente que en un momento afirma que no importa qué lenguaje se utilice porque son equivalentes, en el siguiente canta alabanzas de su lenguaje favorito porque es más ‘natural’ que el de la competencia», afirma Gary Lupyan, profesor asociado de psicología en la Universidad de Wisconsin-Madison y coinvestigador de la beca.

Github

El equipo empezará estudiando el código de repositorios en línea, como Github y BitBucket, y analizando las preguntas y respuestas publicadas en StackExchange. Este enorme conjunto de datos se utilizará para reconstruir una «historia natural» de los lenguajes de programación y determinar con qué frecuencia se utiliza cada uno y para qué fines. Los investigadores también medirán las características de cada lenguaje, como la eficiencia (la rapidez con que se puede utilizar para resolver un problema), la creatividad (cuántos caminos tienden a la misma solución) y la colaboración (la capacidad del lenguaje para ser utilizado colectivamente por un grupo de programadores en lugar de por un solo programador).

A partir de estas observaciones, los investigadores planean utilizar sitios de concursos de programación como Code Golf y TopCoder para comparar cómo resuelven el mismo reto distintas comunidades lingüísticas, así como experimentos en un «cajón de arena» de programación controlada en el que los programadores sólo tengan acceso a funciones y operadores específicos.

Las conclusiones de la investigación podrían orientar el diseño de nuevos lenguajes de programación, entornos y estilos de codificación, y mejorar la comprensión del papel de la programación y el software en la ciencia.

Evans

En términos más generales, según Evans, el proyecto no sólo aportará información valiosa sobre qué lenguajes o funciones deben elegirse en determinados contextos, sino también sobre cómo las mentes humanas utilizan las «prótesis» de software para adquirir conocimientos.

«Comprendiendo y probando estos lenguajes, podemos averiguar qué tipo de características acaban determinando la forma en que las personas y los grupos piensan realmente con estas herramientas mentales. También podemos hacer lo contrario y averiguar cómo piensan las personas y los grupos», afirma Evans. «Espero que aprendamos algunas cosas prácticas y fundamentales sobre la naturaleza y los límites de la inteligencia humana».

Puede interesarte

Cuando la programación informática era cosa de mujeres

Las fotos en blanco y negro mostraban a mujeres elegantemente vestidas configurando hábilmente los cables …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *