Coffeehouse Thread

103 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Why do some people not like .Net framework.

Back to Forum: Coffeehouse
  • User profile image
    conkerjoe

    I read a post which complained about having to download and install the .net framework to run the app. And it made me realise i have seen this so many times without thinking too much of it.
    Would using the .net framework really deter you from using the application.
    Why do some people dislike having to install the.net framework. if they had Automatic updates switched on they wouldnt have a choice.
    What is it that makes the .net framework such a bad investment for your machine ?

  • User profile image
    Deactivated User

    Comment removed at user's request.

  • User profile image
    jsampsonPC

    Non-developers are probably ignorant of its power. That's all I can think of. And then again, there are people like my wife who think that if there are more than 10 shortcuts on your desktop, your "computer is cluttered and runs really really slow."

    If I weren't a developer, and I had some 40+ mb download on my pc, I'd delete that sucker in a heartbeat. Afterall, history tells us that all programs run independently. They don't "share" a framework with other programs.

    But the world is changing, and some people are either ignorant of change, or scared of it.

  • User profile image
    Andrew Davey

    Well Vista ships with .NET 3.0 already installed. That makes it basically another set of system DLLs that no end user ever has to worry about.

    Also, I see .NET 3.0 making way from some amazing new applications. If a program is "cool" and all my friends are raving about it I doubt I'd care about a one time download of 40MBs.

  • User profile image
    figuerres

    conkerjoe wrote:
    I read a post which complained about having to download and install the .net framework to run the app. And it made me realise i have seen this so many times without thinking too much of it.
    Would using the .net framework really deter you from using the application.
    Why do some people dislike having to install the.net framework. if they had Automatic updates switched on they wouldnt have a choice.
    What is it that makes the .net framework such a bad investment for your machine ?



    in part I see this like the move from IE 2.xx and 3.xx to 4.xx and later.

    IE 2 and 3 could fit on about 2 1.4 meg floppies back then.

    I worked for an ISP and was told to make install disks for IE 4

    I told them we needed to burn a CD, on floppy it was (I think) 10 disks! (perhaps 8?)

    so for a time that was an issue and we made deals to get other folks to share the cd with us and later new pc's had IE 5 pre-loaded and we did not need to ship cd's.

    same here.... as new pc's ship they will have .net 1.1 or 2.0 pre-loaded and the user will not need to go download it.

  • User profile image
    Ion Todirel

    Is not only users who don't like .NET, there are also many C++ developers that are too lazzy to give C# a try, and the easy way is to say that .NET is 20M in size, is bad...

    jsampsonPC wrote:
    If I weren't a developer, and I had some 40+ mb download on my pc, I'd delete that sucker in a heartbeat.
    hey!

  • User profile image
    dt_matthews

    because its from MS and some (read lots) of people refuse to accept anything from Redmond (probably the same people who are quite happy to install dodgy copies of Windows but still complain about it)... [C]

  • User profile image
    Shining Arcanine

    conkerjoe wrote:
    I read a post which complained about having to download and install the .net framework to run the app. And it made me realise i have seen this so many times without thinking too much of it.
    Would using the .net framework really deter you from using the application.
    Why do some people dislike having to install the.net framework. if they had Automatic updates switched on they wouldnt have a choice.
    What is it that makes the .net framework such a bad investment for your machine ?



    Right now, I am more of an end user than a programmer as the lowest level programming language I know is PHP (with MySQL as a backend), but my personal opinion of the .NET framework is that it is bloated. There is a ton of stuff in it that is either not necessary or not fully optimized for a single application and when the goal of your application is to execute as fast as possible, the .NET framework becomes a hinderance.

    In high school, I tried to learn C++ and C# on my own (first C# because of its similarity to PHP and then C++ when I realized that C# was not what I wanted) and I got stuck on OOP. When I am older, I plan to write computer programs to simulate interactions between various molecular species, so my opinion of the .NET framework is a result of the efficiency that applications in my desired field require more than it is a result of an application framework consuming several dozen megabytes of space, although seeing an application framework consuming several dozen megabytes of space hurts, especially when I know that if every application used it, my system would be less efficient in terms of overall speed of execution than it is now because Windows XP does not utilize idle memory in buffers. I would expect Windows Vista to see a net gain in performance from having every program designed around .NET, unlike Windows XP, because of its memory buffers, although I would expect single application performance to suffer somewhat because of the overhead imposed by such a configuration.

    I am now in college and my college classes are not quite yet at OOP (I am taking Discrete Mathematics) but hopefully I will learn OOP in the next few years. Perhaps I will gain a greater appreciation for .NET but I doubt it, especially since I will most likely be writing applications for Linux because of its low overhead and thus excellent suitability for high performance computing applications. I like Microsoft but unless they debut a low cost OS for high performance computing applications, their operating systems will be ideally suited to a good amount of the computer science portion of my profession, although I expect my primary computer to still run Windows. Smiley

  • User profile image
    imekon

    Even though I've started trying out .NET, I'm suspicious of Microsoft's intent behind it.

    Apart from that...

    • It's interpreted, then JIT'd to the final platform. Is that good or bad?
    • Applications built with it have a large footprint - 20MBytes. Compared to WIN32 apps this can appear as bloat.
    • It has a lot of nice classes, but it doesn't cover everything, yet. Some things are still WIN32 and require P/Invoke.
    • It's graphics rely on GDI+ which at the moment is slow compared to GDI.
    • It avoids pointers, which is a good idea.
    • It uses a garbage collector which is both good and bad. Good in that you can forget about cleaning things up, bad in that it'll clean things up when you don't expect it - unless you control it.
    • Assemblies make cross language support easy - but that's a two edged sword. It can also expose how your app works unless you scramble the details.
    I've just started rewriting an app using .NET 2.0 - already I'm ploughing through P/Invokes as .NET doesn't support the MIDI API as yet.

    My UI is very simply but I can see its sluggish (GDI+).


  • User profile image
    Kevin Daly

    imekon wrote:
    • Applications built with it have a large footprint - 20MBytes. Compared to WIN32 apps this can appear as bloat.



    That's simply and completely untrue, unless you include the .NET runtime itself (which would be highly misleading).
    In my experience .NET applications tend to be markedly smaller than equivalent native code, and the main reason is their ability to tap into a fully-featured runtime.
    I've written an online booking system for my current employers which including code, stylesheets and markup barely exceeds 1mb.
    I've written many desktop applications that don't even crack 100K.


    imekon wrote:

    • It has a lot of nice classes, but it doesn't cover everything, yet. Some things are still WIN32 and require P/Invoke.
    • It's graphics rely on GDI+ which at the moment is slow compared to GDI.


    1) Does the fact that you need to P/Invoke native code for some things make it a better idea to use native code (for example) for everything? That wouldn't seem logical.
    2) GDI+ may be slow compared with GDI (personally I would've said its biggest annoyance was the lack of XOR), but often you only need something to be fast enough, not necessarily fastest.
    If you're writing games then you probably want to stick with unmanaged C++ and you should be using DirectX anyway.
    For anything else, if GDI+ bothers you (or just because you should), check out WPF: it's the future, and it's gorgeous beyond belief.

  • User profile image
    Yggdrasil

    Shining Arcanine wrote:
    Right now, I am more of an end user than a programmer as the lowest level programming language I know is PHP (with MySQL as a backend), but my personal opinion of the .NET framework is that it is bloated. There is a ton of stuff in it that is either not necessary or not fully optimized for a single application and when the goal of your application is to execute as fast as possible, the .NET framework becomes a hinderance.


    I'm sorry for the harsh tone, but your paragraph here can be paraphrased as "I don't really know what I'm talking about, but I know it's bad". You throw around terms like "bloat" and "not fully optimized" without justifying them. Benchmarks have shown that managed code is slower than unmanaged in some cases, equivalent in others and superior in others - and even then, most unmanaged C++ code is not exactly the uber-optimized code that beats the managed versions.

    You're talking about a specific niche software where managed code might not be appropriate (it might be as good as C++, I don't know) and for some reason extrapolate that to assume that most applications will suffer memory and performance penalties. Again, this is not only unbased but goes against various established facts.

  • User profile image
    Lee_Dale

    lol doesn't bootstrapping take out the choice? I mean every app needs to install some kind of framework or library. Cor blimey people do half moan.

  • User profile image
    pathfinder

    Shining Arcanine wrote:
    
    ...unless they debut a low cost OS for high performance computing applications, their operating systems will be ideally suited to a good amount of the computer science portion of my profession, although I expect my primary computer to still run Windows.


    Have you looked into developing on the CE 6.0 platform? 

    I am waiting for the Chumby to be released and I plan on trying to get CE 6.0 on it.  Now that would be a role reversal.  Hacking an Open Source Linux native product to install a Shared Source Microsoft product.  Times are changing. 

  • User profile image
    brian.​shapiro

    jsampsonPC wrote:
    Non-developers are probably ignorant of its power. That's all I can think of. And then again, there are people like my wife who think that if there are more than 10 shortcuts on your desktop, your "computer is cluttered and runs really really slow."

    If I weren't a developer, and I had some 40+ mb download on my pc, I'd delete that sucker in a heartbeat. Afterall, history tells us that all programs run independently. They don't "share" a framework with other programs.

    But the world is changing, and some people are either ignorant of change, or scared of it.


    If there are more than 10 shortcuts on your desktop, your desktop is cluttered and you have no taste Smiley

  • User profile image
    nightski

    I work every day on a framework for machine learning built in .NET that was designed to handle millions of data samples with thousands of dimensions.  .NET is just fine perf wise.  The thing is, .NET is like any other platform (i.e. C++).  You will not get optimal performance out of it unless you truly know the platform inside out.  You can write very inefficient C++ code also.  But if you understand how everything works you can write code in .NET that equals or is dang near close C++.  Also since allocations are faster in .NET you can use this feature to your advantage when dealing with large data sets.

    Garbage Collection, JIT, etc... are all very powerful features.  For most people they just work fine.  But if you want to get solid performance in .NET you need to understand how & why they work in order to get the most out of them.  In knowing this it is possible to get very high performance solutions from .NET while retaining the very rich programming model.  Especially with the functional features they are introducing in C# 3.0, and the F#/IronPython implementations Smiley

    Not to mention Managed C++ and how great that is.

    I wouldn't look at interop/PInvoke as a hinderance to the platform but rather a benefit.  C# IJW makes interop fairly trivial and really opens up the platform.

  • User profile image
    figuerres

    Shining Arcanine wrote:
    
    conkerjoe wrote: I read a post which complained about having to download and install the .net framework to run the app. And it made me realise i have seen this so many times without thinking too much of it.
    Would using the .net framework really deter you from using the application.
    Why do some people dislike having to install the.net framework. if they had Automatic updates switched on they wouldnt have a choice.
    What is it that makes the .net framework such a bad investment for your machine ?



    Right now, I am more of an end user than a programmer as the lowest level programming language I know is PHP (with MySQL as a backend), but my personal opinion of the .NET framework is that it is bloated. There is a ton of stuff in it that is either not necessary or not fully optimized for a single application and when the goal of your application is to execute as fast as possible, the .NET framework becomes a hinderance.

    In high school, I tried to learn C++ and C# on my own (first C# because of its similarity to PHP and then C++ when I realized that C# was not what I wanted) and I got stuck on OOP. When I am older, I plan to write computer programs to simulate interactions between various molecular species, so my opinion of the .NET framework is a result of the efficiency that applications in my desired field require more than it is a result of an application framework consuming several dozen megabytes of space, although seeing an application framework consuming several dozen megabytes of space hurts, especially when I know that if every application used it, my system would be less efficient in terms of overall speed of execution than it is now because Windows XP does not utilize idle memory in buffers. I would expect Windows Vista to see a net gain in performance from having every program designed around .NET, unlike Windows XP, because of its memory buffers, although I would expect single application performance to suffer somewhat because of the overhead imposed by such a configuration.

    I am now in college and my college classes are not quite yet at OOP (I am taking Discrete Mathematics) but hopefully I will learn OOP in the next few years. Perhaps I will gain a greater appreciation for .NET but I doubt it, especially since I will most likely be writing applications for Linux because of its low overhead and thus excellent suitability for high performance computing applications. I like Microsoft but unless they debut a low cost OS for high performance computing applications, their operating systems will be ideally suited to a good amount of the computer science portion of my profession, although I expect my primary computer to still run Windows.



    Well if you take a better loom you might re-think this....

    1) .Net was built to be a kind of "Middle Ground" between the old windows api's and the classic C/C++ wolrd and new modern apps that use OO design and arch. .Net is a general framework that covers about 95% of what the WIndows OS and classic programming cover. so yes it's "Big" but that does not mean it's "Bloated"

    2) size and speed and "Overhead" a properly designed .net app will in 90% of all cases perform to within 5% of a "Native" app.
    that means that there is an area where .net is not the right tool and you can code that part with C++ or any other way you pick.


    GC is not a hog, apps that suffer GC problems are generaly found to be in one of two cases: 10% that is not for .net or poorly written.


    if a programer takes a stance that .net is bad and will not work then they will tend to fail -- self fufilling prohpecy thing.

    I have used a lot of systems / OS's and such...
    is .Net perfect?
    No
    is .Net able to handle 90% or more of the real world progamming problems we have to work on?
    Yes
    if you use .net are you locked into it?
    No

    so use .net for most of the app and when you get to the corner-cases drop out to C++

  • User profile image
    Ion Todirel

    brian.shapiro wrote:
    
    jsampsonPC wrote: Non-developers are probably ignorant of its power. That's all I can think of. And then again, there are people like my wife who think that if there are more than 10 shortcuts on your desktop, your "computer is cluttered and runs really really slow."

    If I weren't a developer, and I had some 40+ mb download on my pc, I'd delete that sucker in a heartbeat. Afterall, history tells us that all programs run independently. They don't "share" a framework with other programs.

    But the world is changing, and some people are either ignorant of change, or scared of it.


    If there are more than 10 shortcuts on your desktop, your desktop is cluttered and you have no taste
    <cough/><cough/>

  • User profile image
    Shining Arcanine

    Yggdrasil wrote:
    
    Shining Arcanine wrote:Right now, I am more of an end user than a programmer as the lowest level programming language I know is PHP (with MySQL as a backend), but my personal opinion of the .NET framework is that it is bloated. There is a ton of stuff in it that is either not necessary or not fully optimized for a single application and when the goal of your application is to execute as fast as possible, the .NET framework becomes a hinderance.


    I'm sorry for the harsh tone, but your paragraph here can be paraphrased as "I don't really know what I'm talking about, but I know it's bad". You throw around terms like "bloat" and "not fully optimized" without justifying them. Benchmarks have shown that managed code is slower than unmanaged in some cases, equivalent in others and superior in others - and even then, most unmanaged C++ code is not exactly the uber-optimized code that beats the managed versions.

    You're talking about a specific niche software where managed code might not be appropriate (it might be as good as C++, I don't know) and for some reason extrapolate that to assume that most applications will suffer memory and performance penalties. Again, this is not only unbased but goes against various established facts.


    I know enough to have a conversation, and I know that code with hand written assembly code in the right places is superior to compiled machine code, regardless of how good the compiler is. Here is an excellent example:

    http://www.nytimes.com/2005/11/28/technology/28super.html?ex=1290834000&en=56ba2985b1862e99&ei=5088&partner=rssnyt&emc=rss

    Any application that is not masterfully written in assembly language utilizing the shortest order algorithms that could possibly exist is always bloated on some level and an application utilizing a general framework will always be slower than one that has application optimized versions of the components of the framework it uses integrated into it, even if the performance difference is less than 10% or even less than 0.1%, as using a general framework is a trade-off between performance and generality.

    As far as the programs that you write are concerned, the difference in performance between writing an application that relies on a general framework and writing an application designed to execute as quickly as possible is too miniscule to matter to you, but as far as the programs that I want to write are concerned, every bit of performance that I can get from a processor counts.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.