The Discussion

But any time we need to write a complex, speed-sensitive subsystem, whether an OS emulator, a game, a 3D modeller, or anything else of sufficient size,
the performance demanded by consumers will always lie somewhere between the best that .NET can give us and the absolute limits of the machine. And that's why we will always need "open reign on the 32-bit memory space", right up until the unlikely
moment that .NET is hardcoded in hardware.

But any time we need to write a complex, speed-sensitive subsystem, whether an OS emulator, a game, a 3D modeller...

This is true perhaps but most applications, indeed most of the applications where the kind of problems caused by forgetting to free some memory, or not checking that you have enough room for the stream of data, or even making sure that you are reading
the stuff you think you are reading, are not overly complex or speed sensitive, or an os emulator, or a 3d modeler, or for that matter a game. They are the run of the mill 'CRUD' (Create, Update, and Delete) applications that act as the glue holding together
almost everything in the modern day business world.

These applications, the ones that often enough need to be maintained on a weekly basis as they are asked to do new things in different ways.

These are the applications that benefit from code management. Shaving boatloads of time from their management cycles, making it feasable to have customization available to small and mid sized busines again.

You are right, run of the mill applications, the boring stuff that 99% of us work with day in and out. Managed code is just what the doctor ordered.

I dont agree with some of the arguments presented.
The .net arcitechture as such are not slower than native c or c++ code, but the current implementation is..
Your code dont execute directly on the hardware. Its managed by a "man in the middle", the jit compiler during runtime. And thats why you have the 10 % or so, performance hit.
Microsoft actually has some of the componets in the gac precompiled to native code suited for your
underlaying hardware..You can argue that precomileing makes a less versetile system, cuz if your precompiled component relies on 3 other components, and one of those breakes your precomiled component are made useless.(windows update)
But as I see it, this is the direction of the .net execution model for the future.

Second. The .net runtime knows more about the underlaying hardware than usual c and c++ compilers, and can in theory produce faster code than a c/c++ compilers today.
That is years off, but the arcitechture supports it.

Third, the argument that a c/c++ programmer automatically produce faster and better code than .net programmer is false.
There is few programmers that actually posess memory optimization knowlege on a high level. And those who do, are much less productive than a "normal" .net programmer.
And when you know that 85% of development projects are not finished in due time, most companies will perfer cutting costs with less development time with .net

Forth, .net does not exclude the underlaying hardware. You can use it directly with managed c++ and c#.

Fifth, 85 % of web applications has buffer overflows and for each hotfix one issue, 3 more errors will be introduced.
Costs will be less with a safer execution model.

Sixt, the desktop machines of today are fat clients with speed and memory just waiting to be used.
So here it is..and people are complaining of speed issues.

But there is no such thing as free lunch..So yea, today .net are slower. Ultimatly the project design and choosing the right tools for the right job wil decide.

Furthermore, I bevelieve Don Box has mentioned somewhere that, the main job of a programmer is to create more and more abstractions on top of existing ones.

The .NET framework has done programmers the favor in abstracting a lot of the Hardware from our code consequently production will increase as control over the underlying systems decreases. I believe this is great since history may be able to repeat itself again.
Remember when thousands of transistors together used to be public available in a circuit? Now they are all abstracted and closed in an IC lowering cost of manufactoring and increasing productivity. I strongly believe that managed code may also abstract underlying
systems (or logical systems) in order to increase productivity or maybe even field replacement, who knows?

I'll put my vote with you - the handheld is very personable. Now, if i were watching these videos with VR goggles...that might be different, but on a tiny media player screen I think i'll be able to handle it.

Furthermore, I bevelieve Don Box has mentioned somewhere that, the main job of a programmer is to create more and more abstractions on top of existing ones.

The .NET framework has done programmers the favor in abstracting a lot of the Hardware from our code consequently production will increase as control over the underlying systems decreases. I believe this is great since history may be able to repeat itself again.
Remember when thousands of transistors together used to be public available in a circuit? Now they are all abstracted and closed in an IC lowering cost of manufactoring and increasing productivity. I strongly believe that managed code may also abstract underlying
systems (or logical systems) in order to increase productivity or maybe even field replacement, who knows?