It's no crime not to like any particular language. (Lord knows I loathe my share of them.)
When you have to invent one falsehood after another to justify your dislike, though, it makes
you look silly, or dishonest. I know of plenty to dislike in C++; they tend to be
inconveniences in features entirely lacking in other languages.
But, for the record... Lexical scoping, we have. Tail recursion? Pass; over twenty-five
years using C and C++, every time I have been tempted to leave a tail recursion in my code,
changing it to explicit looping has turned out to make the code clearer and more maintainable.
(Certainly there are languages that do or would benefit from it, but C and C++ seem not to
need it.) Nested "methods"? Coming, more or less, in C++09. Also coming are mutexes and
atomics, but more important is that they can be built into whatever higher-level apparatus you
The great lesson of C was that anything you can build into a library, you are better off
without in the core language. (For C, particularly, that was I/O. People miss how
revolutionary that was thought, then.) C++09 adds enormous power for library writers, to
enable easier-to-use libraries, which will in turn make the language markedly more competitive
against scripting languages.