C++0x makes me want to vomit
I know I've been coding C++ for too long, or perhaps just long enough, because it was only recently that I realized what a horrible language it really is. And I'm pretty sure it was r-value references in C++0x that put me over the edge. That was when I realized that an incredibly complicated language, one that is so utterly fraught with programming perils, was about to get even more complicated.
C++ allows for infinite variation in programming style. The only way to effectively code in C++ is to live by some (often ad hoc) set of rules. Because the language is like a labyrinth. There are so many possible paths, almost all of them leading to certain doom. This is great for authors and "language lords" who love nothing more than to bloviate and pontificate on the most minute details of template meta-programming and parameter passing conventions. But for those of us who use programming languages to get work done, to satisfy real-world requirements of money-making enterprises that contribute to the growth the world economy, this sort of complexity is a productivity killer. We only have to read 10 to 20 books and practice for 2 to 3 years before we acheive mastery of the language. Those of you who have actually acheived that level of mastery know I'm not exaggerating. Those of you who haven't are probably writing code that works most of the time, but fails catastrophically and inexplicably in some small set of cases.
If you go and read about r-value references and move semantics, you'll see what I mean. Is this something you're going to be able to easily design into your next API? The truth is you are best advised not to touch such new features until the very best experts in the field are done figuring out some rational design patterns that make use of them. If you're not in an industry or company that's an early adopter of technology, C++0x won't really affect your development until 2020 anyway.
C++ is still lauded as the best language for writing high performance software. But far too many put an impractical emphasis on performance, and don't spend enough time considering the trade offs. How much time do C++ programmers spend debugging memory leaks, stack corruption, and heap problems (including, ironically, poor performance surrounding memory allocation)?
Contestant: What is the world's biggest douche?

Comments [0]