Eric Lippert - Isn't .NET cool because you don't need to know a lot about how the underlying system

Sign in to queue

Description

Eric Lippert, Microsoft's "scripting guy," opines on what makes .NET better than, say, old-style Visual C++.

Embed

Download

Download this episode

The Discussion

  • User profile image
    electricnin​ja

    For writing "ordinary" applications, fine. Rock on, .NET.

    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.

  • User profile image
    Lwatson
    Electricninja wrote

    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.

    my 2c 
  • User profile image
    AnitaR
    Need a tripod please, or a warning: "hand-held footage, take your anti-nausea pills now!"
  • User profile image
    lars
    "Isn't .NET cool because you don't need to know a lot about how the underlying system works?"

    It's cool because it enables me to choose if I want to ignore things I may not care about at that time.

    I found Java much more restrictive in this way back in its early days. It felt much more like do it their way - not at all. With the InterOP I can choose. COM and Win32 is still down there, somewhere. 

    In most business applications the majority of surprises are of the kind - "Wow! It will take care of that for me too?" I just love it.

    /Lars.
  • User profile image
    codeRonin
    Oh, great idea! Can I look forward to more memory leaks, unnessary resource gobbling, and fragemented stacks?

    Guess there is only one more solution for that, more hardware, more to spend money!

    Sometimes more innovation is more choking. Fine, give us the option, but we also want the option to get into the nitty gitty hardare if we need to.

    Its a great beginners tool, not an expert tool.
  • User profile image
    scobleizer
    Sorry, that was our first interview and we were trying out different things. You'll see in other videos that I do, indeed, use a tripod.
  • User profile image
    prog_dotnet

    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.

  • User profile image
    ErickS

    "Eric Lippert - Isn't .NET cool because you don't need to know a lot about how the underlying system works?"

    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?

    Erick.

  • User profile image
    Clarke
    AnitaR wrote:
    Need a tripod please, or a warning: "hand-held footage, take your anti-nausea pills now!"


    I disagree!

    The rawness of this format gives the viewer a real sense of being in the room.

    I love it!
  • User profile image
    bugsy_malone
    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. Smiley
  • User profile image
    Charles
    ErickS wrote:

    "Eric Lippert - Isn't .NET cool because you don't need to know a lot about how the underlying system works?"

    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?

    Erick.



    You are spot on.


    Charles

Add Your 2 Cents