Originally posted by: EricMartello
Originally posted by: degibson
However, C/C++ are lacking in programmer productivity compared to McProgrammer languages. Until recently, software folks haven't had to worry much about performance in a lot of domains -- there's a good chance those days are coming to an end for a lot of people thanks to the multicore revolution, but there will probably always be code that simply isn't performance critical.
One 'problem' that often causes animosity is that it often takes ~a third of the time to implement feature_x in McProgrammer than in C++, and if feature_x isn't performance critical, then C++ junkies like myself look rather foolish for wanting to use C++.
That is the way of thinking that leads to sloppy, inefficient coding. The mentality that just because we have abundant system resources, we don't need to worry about optimizing the code...just to whatever works and get it done asap. I have a feeling a lot of small applications start out this way, but as they grow the fundamental "laziness" begins to result in code-bloat, which in turn leads to a slow, buggy application that hogs resources unnecessarily.
I'm not an old timer and I think McProgrammer languages have their place. Yes they are easier to use - that is how they were designed, but this ease of use comes at a cost. Let me use a real-world example:
Utorrent
A highly optimized bit torrent client written in C++. Total file size is around 270 KB. This program uses very little memory, executes quickly and runs with high stability. Despite its small size, it doesn't give up anything in terms of functionality or ease of use. It is a great example of why learning to code efficiently by not having to rely on "frameworks" or bloated code pools & libraries. The same application in .NET or VB would be over a megabyte in size, since the program would need to link to and include all sorts of junk (the stuff that the developer never had to know about), would rely on DLLs or MFC and stuff like that. Sure, those things make building an application easier but they're not making applications
better.
The counterpart to Utorrent would be Azureus, a bit torrent client written in Java. By comparison, the program executes slowly, is very bloated, crashes frequently and does not do anything better than utorrent.
I can't argue that apps developed in C or C++ require a smarter individual and will take longer, but the speed and efficiency of the resulting application could easily make up for the increased dev time. Funny thing is that MS is pushing its .NET crap yet they won't dare code any of their "killer apps" in .NET. What language do you think they used for IE? Is MS Office done in VB or C#? I think not.
I am not an old timer, nor am I a snob. I am simply an individual who respects programmers that know their craft and take the time to write optimized code with little or no reliance on bloated, overhead-inducing frameworks and shared libraries...and I think everyone who is WILLING and ABLE to learn C or C++ should.