Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Podcasts Mads Torgersen on C# 7 and Beyond

Mads Torgersen on C# 7 and Beyond

In this week's podcast QCon chair Wesley Reisz talks to Mads Torgersen who leads the C# language design process at Microsoft, where he has been involved in five versions of C#, and also contributed to TypeScript, Visual Basic, Roslyn and LINQ. Before he joined Microsoft a decade ago, he worked as a university professor in Aarhus, Denmark, doing research into programming language design and contributing to Java generics.

Key Takeaways

  • The overall theme for C# 7 will be features that make it easier to work with data, including language level support for tuples. The release may also include pattern matching for type switching.
  • C# 7 is the first new release of the language to be completely built in the open.
  • Roslyn, the compiler and API, allows a much more agile evolution of the language.
  • The Omnisharp initiative aims to facilitate easier editing of C# code in other editors, including VS Code.
  • IoT and Artificial Intelligence are emerging as key disruptive trends.

QCon talk

  • 0m 53s - Main focus for his QCon talk will be on C# the language, which is undergoing rapid change.
  • 01m 11s - C# is available on many more platforms than it was just a couple of years ago.
  • 01m 46s - For developers targeting Java and the JVM, it’s good to get a glimpse into a parallel world with different kinds of innovation.
  • 02m 18s - C#'s evolution has been inspired by languages like Scala.
  • 15m 18s - The aim is to give an updated view of what the scope of C# is compared to modern languages in general.
  • 15m 51s - C# developers can download the prototypes and give feedback.

C# 7 and the influence of functional languages

  • 04m 10s - C# 7 features will include language level support for tuples to allow multiple return values.
  • 05m 19s - The overall theme for C# 7 will be features that make it easier to work with data.
  • 05m 41s - In a distributed computing world the object-orientated model of the world, where you have stateful objects with virtual methods on them, doesn’t work so well.
  • 06m 04s - Rather than working with data structures from the inside, as you do with objects, you may need to be able to work with data structures from the outside more. 
  • 06m 29s - The team want to have some form of pattern matching which facilitates type switching, such that you can write control structures that will switch depending on the shape of your data.

Beyond C# 7

  • 06m 59s - Lucian Wischik talked a bit at QCon SF last year about Null Safety Checking in Roslyn.
  • 08m 10s - Nullability features won’t be in C# 7 but are being looked at. Another potential future feature is support for asynchronous streams.

Working in the open

  • 09m 14s - Phil Haak mentioned that C# 7 was the first version built fully in the open.
  • 09m 56s - Working in the open means the team gets immediate feedback.
  • 10m 18s - The volume of feedback is sometimes a challenge to manage.
  • 10m 52s - We have to make some hard decisions both in terms of what features to implement and the implementation details.


  • 12m 16s - Roslyn is the code name for our compiler as an API.
  • 12m 41s - It allows us to evolve in a much more agile fashion since anything that is language based can be built very easily from Roslyn components.
  • 13m 04s - The Omnisharp effort aims to facilitate easier editing of C# code in other editors including VS Code.
  • 14m 16s - Newer capabilities in Roslyn include exposing concrete syntax trees and semantic trees (i..e ones with all the binding information).

Disruptive technology

  • 17m 18s - IoT is just beginning; there is going to be software everywhere.
  • 18m 15s - We are at a point where we really understand what Artificial Intelligence is.
  • 19m 12s - Artificial Intelligence is starting to work effectively as a service, for speech recognition or risk assessment for example. As programmers we can still look at it as just method calls that do more fancy things. 
  • 19m 34s - AI hasn’t disrupted programming the way we thought it would. We just have really good services to call into.

People mentioned

Languages, tools and projects mentioned

More about our podcasts

You can keep up-to-date with the podcasts via our RSS Feed, and they are available via SoundCloud, Apple Podcasts, Spotify, Overcast and the Google Podcast. From this page you also have access to our recorded show notes. They all have clickable links that will take you directly to that part of the audio.

Previous podcasts

Rate this Article