The Future of C#

Description

Project Roslyn is a complete renewal of the C# and Visual Basic compilers, exposing them as full fidelity APIs for everyone to use, and providing a great foundation for evolving the tool experience and the languages themselves. How can you make use of Roslyn, and what new language features do we have in store? Come and see!

For more information, check out this course on Microsoft Virtual Academy:

Any updates on M#/Midori/whatever? After task/async it should be time for contracts, compile time code generation, immutability, purity, native compilation ... Joe Duffy said more details in the coming months ...

Ok, Xamarin offers framework 4.5 for Android, but Mono (father of Xamarin) was not a successfull project, at least it was on the road.

Why not an official (complete and stable) Microsoft .NET for Linux and other Unix?

May be Microsoft, thinks yet that business in the future will be Windows, I do'nt think so, example: **The Cloud**. In the future HW, Operating System and DBMS will be only commodity, the most important thing for enterprises will be the choose between Java and C#, right now Java wins because it can be used on a multitude of platforms. This is a guaranty for serios and large enterprise developments.

The future.... 2000 thousand dollars per developer per year to xamarin for the pleasure of using visual studio for iOS and droid on top of the 1000 dollars to ms for vs pro with msdn. Add to that the cost of a Mac to build the iOS app. Compared to using eclipse and java - free. objc with xcode - free bar the cost of the Mac. This is the big plan to crack android and iOS ? Get people to pay a ton of cash to develop for the smallest mobile platform. I wonder why devs prefer other platforms?

@ciupaz: Yes, VB.Net is supported now and into the future. VB.Net is mentioned a number of times. the important thing to remember is that there's one language team for C# and VB.Net. Also a commitment has been made that the two languages will evolve together. So while there wasn't a specific session for VB.Net, it is indeed alive any well...

OMG!At 34:32, this is absolutely not a nice feature! This is against clean code!Why not use polymorphism instead and call shape.WriteLine()?!Please remove this feature, this is going against productivity, who wants to add new case clause for every select in the code, who knows how many select statements there are, very hard to refactor! Also dependency injection is not possible this way.

Type switches are needed sometimes. "Polymorphism" traditionally means that the method implementation is chosen based on the type of a single object, AKA "single dispatch". But this means it is no use if you have two objects and you need to use different code for different combinations of types, AKA "multiple dispatch".

Often when people encounter a situation like this they think "Oh, I must have designed my program all wrong. If I'd done it right, this situation wouldn't have happened". But it's not true. Some situations involve dynamic dispatch based on the type of more than one object.

@danielearwicker - yes, good point... I have come across this scenario many times and understand co/contravariance (for the most part), but was not familiar with the term and theory of "multiple dispatch". This helps me better understand the concept better. Thanks!