Un nuevo lenguaje de programación facilita escribir código para aplicaciones sociales
El lenguaje, llamado Dog, está diseñado para reducir la complejidad de los lenguajes de programación existentes.
Aunque para subir un 'post' a Twitter o hacerte amigo de alguien en Facebook solo hace falta tocar unas cuantas teclas o usar el ratón un par de veces, pueden ser necesarias miles de líneas de código para lograrlo.
Dog, un nuevo lenguaje de programación, podría hacer que fuera más fácil e intuitivo escribir toda clase de aplicaciones sociales, desde sitios de preguntas y respuestas hasta otros de búsqueda de pareja en línea. Y como Dog incorpora el lenguaje natural, también será más fácil que los novatos aprendan código.
Sep Kamvar, el profesor del Media Lab del Instituto Tecnológico de Massachusetts (MIT) que ha desarrollado Dog con la ayuda de algunos alumnos, espera poder lanzar el lenguaje en una versión beta privada en los próximos meses y hacer un lanzamiento público en primavera del año que viene.
Dog surgió de la frustración de Kamvar con los lenguajes de programación existentes, como Java, que le parecían innecesariamente difíciles de usar para escribir el código que gobierna las interacciones sociales. A la hora de sentarse a escribir código, cosas que son fáciles de describir en inglés –como un comando para notificar algo a alguien- hay que pensarlas en términos de almacenaje de datos y protocolos de comunicación.
Cómo se inició este trabajo
“Tenía que escribir el código en un nivel de abstracción menor que el que usaba al pensar en las interacciones” explica. “Así que pensé que sería interesante escribir un lenguaje de programación que me permitiera escribir al mismo nivel de abstracción al que pienso”, añade Kamvar.
Este investigador empezó el trabajo sobre Dog definiendo los retos específicos que él tiene con los lenguajes de programación tradicionales al construir aplicaciones sociales, entre los que se incluyen identificar a personas, hablar con ellas y escucharlas. Se le ocurrieron algunas ideas para resolver estos problemas con un nuevo lenguaje de programación. Por ejemplo, para que fuera más fácil identificar a la gente, hizo que las personas fueran un tipo de dato básico que el lenguaje fuera capaz de reconocer, igual que otros lenguajes reconocen hilos de texto o números enteros.
Sep Kamvar, el profesor del Media Lab del Instituto Tecnológico de Massachusetts (MIT)
Después creó una sintaxis sencilla en torno a estas ideas que usa el lenguaje natural (ya que este lenguaje trata de coordinar y comunicarse con la gente) y se centró en una pequeña serie de comandos muy claros: pregunta, escucha, avisa y computa. Una línea de código de muestra para una aplicación de agregador de noticias sociales sencilla equivale a “ESCUCHA A LA GENTE DE mit VIA http PARA posts”, que servirá para que la aplicación haga un seguimiento de la web para actualizaciones de un grupo de personas afiliadas al MIT.
Aunque estas cosas se pueden hacer en otros lenguajes de programación, Kamvar sostiene que no suele ser muy fácil. Y los usuarios pueden importar funciones de otros lenguajes de programación, según afirma, así que el diseño de interacciones y los procesos sociales se pueden escribir en Dog mientras que otras funciones pueden seguir escribiéndose en otros lenguajes.
A lo largo del último año Kamvar y sus alumnos han estado desarrollando el compilador Dog –el software que convierte el código en una tarea para que la ejecute el ordenador- y escribiendo programas de demostración con el lenguaje para probarlo, como un agregador de noticias para Twitter. Uno de ellos es una plataforma de aprendizaje y enseñanza entre iguales llamada Karma que funciona en la red social extendida del usuario. Se espera que esté disponible para el público el verano que viene.
Dog será gratuito y de código abierto, para que los usuarios puedan añadirle cosas y modificarlo a su gusto. Y aunque es un lenguaje del lado del servidor, lo que significa que depende de enviar datos a un servidor para poder ejecutar tareas, el grupo también está desarrollando una versión del lado del cliente.
Así que pensé que sería interesante escribir un lenguaje de programación que me permitiera escribir al mismo nivel de abstracción al que pienso."
Algunas críticas
Kamvar probablemente se enfrente a algunos escépticos, como Robert Harper, profesor de informática en la universidad Carnegie Mellon (EEUU) que estudia teoría de lenguajes de programación. Harper afirma que tiene sentido crear lenguajes que son más fáciles de comprender para quienes no son programadores, pero no cree que la programación para la computación social sea un nicho que haya que llenar. Y aunque un lenguaje como Dog puede empezar dirigiéndose hacia un tipo de codificación concreto, “inevitablemente te ves envuelto en temas mucho más complejos, y si estás usando un lenguaje codificado para situaciones estereotipadas, se descompone rápidamente”, afirma.
Kamvar hace hincapié en que no ve a Dog como un lenguaje de programación natural al estilo, por ejemplo, de Wolfram Alpha o Inform 7, pero la inclusión de frases naturales debería hacer que Dog fuera más fácilmente comprensible por parte de quienes no son programadores, como los diseñadores de interacciones o los gerentes de producto en las 'start-ups', que suelen tener ideas sobre lo que hay que hacer pero después tienen que esperar a que un ingeniero de software haga esos cambios en el código de la empresa.
En general, Dog podría hacer que programar fuera más fácil para cualquiera, o por lo menos comprender lo que pasa entre bambalinas en un sitio web. A pesar de la atención que se ha prestado a las start-ups de aprendizaje de código en línea, como Codeacademy, no se ha dedicado la misma atención al hecho de que la programación quizá sea más difícil de lo que debería ser, afirma Kamvar. “Quizá deberíamos pensar en diseñar lenguajes de programación que son intrínsecamente más fáciles de aprender, pero que sigan siendo potentes”, afirma.