Hello, in continuing to chronicle matters regarding the emotional reaction to Rust happening on the C++ committee, I'd like to direct you all to the following paper/presentation (in PDF form) by Bjarne Stroustrup, P2816
In this paper, he points out a few parts (mostly in RED) text. This "paper" has a moment to show that "C++ won the TIOBE programming language of the year award", which if you're actually even slightly aware is very much like saying "Police officers keep saying crime is on the rise!"
It isn't an accurate measurement. He can say that C++ is "on the rise" or "still gaining ground", but this doesn't mean anything. In general, the US government has started to take away contracts from C++ shops and push them towards Rust based ones.
Now frankly, I don't give a shit what the US Government is saying. I'm more worried about whether my friends are able to buy food and pay their electricity and gas bills as prices rise and the cold increases in historically temperate and warm climates. But Bjarne is coming off as (to quote someone from a discord I'm in) a jilted lover. He likes to put the Mars lander on his slides. Because it's running C++. Now that NASA is moving away he's most likely taking this personally.
He's still unable to say that C++ must have opt-out safety instead of opt-in. People have had the opportunity to opt-in to tooling and the like for literally decades and most never do. At one point, his red text begs the question?
How clever should an analyzer required to be?
To which, another commenter from the same previously mentioned discord stated "how do you measure progress towards solving the halting problem?"
But things get more droll and basic from there. At one point, he states the most obvious thing about static analysis I've ever read:
Static analysis must involve flow analysis
Bjarne what fucking drugs are you on my guy? WHAT OTHER KINDS ARE THERE???.
The rest of the paper is just the most obvious shit ever. "Dangling pointers", "aliasing bad", "just follow my general guidelines that can't and won't be enforced by the standard because the committee had an argument over whether it was a good idea to 0 initialize all variables by default". He even expresses in comments things that the Rust compiler is able to actually prevent, like ownership loops. π
At the end of the paper, he actually does go on to say that "C++ is too complex to statically analyze because of the halting problem".
I don't get it. Bjarne has the entire US Government saying "you need to do X if you want us to keep using C++", and his entire response is "no, we just need to do this other thing instead, because we can't get compiler vendors to agree on something"
Bjarne, you're not gonna win this. C++ will go from this "mighty tool" you've constructed to a footnote in history, relegated to the same arena as COBOL and PL/1. It won't be while you are alive. It might not be until I myself am on my deathbed. I know it's going to happen because I see people talk about Rust the way they talked about C++ when I was in elementary school in the late 90s and early 00s. It's the same insults. The same "cult" claims, the bizarre finger pointing that "it's socialism! RAAAH". The same FUD I've seen time and time again as something gets big and threatens someone's safety net.
This big change for memory safety is worth doing, but you keep shying away from it. The C++ committee, and even you, lack the conviction to do the right thing. If you had it, you would have done it by now. You would have taken it seriously. Gabby Dos Reis wouldn't have laughed as he said something along the lines of "I should start polishing my resume then" at Kona 2019 when someone mentioned "Oh Microsoft is starting to adopt Rust".
All this talk of safety profiles, opt-in static analyzers, core guidelines, the GSL, etc. is nothing but a stop gap. A small hand crafted ditch behind a levy, as the tide of change washes over you, and wipes out this village that you've put so much effort into.
Something as important as the future of your language means you need to do the right thing, or else it's honestly not worth doing at all.

