Tech Off Thread

21 posts

Forum Read Only

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

.Net vs. C++ :: Cast your vote!

Back to Forum: Tech Off
  • User profile image
    Cryption

    There seems to be alot chatter on channel 9 comparing .Net to C++, so I think it deserves its own thread.

    The questions are:

    1) Does coding in C++ take more intelligence than programming in .Net?

    2) Do the additional tools of .Net (lack of garbage collection, easy to use high-level libraries, extremely easy GUI creation) make for less capable, lazier programmers? Or just speed up an unnecessarily slow coding environment?

    -- Cast your vote for C++ or .Net --

  • User profile image
    Tensor

    1) No - a bad coder is a bad coder whatever the language - and vice versa.

    2) It makes it easier to develop certain classes of application.

  • User profile image
    Sven Groot

    Cryption wrote:
    There seems to be alot chatter on channel 9 comparing .Net to C++

    Well, 90% of that chatter is generated by just one poster, so I doubt it's representative. Smiley

    I'm going to vote for neither. I started life as a BASIC programmer (GW-BASIC originally, then QuickBASIC then VB), moved on to learn C++, became an expert in it, and in using it on the Windows platform (Win32 API and COM mostly, I never cared much for MFC). I own the C++ standard (available for $18 from ANSI), and know a lot about the ins and outs of developing with it. Then .Net came out and I became an expert in that too.

    In my mind there is no ".Net vs. C++". In my mind, there are two tools, with different purposes and different approaches, but both equally valid. Use whatever makes sense for any given problem.

  • User profile image
    Minh

    Cryption wrote:

    The questions are:

    1) Does coding in C++ take more intelligence than programming in .Net?

    2) Do the additional tools of .Net (lack of garbage collection, easy to use high-level libraries, extremely easy GUI creation) make for less capable, lazier programmers? Or just speed up an unnecessarily slow coding environment?
    I think these are the wrong questions to ask -- because you don't have to pick one over the other. The fact is .Net lowers the cost of entry for beginners and makes experienced devs code better. I was just reading Scott Hanselman latest Coding4Fun article Is that you? Writing Better Software for Cool USB Hardware and wondered how much harder this would've been in C++.

    LS is probably a pretty good C++ dev, and she spent major investment in that skill. It's probably why she's so ticked off that .Net makes all that so easy.


  • User profile image
    koorb

    Sorry Cryption, but I don't think that was an intelligent question. What you should look into when contrasting two languages is the different programming philosophies behind the syntax and the types of people and applications that the languages are used to code with.

    C++ is an older language and more down to the metal, that is both a pro and a con.

    Both languages can be coded using the Visual Studio IDE. Although the reference material for both languages is wildly different with C++ having more available, there is more that a programmer needs to be aware of when coding with C++ because it is not a strong type language.

    At the end of it all after everybody has spent years arguing about the different languages. And no-matter what the conclusions of the arguments are, most programmers will use the language that feels most comfortable to them, and THAT is the real strength of .Net, because it supports over 25 languages including classics like Haskell. And I know that by programming in .Net the programmes I write now will work for many OS revisions to come with possibly no alterations.

  • User profile image
    deadmonkey

    My opinion...


    1) A good C# coder should make a good C++ coder providing they follow the rules (which a "good" coder should!). The language are pretty similar and it isn't that hard to jump between the two.

    2) Managed code makes for faster development. I don't believe it makes for "better" applications as a good developer should know what they are doing. It may make for better early version applications as some bugs like memory leaks take a little bit longer to find (and can be horrible to fix).

    Overall I find C# and the whole .NET platform to be excellent to develop in, much nicer than C++ however C++ does have its uses still.

  • User profile image
    W3bbo

    deadmonkey wrote:
    1) A good C# coder should make a good C++ coder providing they follow the rules (which a "good" coder should!). The language are pretty similar and it isn't that hard to jump between the two.


    Saying that C++ and C# are similar is like saying the Titanic is similar to Bob's Ferry down at the local fishing port.

    The only real similarities are the basic OOP and C-Style syntax. C# is more comparable to Java than C++.

  • User profile image
    dotnetjunkie

    1) No, the intelligence lies in creating an innovative, great product, in the application's logic, in attaining the desired end result as easy and quickly as possible.

    2) .NET saves us writing the boring, trivial code, so we can focus more on the actual features and user experience!

  • User profile image
    androidi

    Cryption wrote:

    1) Does coding in C++ take more intelligence than programming in .Net?

    2) Do the additional tools of .Net (lack of garbage collection, easy to use high-level libraries, extremely easy GUI creation) make for less capable, lazier programmers? Or just speed up an unnecessarily slow coding environment?


    0) Does any of the above make any sense?

    No. But does make for trolling out some discussion...

    1) I take you mean comparing native and managed development, not languages. Given that, have you thought of that doing C++ in .NET actually demands one to learn more and possibly understand interop perf implications between native and managed worlds even in those cases where you are entirely managed in your project?

    2) I think it pretty much depends on what kind of developer you are. Some may choose to use whatever time they gain using .NET to make the product better than what they could have done in other environment. Or possibly even to allow the product to be done in the first place.

  • User profile image
    Maurits

    A programming language is only as good as its library.  If you're coding something that has a good .NET library already, it makes sense to reuse that.  If you're coding something that needs to use heavy pointer arithmetic, it makes sense to use C++.

    So basically, "it depends."  Language wars aside, programmers more often than not have the language of a project at least partially dictated by external considerations.

  • User profile image
    Xaero_​Vincent

    I think people who write managed code with managed extentions C++ are a little more seasoned than some who write primarly in VB, C#, or J#. Based on managed C++ code samples, you can tell it's more uglier and more error prone to develop .NET applications with.

    Anyway... how about:

    J2SE v6.0 or J2EE v5.0 vs .NET v2.0

    Java vs .NET... the classic debate. Wink

    heh.

  • User profile image
    Tom Servo

    How about C++/CLI? Oh geez, I nailed your nuts onto the table now, didn't I?

  • User profile image
    lorad

    1. Not directly, but there is one test for programmers to determine if they should/could program in C/C++. Do they understand pointers? Some people just don't get it, that does not make them more intelligent or better programmers.

    2. It allows for lazier programming, but does not make good programmers lazy......

    I have met a number of very sharp people that just did not grasp pointers. I have also met people that grasp pointers but still should not be programmers since they can't follow directions.

    I can code quicker using C# than C++ because I don't have to worry about which library I will be using to do smart pointers etc. (Believe it or not, but not all shops use STL)

  • User profile image
    jptak

    Here's my 2 cents worth.

    1) No. Different tool, that's all. Anyone confronted with learning .NET for the 1st time is overwhelmed by the amount of info one has to learn. Same deal with C++.

    2) .NET has lack of garbage collection? Since when? WHat is the GC class for? Any tool that makes me more productive is a good thing. If I can bang an app out in 1/2 the time using .NET vs C++, then I am going with C++, unless there is some performance gain that I could expect from C++.

    Bottom line is that one needs to use the right tool for the job. As someone else commented, its not a .NET vs C++ as much as its choosing the correct tool for the job.

  • User profile image
    Nate​Furtwangler

    There's no reason to vote for one or the other, atleast without a context.

    As far as .NET making less capable, lazier programmers, I think thats not true at all.  A programming language should not determine the characteristics of a programmer, it's just a tool.  Perhaps you could argue that .NET allows lazier, less capable programmers to write (bad) software easier, but it has no affect on good or even decent programmers.

    C++ is the language of choice for all CSE classes at my school (Michigan State University) so I get lots of exposure to that.  Thats the main reason I choose to do projects on my own in .NET, giving me exposure and experience to both C++ (from school) and .NET (on my own).  I think both have a place in software engineering.

    Besides, techinically you can program in C++ under .NET so the question doesn't even make sense.

  • User profile image
    nightski

    Why would I give out my speedy development secrets to you!?!?!? Smiley

    All kidding aside, if I am given a choice it will be .NET.  Unless I am writing drivers, or extreme performance bound software (and I mean hard real time stuff), it will be .NET.

    Does that mean one is better than the other? No.  I don't play those games.

  • User profile image
    brussell

    NateFurtwangler wrote:

    Besides, techinically you can program in C++ under .NET so the question doesn't even make sense.


    That's why I don't get that this question keeps coming up.
    .NET isn't a langauge so you can't compare C++ to it.
    There are multiple langauges that work in .NET (VB, C#, C++, etc).

  • User profile image
    WillemM

    Cryption wrote:
    ]
    1) Does coding in C++ take more intelligence than programming in .Net?


    No, it's not the code itself that's hard, but the idea behind the code. The architecture of the software. If you don't get that right, the code will be quite useless.

    Cryption wrote:
    ]
    2) Do the additional tools of .Net (lack of garbage collection, easy to use high-level libraries, extremely easy GUI creation) make for less capable, lazier programmers? Or just speed up an unnecessarily slow coding environment?


    No, garbage collection, easy to use class libraries and all that stuff enables me to make even more complex programs then I would be able to make just by using MFC and C++.

Conversation locked

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