Mañana voy a asistir a una mesa redonda para hablar de lenguajes de tipado dinámico, o como se les suele llamar por simplificar, lenguajes dinámicos y de la visión que de los mismos tiene Microsoft. No se trata de un concepto nuevo (lenguajes como LISP o Fortran se consideran como dinámicos) pero sí de uno que está evolucionando de manera interesante y ganando adeptos. En su origen, la denominación "dinámico" viene de la flexibilidad que ofrece a la hora de manejar variables y sus declaraciones. Lenguajes como C++ o Visual Basic (estrictamente tipados) requieren de declaraciones estrictas de variables si no queremos generar errores de compilación. En la actualidad, el concepto de lenguaje dinámico sigue avanzando y permite modificar de forma dinámica en algunas de sus versiones más modernas y sin necesidad de recompilar, la estructura de objetos o de datos o incluso añadir código que extienda la funcionalidad de nuestro programa. Dos ejemplos de lenguajes de este tipo que están en el centro de muchas miradas son Ruby y Python. Microsoft, fiel a su filosofía de dar al programador libertad de elección sobre el lenguaje a usar, está liderando el desarrollo de unas versiones de ambos lenguajes para funcionar sobre el framework .Net y creando las extensiones para poder usar el IDE (entorno de desarrollo) de Visual Studio. Esta "implementaciones" se llaman IronRuby y IronPython. Ambos proyectos están hospedados en sites de desarrollo de código abierto, el primero en Codeplex, muy centrado en proyectos Open Source en .Net y el segundo en RubyForge, dedicado exclusivamente a proyectos Ruby.
A pesar de todas la ventajas que ofrecen estos lenguajes, como era de esperar, no hay consenso entre programadores sobre cuál es el tipo de lenguaje ideal. La elección de ese lenguaje ideal dependerá mucho del tipo de proyecto que queramos desarrollar. Es cierto que los lenguajes dinámicos ofrecen una gran flexibilidad, pero pueden ofrecer problemas de calidad y de fiabilidad de código, no son los más adecuados para proyectos donde la interfaz de usuario es compleja y bastantes programadores se quejan de su rendimiento y falta de madurez. En fin, que si buscáis en Internet vais a encontrar un número similar de artículos que hablan bien y mal de ellos. La conclusión: pues que depende del tipo de proyecto y por eso creo que la propuesta de Microsoft consistente en abrazar estos nuevos lenguajes es la adecuada. Un mismo IDE nos permite trabajar con varios lenguajes simultáneamente a la vez que le sacamos el máximo provecho al que creo es el framework más completo que hay disponible: .Net. Además, los lenguajes estrictamente tipados no se han quedado quietos: si os descargáis el último Visual Studio 2008, de momento sólo en inglés, podréis comprobar cómo algunas de las ventajas de los lenguajes dinámicos se han incorporado a Visual Basic y a C#. Y también podéis empezar a jugar con LINQ, una nueva interfaz de acceso a datos que simplifica y agiliza notablemente el desarrollo de aplicaciones y que soporta funcionalidades que hasta ahora era propias de lenguajes dinámicos, como extensiones y expresiones lambda.