Microsoft’s Common Language Runtime, the virtual machine that anchors the .Net Framework, is due for a makeover, with the company announcing plans to make the CLR more efficient and scalable.
Key to this modernization will be improvements to the intermediate language underlying the CLR, called IL, which has not been upgraded in ten years, said Mads Torgersen, lead designer for C# at Microsoft. The company wants to improve the IL and make the CLR a richer target for programming languages.
The goal of the CLR is to run .Net programs efficiently. Currently the biggest problem with .Net is the inherent limits of scalability of the runtime itself, said Ben Watson, Microsoft principal software engineer. The CLR is being pushed beyond its original intention and design. Watson explained that when multiple gigabytes of code are being loaded, algorithms built into the CLR start breaking down.
One imminent improvement involves Span<T>, pronounced “span of tee,” a new type that will offer language and framework features for achieving safer, more-performant, low-level code. The “t” in Span<T> means type parameter. Span<T> will be used by C# and other languages to create more efficient code that does not need to copy large amounts of data or pause for garbage collection, Torgersen said. New versions of the CLR will have “inside knowledge” about Span<T> to improve speed. Span<T> will be rolled out over the next few releases of the .Net Framework.
Serving as Microsoft’s counterpart to the JVM of the Java world, the CLR provides code management of .Net languages including C#, Visual Basic, and F#. Source code is compiled by the language compilers into IL code; the CLR runs the program by executing the IL and translating the output into machine code while the program is running. Other services are provided by the CLR including automatic memory management and type safety, saving the programmer from having to provide for these services.