C++ is indeed a meta-language, i.e., many different styles are possible: some write C code with the STL, some write truly oriented object code with polymorphism and so on, some write STL-like code with iterators everywhere and function objects, some write generic code (the templates), etc. Many C++ programmers ignore parts of the language (say, no template, no function objects, no malloc/free) to get a code that is, arguably, easier to understand. Bjarne Stroustrup (the creator of C++) argue in the opposite way: that combining the different paradigms leads to a more concise and powerful code.

Talking about languages with many different styles, I forgot about Perl that would be between Python and AWK. It is however much slower than both of them, the grammar of the language is (even theoretically) more complicated than that of any popular language and the so many ways to write one thing in Perl really is problematic, I believe. The authors of the language would obviously disagree: they see that as letting the programmer express her creativity.

I did not talk about Shell scripting but I do that a lot when the problem to solve is small, involves files, or text inputs (but without the need for AWK's power), etc. However the Shell by itself is ugly, slow and an horror to debug. That is why I now see Shell scripts of hundreds of lines as an abomination. For really small problems, Shell scripting is fun. It is like a puzzle: how to chain with pipes extremely efficient but specific commands (for text processing: head, tail, cat, tr, wc, cut, paste, comm, join, sort, uniq, grep, etc.) to get the correct output?

Reply via email to