Quote:
|
Originally Posted by ssb
I agree that developing using .NET is a much faster and easier task than playing with C++ pointers and manual memory management. But that comes at a cost. I've ported some of my projects from C++ to C#, but I've noticed a huge performance hit, even with Ngen'ed .NET executables.
CLR as a library is a nice OO framework but I hate the VM/JIT idea. Consider how nice would be if CLR was a statically linked lib similar to MFC and C# a true native compiler able to compile and link true Win32/64 PE executables.
|
Personally I don't see the advantage you thought you would gain by going to the trouble of porting your existing code. Of course the .NET equivalents would be unlikely to match the same performance you had before.
Sure there is an argument to be made that under certain limited circumstances a JIT compiler can make more optimized decisions because it makes them based on information during runtime but overall we know it doesn't really compare to unmanged code at the moment.
Sure go ahead and start your new projects with it. That may add some gain through increased productivity. Port your old code? I just cant see the advantage to that unless you plan on still supporting the code 8-10 years down the line.
Do I personally hate .NET? Hell no. Personally I'm more of a Java/C++ programmer by expertise than a .NET one. However, barring a few niggly bits I don't like about C#, I still tend to prefer it for some jobs.
Try program any business application with it. I bet you I could do it to a much shorter time specification with very acceptable performance that still makes the customer pleased at the same time.
At the end of the day, the old cliche, 'time is money' still holds and the needs of your customer/user are the most important thing. Most of your users are not going to notice that your ListBox loads 100ms slower than an C++ implementation, they just accept it for what it does. However, they are going to notice it when you deliver it in half the time your competitors promised it.
Programming a game or real-time system? Well yes then a different principle applies....
The right tool for the right job is what holds true. As programmer just ensure that your are well versed in a few different languages and continually keep yourself up to date. That is essentially what you are paid for. Anyone can learn 'a language'. Yet not as many of them bother to learn a few more on top of that.
Its not that hard since most of the same paradigms tend to cross over several languages. Heck sometimes I find even a little Python amazingly usefull to whip up something really clever in a really short space of time.
Essentially what I'm saying from all this is that its a bit of a moot argument....it all depends on what you are trying to achieve.