Frequently Questionable Answers

http://yosefk.com/c++fqa/

I'm personally not a huge fan of that FQA list as a whole, and while it makes one or two good points... eh...

-Albatross

FQE: 900 posts, and counting.
I think it's pretty neat.
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.
If you ignore the "I take it in the ass from Java" stuff (you have to try pretty hard because it's everywhere. In some parts it's just harder to see than in others, but trust me, it's there), some -- and by "some" I mean "two or three" -- of his points are true. C++ is a very complex language, it has the longest compile time of all languages (except maybe some esoteric language I'm not aware of), it provides exactly zero ABI, and... I can't remember at the moment but I think there was more.

About the "metafeatures" part, the same reasoning could be applied to C. C doesn't give you vectors, it gives you buffers and structs, from which you can implement your own vectors, generic or otherwise, if you want to. Templates don't go one level of abstraction up, they just get rid of the generic pointers. You can still write your own vectors with the same level of genericity, but now they'll at least be type-safe.
And who wants garbage collection, anyway? If you aren't willing to manage your damn memory, you shouldn't be writing in C/++, which brings me back to the "I take it in the ass from Java" part.
Last edited on
Some of his statements:

My summaries had to be biased no matter what I did, so I made the bias fairly explicit.


The opinions in the FQA are my own, and are not supposed to represent the opinions of anybody else.


C++ SUCKS


read it here http://yosefk.com/c++fqa/disclaimers.html


[edit]
I agree with Disch, I won't read more either. For me that is a complete crap, I feel sorry for him wasting his time doing garbage.
Last edited on
helios wrote:
which brings me back to the "I take it in the ass from Java" part.


I am still laughin xD...

Disch wrote:
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.


Agree.

Some of the FAQ he presents seem to be made after he finished his cute little FQAs; so he got some imaginary enemy to shoot at...
Topic archived. No new replies allowed.