Yesterday I read an interesting essay named „The Python Paradox„. According to it, you will usually find „smarter“ programmers when searching for expierience with alternative programming languages like perl, lisp or python, rather than for c/c++-programmers. The reason he gives is that most people with this expierience have thought about programming and were learning these other programming languages to find a system best suitable to them.
That is an interesting point. I know a few people who still like C++ best, but already know OCaml, Scheme, Haskell, etc., because they like the philosophy of C++ – getting as much abstraction as possible without major loss of speed. There is nothing wrong with that – even though I dont share this oppinion. But still, they know these non-mainstream languages, and just didnt like them. But most people who say they „like“ C++ are people which are not thinking about programming but rather about performance. The only reason they prefer C++ instead of C is that C is „deprecated“.
Actually, I think a low-level-language like C is a good thing. But it should have a mighty preprocessor. For example, it has a type-system, but it should be possible to access types in the preprocessor, and inspect structs during compilation. And of course the preprocessor should be turing-complete.
Still, I like Common Lisp most.