#7 - "Actually, if I follow this path (it was a bit tongue and cheek)... we'll have the SAME features in 2-3 years, but mine will just run 10x more efficiently."
10x more efficiently? I'm sure some C++ code runs 10x more efficiently than some .NET code, but the same is also true for the reverse. For instance, in C++, you need to manage all your memory by yourself... and I can guaruntee that Microsoft's algorythms for memory management are a lot better than what you'd be willing to write for your application.
Take the typical C++ object with a memory footprint of say, 2k. Create that object 1,000,000. Good. Now I'll do the same in C#... only mine will almost certainly create those million objects in FAR less time than your C++ app. Why? Because .NET's memory management is very advanced, and can allocate that memory a lot more efficiently than you with your mallocs. :-)
"Tell me... what thing is so hard to do from C++... what C# or Java library does something there there is no C library or C++ class system to do? Really, I'd like to know."
Well, it's not really a question of hard versus easy, although I could pretty easily show you 3 lines of .NET code that does the same thing as 100 lines of C++ code, even with the best libraries. Something being "hard" is really an assesment not of the technology, but of the programmer.
The advantage that managed environments give you is that you don't have to worry about the plumbing. Not writing your own plumbing means that you don't have to debug it either. This means that there is less likely to be bugs in your code. (Since there is a lot less code!)
So, not only can I develop applications a LOT faster in C# than I can in C++ (and yes, I know C++ just fine, thanks), but those applications will be less error prone, and consequently, more secure and robust.
Also, there are some things you can't do in C++ (non-.NET C++, of course)... at least, not without many YEARS of development and research. Things like code access security. Could you write your own stack walker / validator, along with a complete evidence system? I suppose. But you'll be fired before you ever even begin your hello world program.
You remind me of those assembly developers who critized C as being too abstract and rough. Anything you can do in C, we can do in assembly, and faster! Well, perhaps... but if that's your argument, you've completely missed the point.
|