¿Qué sigue para .Net CLR de Microsoft?

Common Language Runtime de Microsoft, la máquina virtual que ancla .Net Framework, debe renovarse, y la compañía anuncia planes para hacer que CLR sea más eficiente y escalable.

La clave para esta modernización serán las mejoras en el lenguaje intermedio subyacente al CLR, llamado IL, que no se ha actualizado en diez años, dijo Mads Torgersen, diseñador principal de C # en Microsoft. La empresa quiere mejorar el IL y hacer del CLR un objetivo más rico para los lenguajes de programación. 

El objetivo de CLR es ejecutar programas .Net de manera eficiente. Actualmente, el mayor problema con .Net son los límites inherentes de escalabilidad del tiempo de ejecución en sí, dijo Ben Watson, ingeniero de software principal de Microsoft. El CLR está siendo empujado más allá de su intención y diseño originales. Watson explicó que cuando se cargan varios gigabytes de código, los algoritmos integrados en CLR comienzan a fallar. 

Una mejora inminente involucra Span, pronunciado "span of tee", un nuevo tipo que ofrecerá características de lenguaje y marco para lograr un código más seguro, de mayor rendimiento y de bajo nivel. La "t" en Span significa parámetro de tipo. Span será utilizado por C # y otros lenguajes para crear código más eficiente que no necesita copiar grandes cantidades de datos o pausar para la recolección de basura, dijo Torgersen. Las nuevas versiones de CLR tendrán "conocimiento interno" sobre Span para mejorar la velocidad. Span se implementará en las próximas versiones de .Net Framework. 

Sirviendo como contraparte de Microsoft a la JVM del mundo Java, el CLR proporciona administración de código de lenguajes .Net, incluidos C #, Visual Basic y F #. Los compiladores del lenguaje compilan el código fuente en código IL; el CLR ejecuta el programa ejecutando el IL y traduciendo la salida a código de máquina mientras el programa se está ejecutando. El CLR proporciona otros servicios, incluida la gestión automática de memoria y la seguridad de tipos, lo que evita que el programador tenga que proporcionar estos servicios.