paul_krill
Editor at Large

Microsoft Roslyn compiler project will boost C#, Visual Basic

news analysis
Oct 10, 20142 mins
Software DevelopmentTechnology Industry

Microsoft lays out plans, features, and cuts for Roslyn compiler project

C++ Java PHP .Net Python JavaScript code digital
Credit: Thinkstock

Microsoft with its Roslyn .Net compiler project is getting ready to upgrade its C# and Visual Basic languages.

Microsoft Open Technologies has posted a chart listing dozens of features that are either planned, done, or will not make the cut for each language. However, it all remains subject to change. Roslyn has been available as a preview since 2011 and became an open source project this spring with general release expected soon.

Tough decisions have been made about the feature sets of the two languages, said Mads Torgersen, principal program manager at Microsoft, in a recent blog post: “These decisions are primarily based on cost vs. risk. Some of the features you’ve seen in the previews still need a lot of downstream work to be supported in the IDE, debugger, etc., and also to get to great quality in the compiler itself.”

Microsoft is cutting primary constructors in C# and considering them for a subsequent release, as are declaration expressions in C#/ Out parameters in Visual Basic. “They are both characterized by having large amounts of downstream work still remaining,” Torgersen said. Language features are currently a secondary consideration for Roslyn, with the primary goal to deliver a first release of the Roslyn value proposition, he said. This includes deep language understanding in the IDE and availability via a comprehensive API. “To deliver this well,” Torgersen said, “we need to scale back our appetite for language features a bit.”

Roslyn features code analysis APIs, with developers able to build code analysis tools with the same APIs used to implement the Visual Studio software development platform. The Roslyn Web page emphasizes that while compilers traditionally are black boxes, with source code going in and object files or assemblies coming out, the core mission of Roslyn is to open up these black boxes and share the information compilers have about code.