Posted By: Charles | Jul 10th, 2008 @ 12:36 PM | 149,056 Views | 59 Comments
What's the C# team up to these days? Who's on the C# 4.0 design team, anyway? With the looming problem of manycore facing developers now and certainly in the near future (to a much greater extent - programming for 80 core (asymmetric to boot) processors, anyone?). I thought it was time to find out what Anders et al are working on to get a clear sense of C#'s near (and not-so-near) future so I asked if I could come to one of their design meetings to have an informal chat (are we ever formal on C9?) and meet the people behind the next iteration of the most popular .NET programming language.

There are some new faces (and some old ones (not in terms of age, mind you Smiley). As expected, merging functional constructs into imperative C# are still top of mind for the C# design team. Here, you'll meet some new programming language gurus and some old time Niners (you'll recall the great Eric Lippert. He was in fact the very first developer we interviewed for C9 back in 2004 - even though his was not the first interview posted, it was the first one shot and the one where Lenn, Jeff, Scoble, Bryn and myself looked at each other and said "wow, we are on to something here!".).

C# 4.0 will contain many new features that will help developers be, yeah, you've heard it before, more productive. There's also some very interesting work going on with adding dynamic constructs to the language, which is of course very interesting given the static nature of the C# language.

In this video you will not get any specific details since the C# team wants to reveal exactly what they've done at PDC 2008. That said, you'll still get a very clear sense of what they've been up to and where they're taking the language.

It's always a pleasure to chat with Anders and team. I think you'll enjoy this one. On a personal note, I was coming down with a cold during this interview so please excuse the asking of the same question more than once (though in a different context). Oh, the joys of cold medicine. You know, the same stuff Lenn was on when he conceived the idea of Channel 9 several years ago.
Rating:
22
0
Well would there be a UCFirst and IsNumeric this time ? hahahaha Smiley just kidding, keep up the good work guys

Impatiently waiting for this version of C#.

Charles (I mean the Charles who wrote the post (as in the one who signed his name (you know Charles))),

You forgot to close one of your '('s

Very cool discussion. I like that fact that a large focus for C# 4.0 is concurrency. I've been doing a lot of work on LINQ and concurrency (with the Brahma project http://brahma.ananthonline.net). I feel what I'm trying to do is exactly what a part of the discussion was about, which is: introducing a model that allows developers to write code that runs in parallel, without them having to put in a whole bunch of thought. The limitations of query expressions fit very well into a streaming-computation model, which is the feature I've tried to exploit. It is also possible to interleave code that runs on another processor with code that runs on the CPU (an architecture suitable for asymmetric core computing).

Even if included as language features, I feel a LINQ-like provider based model (which allows users to write their own providers) would allow the most flexibility since multi-core processor development is going to be in flux around the time C# 4.0 might be released. Allowing people to decide the model of concurrency to be used, while supporting basic constructs (I feel COmega has some very nifty ideas there). It is also entirely possible that the "scalar" processors we run some part of the code on, may not be x86 (Tesla?).

In all, this is the perfect direction for C# to be heading in. But please, pretty please(?) give us, the developers ways to extend and control this beast's innards.
Could you please tell me where i can get the transcript?
Thanks.
stevo_
stevo_
Human after all
I was wondering today if theres any plans to improve the expression support for the compiler.. currently the compiler only accepts lambdas that are trees where a branch is a call to the next.. which makes it impossible to "bake" statement blocks..

It seems to me that the ability to have statement blocks as expressions could be very powerful, for example; you could have an expression as the handler for an enumerator, this could be useful for tools like linq to sql.. because you could do analysis against the expression, and determine which properties are being used.. and thus you could optimize the query to return just the fields that should be called..

I know that example isn't a guarentee, there would be rules about unsafe code still, and you would still need control over this optimization happening or not.. but thats just an example of things that could happen..
Microsoft Communities