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

https://youtu.be/mpoqVodkNB0

Podcast

https://redcircle.com/shows/0835997e-47ec-438e-b6ae-0b390966aa7e/ep/89713bd1-3ea8-4554-910e-d8744fb361bc

Powered by RedCircle

ADSP Episode 136

ADSP 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.

YouTube: C++ And Beyond: Discussion - Vittorio Romeo, Kevlin Henney, Nico Josuttis & Kate Gregory - ACCU 2023

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."

Reddit

  • "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?

Victor Ciura

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

Dice

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++

Nick Athanasiou

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

Reddit: Interviewer thinking that if-else is better than ternary operator because of branch prediction

See also:

C with classes

Dare Obasanjo:

When people say C++ is just C with classes.

puffer fish sea mine

(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

The Register

:wq