164. ADSP, C++ and beyond, GCC, Boost.Async, callables and ranges
With Gianluca Delfino, Vladimír Arnošt, Andrew Fodiman, Dmitry Kuzminov, Mikhail Zborovski, Sergey Ishin et al.
Media
Video
Podcast
Powered by RedCircle
ADSP Episode 136
Is CppClub a real thing?
The least subscribed to C++ podcast.
Go subscribe to whatever this is!
Thanks, Conor and Bryce, for mentioning us!
Clang-UML
Remember the days people thought they could build everything in UML diagrams, and have the code essentially be generated or trivially written from there? Fast-forward to 2023, and we’re generating UML diagrams from C++ code because it’s easier.
C++ And Beyond: Discussion
Warning:
TRIGGER WARNING: Extreme C++ negativity.
Introductions:
- KG: "I’m part of the Carbon project"
- NJ: "I used to love C++, now I hate it. I proposed this panel because I like to complain."
- VR: "I’m the young person of the panel."
Discussion:
- VR: Epochs + Modules = C++ evolution
- KH: "We are accumulating crap and adding more crap, and the committee members don’t realise that because they are solving pet projects and saying no to other things." Says we need another programming language.
- NJ: "C++ is fundamentally broken. I don’t think we can solve that. I think the Committee is not willing to solve that, and the reason is we have no common sense or common direction." There is no language that can replace C++, so "this is a dead language for the next 20 years".
- KG: "There are some toxic pockets in our community that are celebrated." Hear hear!
- NJ: "I sell a hell of a lot of books describing the nonsense and bullshit we standardised."
- VR: "I like Rust. I’m sorry if someone feels offended by this statement." Doesn’t see Carbon or Cpp2 as viable paths forward for C++.
- NJ: "C++ will be in top 5 in 10 years, because there is no replacement."
- KH: "C++ has got the wrong mechanism for its future evolution" (meaning the ISO process).
- VR: "Some people in the committee, including Bjarne, are against dialects. How can you convince them that we need dialects?" It’s Epochs again. Also mentions Circle. Changing code meaning per module.
- BAL: There is no sense of common ownership in the committee. People are pushing their own papers. We need people to review and discuss other peoples' papers.
- NJ: "Usually when we vote on something in the Standard, 90% of the people voting have no clue what they are voting on."
- VR: Should we welcome new talent to C++ given how terrible and broken it is, or should we tell them to stay away and use other languages?
- KG: Bjarne’s quote "There are two kinds of languages…"
- VR: "I don’t mean to sound like a Rust evangelist, I like C++, but…" goes on praising Rust. Well…
- KG: "I like learning. And despite your doom and gloom about how broken C++20 is, I’ve been having a lot of fun learning the new stuff, writing the new examples, figuring out how it makes code shorter and more expressive."
- "Quite surreal to hear them talk about such doom and gloom over the future of C++."
- "At least they are being honest. It’s a common perception here that committee driven development in its current form is a fail."
- "C++ is exactly as much committee-driven as users want it to be. The C++ committee are to a large degree volunteers that care enough to actually work on C++ and put a substantial amount of their time and money into that work." – Daniela Engert
My impression of the panel: KG was the most calm and reasonable participant. It’s like men are too emotional for C++.
See also:
Why C++ Today?
Every important piece of software we use today has some C++ in it: maybe it’s all C++, maybe it has some important components in C++, maybe it’s library is natively compiled in C++, maybe it’s compiler/runtime is written in C++,…
C++ is still the King of programming languages. Long live the King!
See also: Sandor Dargo: Why use C++ in 2022
C++ Continues to Surge Up Popular Languages List
New diagnostic messages in GCC14
sam:
GCC 14 is still in development, but it has a wonderful new feature in its static analyzer (
-fanalyzer
).It can now draw beautiful Unicode diagrams showing exactly how you went out-of-bounds.
See https://inbox.sourceware.org/gcc-patches/20230531180630.3127108-1-dmalcolm@redhat.com/ too.
Thank you to the wonderful David Malcolm for implementing this - who also does a tonne of work with mentoring for GCC’s GSoC programme, and working on docs to help new people get into GCC: gcc-newbies-guide.readthedocs.io.
Boost.Async
Composing callables in modern C++
h(x) = f(g(x)) = (f * g)(x)
template <class... Fs>
auto composer(Fs&&... functions)
{
using std::views::transform;
return (transform(functions) | ...);
}
An interview question about branch prediction
See also:
C with classes
When people say C++ is just C with classes.
(Image of a cute cartoon puffer fish labelled C cuddling against a spiky naval mine labelled C++)
Both have spikes, but one is not the same as the other.
RIP Bram Moolenaar
:wq