I was recently reminded of why I think it’s a bad idea to teach beginners C++. It’s a bad idea because it is an objective mess–albeit a beautiful, twisted, tragic, wondrous mess. Despite the current state of the community, this post is not a polemic against modern C++. This post is partly a follow-up on Simon Brand’s article, Initialization in C++ is bonkers, and partly a message to every student who’s wanted to begin their education by gazing into the abyss.
Rob Pike, one of the creators of the Go language, stated that he expected the language to be adopted by C++ programmers, a prediction that hasn't been realised. Recently however at the HFT firm where I work, the success of a team's move from Python to Go for some pieces of non-speed-critical infrastructure led to…