Posted By: Charles | May 19th @ 8:48 AM | 39,420 Views | 23 Comments
CLR Architect Vance Morrison has been very busy working on the future of the CLR, especially as it relates to execution performance and the type system. Some of his latest work is present in the upcoming 4th version of the virtual machine that powers all things .NET, CLR 4, which ships with Visual Studio 2010. Vance has been on the CLR team since its inception. MSIL, the intermediate language produced by the compilers of all .NET languages, is primarily Vance's doing.

Here, Vance guides us through some of the history of the CLR, a look inside the upcoming version and some insights into the future. One of the things that Vance is thinking about with respect to type inheritance is what he calls default interfaces: they are contractual, but with default implementation characteristics, as opposed to purely abstract as interfaces are today. So, a default(implementation) interface is capabe of changing without breaking the systems that implement it. Wait a minute, that' goes against the basic rules of interfaces in the OO world. Vance explains. Relax.

Meet Vance, the face of MSIL. There's much of his thinking and code inside the CLR. Learn about some this here. Tune in.

Enjoy.
Rating:
9
0
stevo_
stevo_
Human after all

Great video.. so whats the deal with the interface thing, because I love interfaces but hate the versioning trouble.. it sounds like theres been a decision to allow a default member implementation.. but when is this?

Also, whats the story about a different exception handling model? couldn't you guys put your thoughts out there for people the masses to crit?

WOOOT for default interface implementation!  This is something that I have wanted for a long time.  Is this going to be in .NET 4? Or some latter verison?

I know in the VS2010 beta released yesterday I got the error "interface members cannot have a definition", so I assume its some latter version of .NET?

GrantB
GrantB
What the hell are we supposed to use man? Harsh language?

Top notch work guys. I need to watch this one again.

PerfectPhase
PerfectPhase
"This is not war, this is pest control!" - Dalek to Cyberman

The COM stuff mentioned at the end, was that the PIA-less deployment, I thought that was part of V4, has it been bumped?

At around the 26th minutes, he says:

"There is this notion of server GC and workstation GC, ...... this distinction came back from the good old days when only servers were multi core, no one had a multi core box as a client"

This is plain wrong, really wrong. Workstations which of course are not servers have had multi processors (which is basically multi cores but on different processors) for years, back the the nineties. You could get boxes (they were terribly expensive) from Digital, Sun, HP, SGI, IBM with Alpha, Sparc, PA-RISC, MIPS and Power processors respectively, configured with 2-ways or 4 ways processing. Basically when those processors became multi-processing capable, they got their way to servers and high end workstations at around the time. And by the way, all those processors were 64 bits. 

You could even get cheap dual G4 processors machines from Apple back to 2001, when no one else was speaking about multi-processing in the personal computer world (the workstation market was considered as high end market distinct from the personal computer market). This was the time when Apple was trying to convince the pc industry (and Intel) that running after the gigahertz was pointless and will have to come to an end. It eventually happened.... 

Taking advantage of multi processing is not a new problem, it is a more important problem now because the number of customers and developers affected by it is larger as the whole industry has embraced multi processing as the main path for higher performance. So we will see more and more cores that we need to use.

Before the problem was limited to people doing rocket science who needed to reduce the computing time of large data sets, and to develop complicated visualization apps, or anything involving high performance. They had (still have) to write concurrent code for 4, 16 cores. From now, we will have to write concurrent code for 64 cores and higher not too far in the future, making the problem even bigger.

But again saying that multi-processing was limited to servers is totally wrong, it had appeared on the client many years ago, again during the time when multiprocessing was not a big player in the windows world. 

Some Microsoft people should really go out sometimes, really...

littleguru
littleguru
<3 Seattle

Hmmm... I haven't watched the video yet but I'm convinced that it was meant in the way that most people (or the average guy) didn't have a multi-core machine at home.

stevo_
stevo_
Human after all

Sorry but its just not true at all that multi proc/core cpus existed on the desktop when the clr was first released.. its only the last 2-3 years where multicore has become common.. and perhaps the only the last 1-2 years where the average users are starting to buy them..

Until its a common scenario that the average desktop will have this capability, it would be pointless and I'm guessing ever so slightly damaging to enable a concurrent designed gc on a single threaded exec machine (guessing that the workstation gc may run slightly better than the server one in that setup).

Also charles, cmon he basically said they'd made a decision, and highlighted how annoying it is today Wink.

Microsoft Communities