Original Post
Just curious, what are the things that make so many people who have been using the language for so long start to hate it? From how far my studies are taking me it seems like c++ has no end, you can do anything with it. Especially with the addition of libraries like boost and the support for multiple paradigms and the now new support for even more programming paradigms (meta programming and functional programming come to mind) I'm not looking for excuses like "I don't like c++ because of things like type> - you need to put a space between the > > or you get a compiler error" because something like that represents lack of knowledge/experience or the fact that you're human and you can make a mistake. But it's caught at compile time and can be easily fixed. I mostly hear about small things like this - ie: syntactical complaints. I've also heard a lot of people say it's because they much prefer managed languages. I'm assuming that most people when they say "managed" they mean "automatic memory management". Now as far as I know you can add a GC to c++ (I remember seeing a non-intrusive garbage collector for c++ available somewhere but can't remember, or maybe I'm mistaken). And there are many facilities available like the smart pointer library in boost. I'm not saying that there's no need for managed languages, of course having a GC out of the box and directly supported by the language makes things much cleaner and simpler... but it's not *that* big a deal is it? (the big a deal as in the process of taking care of memory in c++ using either smart pointers, and/or the GC lib I vaguely mentioned) I've been using c++ for a while now (a solid 5 years at the least), and I still learn new possibilities/idioms/functionalities/techniques/etc that are enabled either directly or indirectly by c++ (I've read that template metaprogramming was a complete fluke for example) And a while back I discovered FC++ (functional c++, which is I think making its way into boost along side that so pretty lambda). But I havent had extensive use of c++ commercially, so that's probably one of the main problems in my lack of knowledge here. And plus, most of the people that I've seen mention hating c++ are industry veterans. The hobby people stay away from c++ (i'm not saying this is the rule) because other languages are easier to start with. It's the veterans reasons for hating c++ that I'm mostly interested in... I suppose I'm asking for c++'s limits (plus a little bit extra). Is it mostly the little "gotchas" that make c++ a PITA or is there something more? Is it simply that c++ is just too big to master, and most people just get fedup of trying? Also, found a sneak peak into c++0x and one of their goals is to make the thing easier for novices (details in that link). And there's mention of threading and a built in GC and they even mention the >> versus > > issue :) Comments?