Mono (http://www.go-mono.com) es la implementación libre de la tecnología .NET, capaz de correr en Linux, sistemas *NIX, MacOS, y Windows. Gracias a este proyecto, los usuarios de sistemas *NIX podremos contar con los últimos avances en lo que a tecnología del software se refiere.

Y es que Mono no es simplemente un compilador y su correspondiente runtime, sino que también se incluyen una serie de utilidades que nos facilitarán mucho la vida a la hora de programar, como un explorador de documentación –MonoDoc-, o un mini servidor web –XSP-, con capacidad de procesar programas escritos para ASP.NET o de ofrecer un servicio web para el resto de Internet, entre otras.

Además con Mono no estás limitado a un solo lenguaje, sino que puedes programar la parte que más te interese de un proyecto en un determinado lenguaje, programando el resto de éste en otro, facilitando con ello el diseño de rutinas que podrían ser más fáciles de implementar en otros lenguajes. Por el momento puedes programar en C# y VisualBasic.NET, aunque ya se están desarrollando compiladores para otros lenguajes, como puede ser Python o Ruby.

Esta homogeneidad en los lenguajes se consigue gracias a que un programa escrito para Mono o .NET no se compila directamente a código máquina, sino que es compilado a IL, un lenguaje ensamblador de alto nivel, el cual es traducido por el runtime (JIT) en el momento de la ejecución, realizando las optimizaciones que sean oportunas según el tipo de arquitectura en el que se esté ejecutando el runtime. Este IL tiene sus propia estructura (CLS) y sus propias estructuras de datos (CTS), de forma que los diferentes tipos de datos de los lenguajes .NET, deben ser mapeados a tipos de datos del CTS. Además, y como consecuencia directa de lo anterior, podemos conseguir portabilidad entre arquitecturas y entre sistemas operativos, únicamente con tener en cuenta que no se deben realizar tareas específicas para un determinado entorno (como lecturas de registro, carga de librerías que no estén portadas a otros sistemas, etc.).

La verdad es que es que aunque es una tecnología que está dando sus primeros pasos, promete ser muy interesante. Y es por ello que, a partir de ahora, me dedicaré a contaros lo que me sea posible en este blog. De momento os recomiendo que os bajeis las fuentes de la página web, lo compileis, y echeis un vistazo a los ejemplos que se incluyen.