Lenguajes de Programación, Computación Distribuida, Inteligencia Artificial

Published on Author lopezLeave a comment

Es tiempo de escribir un post explicando mi interés personal en algunos temas, como lenguajes de programación, mensajería, computación distribuida e inteligencia artificial. Soy varios temas, espero poder transmitir algunas ideas sobre ellos.

Muchos de nosotros estamos interesados en esos temas. Son interesantes por sí mismos, y estudiarlos y explorarlos es divertido e interesante. Como desarrolladores de software, nos gusta jugar con ellos: escribir un nuevo lenguaje de programación, implementar uno existente, armar aplicaciones distribuidas, etc.

Pero en mi caso, hay algo más, una base común a todos estos temas. Por ejemplo, tomemos los lenguajes de programación. Los actuales lenguajes pueden ser extendidos para soportar, con menos fricción, la serialización de objetos simples (sin conducta, simples mensajes) para usarlos en aplicaciones distribuidas. Hay dos formas de hacerlo, en principio: extender los lenguajes con nueva sintaxis para soportar la distribución del trabajo, o agregando nuevas librerías. Ver como ejemplo Scala o Akka. Así que, para tener un mejor entendimiento de lo que se necesita, escribí mis propios proyectos personales: mi lenguaje interpretado (AjSharp), extención de Smalltalk (AjTalk) para ejecutar objetos distribuidos, escribir agentes y demos de actores (AjAgents, y agentes en AjSharp), mensajes distribuidos (en AjFabriq) y en los últimos tiempos, explorando JavaScript con Node.js (SimpleMessages, SimpleQueue, MultiNodes, SimpleRemote, SimpleActors… ), todo esto para tener las piezas necesarias para escribir y ejecutar aplicaciones distribuidas. Claro que hay multitud de proyectos ya existentes que podría usar. Pero escribir mis propias implementaciones me entrena, me hace practicar y obtener un mejor entendimiendo de los problemas y soluciones a implementar. De paso, es muy divertido  🙂

Pero ¿por qué computación distribuida? Estoy convencido que es el camino a explorar para implementar una nueva clase de aplicaciones. Fundamentalmente, aplicaciones que resuelvan problemas complicados, que puedan ser abordados usando computación en paralelo y escalabilidad horizontal. No solamente para procesamiento de Big Data. Hay vida más allá de analizar tweets en tiempo real. La idea es abordar problemas de inteligencia artificial, usando computación distribuida y hardware existente.

Esta es, entonces, el gran fondo de mi escenario de desarrollo: lenguajes de programación fexibles; mensajería para soportar programación distribuida; y aplicaciones distribuidas para la siguiente generacièn de problemas a resolver.

Sí, la próxima frontera. Donde jamás hemos llegado 😉

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Leave a Reply

Your email address will not be published. Required fields are marked *