The C++ FQA is on GitHub

I have become burned out in my role as guardian of the vitriol, chief hate-monger… and most exalted screaming maniac.

– Alan Bowden, then the moderator of the UNIX-HATERS mailing list

The C++ FQA's "source code" (that is, the ad-hoc markup together with the ugly code converting it to HTML) is now on GitHub.

I decided to write the FQA around 2006. I felt that I should hurry, because I'd soon stop caring enough to spend time on it, or even to keep enough of it all in my head to keep the writing technically correct.

And indeed, over the years I did mostly stop caring. Especially since I managed to greatly reduce my exposure to C++. The downside, if you can call it that, is that, in all likelihood, I'll forever know much less about C++11 than I knew about C++98. I mean, I can use auto and those crazy lambdas and stuff, but I don't feel that understand all this horror well enough to write about it.

So I invite better informed people to do it. I was looking for a single person to take over it for a while. The trouble is, most people disliking C++ choose to spend less time on it, just like me. And since writing about C++'s flaws is one way of spending time on it, people who want to do it, almost by definition, don't really want to do it. Bummer!

However, doing a little bit of editing here and there might be fun, it wouldn't take too much of your time, and you'd be creating a valuable and scarce public good in an environment where naive people are flooded with bullshit claims of C++11 being "as fast as C and as readable as Python" or some such.

I don't think my original tone has to be preserved. My model at the time was the UNIX-HATERS style, and in hindsight, I think maybe it'd actually turn out more engaging and colorful if I didn't write everything in the same "I hate it with the fire of a thousand suns" tone.

Also, and I think this too was needlessly aped from UNIX-HATERS – I keep insisting on this good-for-nothing language being literally good for nothing, and while I don't outright lie to make that point, I'm "editorializing", a.k.a being a weasel, and why do that? I mean, it's a perfectly sensible choice for many programmers to learn C++, and it's equally sensible to use it for new projects for a variety of reasons. Do I want to see the day where say Rust scrubs C++ out of the niches it currently occupies most comfortably? Sure. But being a weasel won't help us get there, and for whomever C++ is the best choice right now, persuading them that it isn't on general grounds can be a disservice. So the "good for nothing" attitude might be best scrapped as well, perhaps.

On the other hand, there was one good thing that I failed to copy from UNIX-HATERS - how it was a collaboration of like-minded haters of this ultimately obscure technical thing, where human warmth got intermixed with the heat of shared hatred. Maybe it works out more like that this time around.

Anyway, my silly markup syntax is documented in the readme file, I hope it's not too ugly, and I'm open to suggestions regarding this thing, we could make it more civilized if it helps. In terms of priorities, I think the first thing to do right now is to update the existing answers to C++11/14, and update the generated HTML to the new FAQ structure at; then we could write new entries.

You can talk to me on GitHub or email




#1 Netanel Hecht on 09.17.15 at 10:01 am

Have you considered converting it to Wiki syntax and uploading it to a free Wiki site?

#2 Yossi Kreinin on 09.17.15 at 11:01 am

Having its own markup sorta helps with things like linking to the FAQ and interlinking between questions. Wiki markup could do it of course and would be better than raw HTML which could also do it, but it'd be more verbose. If you look at the .fqa files you'll see the advantages I think.

That said, if a few people who want to edit it ask for it, I guess I'll do it. There's some work involved so I'd hope to see some edits from them first… Because it's not obvious that the markup is what will make someone take the plunge.

Also, with pull requests and forks I kinda understand better how to manage contributions than with wikis (where AFAIK you either grant permissions to pages, blocking other edits, or you let people just change the main version and need to actively roll back the changes if you so desire; maybe it's better than that, I'm just not very familiar with it.)

#3 Netanel Hecht on 09.17.15 at 11:44 am

OK, I see your point. Thanks.

#4 Robbie I on 09.17.15 at 10:13 pm

Hey Yossi,

I basically never comment on the internet since it seems a rather futile endeavor, but I wanted to let you know that I've frequently (ha) pointed folks to the FQA as the 'grain of salt' to take when learning C++… I always thought the vitriol was manageable and even mostly insightful :). C++ is what it is, and I always thought that the FQA was an effective way to balance the textbooks and fan-people.

Thanks for all the hard curation work you've done for this! I hope it gains new life on github :)


#5 Yossi Kreinin on 09.19.15 at 12:25 pm

Thanks for your comment, and I sure hope so as well :-)

#6 angry hamster on 09.23.15 at 6:58 pm

i wonder, Yossi, why have your posts become so rare? :( isn't it cruel?)

#7 Yossi Kreinin on 09.23.15 at 8:13 pm

Well, angry hamster, the truth is that my time is occupied by my animation studies as well as work, leaving little time for blogging. I hope, however, to rectify the situation soon, at least to some extent. I also think that for a semi-defunct weblog, mine is certainly less cruel to its readers than that of, say, Spolsky's or Yegge's!

And thanks a lot for letting me know you like it.

#8 angry hamster on 09.25.15 at 7:13 pm

cool! thanks. i'll be waiting for your posts.
as for Yegge's blog – it contains perl (i have a perl allergy)
and Spolsky's blog is also cruel :)

#9 Yuriy Zhilovets on 01.24.16 at 2:47 pm

I have never programmed in C++ because I disliked it just during reading a textbook. But I have re-read your C++ FQA four or five times to enjoy your colorful style. Now I know a lot of deficiences in the C++ — enough to discuss it with my colleagues.
Please let me thank you for all pleasant and useful time that I spent reading your nice work.

#10 Yossi Kreinin on 01.24.16 at 3:05 pm

You're welcome :-)

Leave a Comment