Microsoft Plans to Open C#, Visual Basic Compilers | eWeek

Microsoft Plans to Open C#, Visual Basic Compilers

Written By
Darryl K. Taft
Darryl K. Taft
Nov 18, 2009
3 minute read
eWeek content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More

LOS ANGELES — While competitors are coming up with new, “modern” programming languages, Microsoft continues to evolve its tried and true languages such as Visual Basic and C#, with new features — including future plans to open up the respective compilers to developers and to add support for asynchronous programming and immutability.

In a session at the Microsoft Professional Developers Conference (PDC) 2009 here, Luca Bolognese, group program manager for the languages team at Microsoft, said the software giant is working on three primary things regarding the future of Visual Basic and C#. One is delivering compiler-as-a-service capability, another is support for asynchronous programming and a third is immutability. Both support for asynchronous programming and immutability already exist in Microsoft’s F# language. In object-oriented and functional programming, an immutable object is an object whose state cannot be modified after it is created.

While Google is developing new programming languages such as its Go general purpose language and Noop Java-like language, Microsoft is adding functionality to Visual Basic and C# to continue to modernize those foundational technologies.

Although Bolognese said there is no guarantee that Microsoft ultimately will pursue any of these directions in product form, “The first thing or area we are exploring is the opening up of the compiler,” he said. “Right now the C# and Visual Basic compilers are ‘black boxes’ — you push in a file on one side and on the other side comes out IL [Intermediate Language].”

However, the plan with “opening up” the compilers would be to enable developers to work with the internal data structure of the compiler. This would enable some level of aspect-oriented development. And another benefit would be to enable developers to build refactorings, Bolognese said.

“Because we are exposing the compiler this way, we are rewriting them in C# and VB.NET so we can make them available to you as managed APIs.”

Bolognese demonstrated some of the coding techniques recommended to make code asynchronous. “This is called inversion of control, which is needed to help make code asynchronous,” he said. “We look at the asynchronous code you have to write today and we decided we had to do something about it. It looks very simple, but there are dragons in there.”

Meanwhile, Microsoft is working on adding immutability to C# and Visual Basic, but the company has not settled on a particular method or way to deliver it. “I have seen four or five different proposals about how to get this into C# or VB, but we haven’t found the silver bullet,” he said. “But we like to think of it as a compiler feature.

Bolognese said he could talk so definitively about the future direction for both languages “because of a strategy we call co-evolution. It means that in the future you won’t see any big feature inserted in one language and not in the other.”

Already, today C# and Visual Basic are declarative, dynamic and concurrent languages.

“The field of programming languages was frozen with Java and C# for the longest time, and it’s good to see more dynamic languages come in,” Bolognese said.

Thus the move to more dynamic languages merges with the move to more declarative and concurrent systems. “In my view declarative code is a prerequisite for concurrency. You can write parallel code in an imperative fashion and it might run for awhile. But you’re much better off writing your code in a declarative fashion so that parallelism is done for you.”

Moreover, Bolognese said Microsoft has introduced a new feature called “Dynamic” to tell the compiler what happens at that point in time.

eWeek Logo

eWeek has the latest technology news and analysis, buying guides, and product reviews for IT professionals and technology buyers. The site's focus is on innovative solutions and covering in-depth technical content. eWeek stays on the cutting edge of technology news and IT trends through interviews and expert analysis. Gain insight from top innovators and thought leaders in the fields of IT, business, enterprise software, startups, and more.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.