Microsoft ha decidido abrir sus tecnologías de software, en particular en lo que se refiere a lenguajes de programación de sistemas basados en C#, creando algo que aparentemente se llama M#. Joe Duffy, uno de los que trabajan en el equipo de extensiones de la programación de sistemas en C# desde hace cuatro años, puede ahora hablar de ello. La primera pregunta es natural: ¿Necesitamos un nuevo lenguaje de programación?
Duffy admite que el mundo está lleno de una plétora de lenguajes, pero pasa enseguida a justificar el nuevo lenguaje como cualquier inventor lo haría con su creación, En este caso la idea es que C# es un gran lenguaje, pero esta al margen por la ley del “medio excluido”, es decir, es muy fácil de usar pero no es muy rápido.
El argumento es que hay lenguajes muy rápidos, como C/C++, y lenguajes que caen en la categoría “fáciles de usar”, por ejemplo, Javascript. Sin embargo, el argumento es que se necesita un lenguaje seguro pero rápido, particularmente para la programación de sistemas y aquí entra M#, el cual está basado en el manejo del lenguaje C#. En otras palabras, M# está diseñado parta ocupar el lado derecho superior del diagrama de seguridad versus desempeño. Nótese que “seguridad” en este contexto significa algo como “seguro en memoria”, es decir, las estructuras de datos en memoria no sobrepasarán los límites y no se podrá acceder arbitrariamente a la memoria.
Es claro que nadie se opondría a un lenguaje que tuviese lo mejor de los dos mundos. Los programadores de C# podrían afirmar que ese lugar en el cuadrante superior derecho podrían estar simplemente teniendo una mejor implementación en tiempo de ejecución. Otros podrían decir que C++ pódría ser más seguro y siempre sería más rápido que C# en cualquiera de los casos.
Pero ¿por qué basar el nuevo lenguaje en C#? Duffy contesta: “La seguridad en los tipos es un aspecto no negociable de nuestro lenguaje deseado, y C# representa algo así como un lienzo moderno de seguridad de los tipos en C++ en donde uno pinta. Esto está cercano a lo que queremos, digamos Java, particularmente por la presencia de las características modernas como lambdas y delegates. Hay otros candidatos, como D y Rust, pero hay que decir que mi equipo de trabajo en Microsoft tiene un amplio talento en C# y a la comunidad de programadores la tenemos muy cerca de nosotros”. Duffy además aclara: ” El resultado debería ser más como un conjunto de extensiones para C# -con cambios mínimos- en lugar de un lenguaje completo”.
Cabe decir que el nombre clave M# no se usa en el artículo del blog original, pero en la historia del grupo que está produciendo el nuevo lenguaje sugiere fuertemente que se le denomine M#, pues se usa en la producción del sistema operativo experimental Midori. Así que en cualquier caso, tal vez no se llame así al nuevo lenguaje de Microsoft o bien, se hable en el futuro de Midori.
Referencias: