While the C++ FAQ Lite tries to make unbiased statements about the C++ language, and talks about the language
without comparing contrasting to other languages, and strives to be informative over opinionated... it seems the FQA Lite is the exact opposite.
In short, it's a "I don't like C++" rant thinly disguised as a factoid article. So basically it's a complete pile of crap.
I read part of it and was thoroughly disgusted at a few points. Enough so to make any of his valid points completely incredible.
In particular, these really irked me (from the Big Picture Issues page):
C++ is different - it's designed for perfection. Where other languages give you a feature, C++ gives you meta-features. Instead of built-in strings and vectors, it gives you templates. Instead of garbage collection, it gives you smart pointers. This way, you can (theoretically) implement your own "perfect" (most efficient and generic) strings. In practice, this turns into a nightmare since many different kinds of strings, smart pointers, etc., each perfect in its own way, will not work with each other. C++ sacrifices usability for perfection. |
That is quite possibly one of the dumbest arguments I've heard.
std::string not being a built in type means the language is striving for perfection? What?
Besides... std::string
may as well be a built in type. It represents a string, it can be used with natural syntax, and is always available in every [standards compliant] C++ implementation.
The only way I can make sense of this crap is if he means that "if std::string doesn't fit the job, you don't have to use it". But that clearly doesn't make sense because:
1) That's true of any language with or without strings as a built in type
2) How is that a negative point anyway?
One thing is always true: where you can use C++, you can use C. In particular, if someone gave you C++ interfaces, a thin layer of wrappers will hide them. Using C instead of C++ has several practical benefits: faster development cycle, reduced complexity, better support by tools such as debuggers, higher portability and interoperability. When C++ is an option, C is probably a better option. |
Funny how I often say the exact opposite.
The C++ standard does not specify what source code is translated to. Unlike code built from Java source, compiled C++ code will usually only run on one hardware/OS configuration. |
Hurp a durp. That's because it's not an interpretted language.
Although I guess he's right. Compiled code will usually only run on one OS configuration. Unlike code built from Java source which will usually only run on
zero OS configurations (it needs additional software to run).
So yeah... he's right in a sense... but he's also twisting the truth into a retarded and irrelevent comparison about two entirely different language designs/goals.
I don't think I read anymore after that.