7 comments

  • kikoreis 7 minutes ago
    Just stopped by to say Sutter is not only right to be reiterating Bjarne's position here, he is also the author of IMO the most impactful paper regarding the progress of hardware performance and the shift to concurrent execution: https://www.cs.utexas.edu/~lin/cs380p/Free_Lunch.pdf
  • pornel 3 minutes ago
    Stroustrup's list of objections sounds quite sensible to me: https://www.stroustrup.com/Contracts_fundamental_flaws.pdf
  • StellarScience 9 minutes ago
    This is a well-written and quite diplomatic summary by Herb Sutter. I'm not plugged in enough to be sure he's correct that Stroustrup's opposition was the main reason the C++26 vote failed where others have passed, but it sounds plausible.

    It also lists 6 possible paths forward for C++26 with pros and cons. I think they are roughly:

    A. Skip an official C++26 standard but roll these features into C++29.

    B. Remove contracts from C++26 and pass it.

    C. Say "please" and vote again.

    D. Tweak contracts regarding virtual functions and vote again.

    E. Pass C++26 as many different countries' national standards rather than an international standard.

    F. Do E and also consider leaving ISO and moving to ANSI/INCITS instead.

  • Routine8502 29 minutes ago
    As someone who spent a few weeks trying to get into C++ (pre-LLM, so maybe it's better now?) and kind of just gave up out of confusion, I really found it challenging to deal with the multiple different ways to do something. I mean, which pointer should I use? How should I iterate? I'm sure there's an answer to this, but I just found it easier to go back to python and hit up rust when I needed it.

    It seems like part of the concern is that the feature needs to be shipped right the first time because it'll live forever. Perhaps allowing features to be deprecated and then removed could help?

    But idk, I haven't written anything that lasted 36 years, so maybe the current approach is for the best!

    • rickstanley 0 minutes ago
      I share the same sentiment and experience from trying to get into C++. I bought "A Tour of C++" (2022, Stroustrup), I read it back to back, and I thought to myself "it's not so bad, seems quite nice actually, specially the modules part"... oh boy. After 2 weeks writing a HTTP requests CLI tool I was feeling really demotivated, I gave up and went to rust, for no special reason, I just had it queued up after reading "The Rust Programming Language" book.

      > pre-LLM, so maybe it's better now?

      I came back to the toy tool some time later and used GLM 4.x to implement it further. I had a good experience with it and I understood the code it generated. From my experience, in general, LLM is a good mentor, if you are willing to ingest the content step by step. For me, it is no different from when I used StackOverflow (and other forums) to try and ask how a thing is done.

  • qiqitori 17 minutes ago
    I'm amazed. Someone somewhere conceived of a feature, and it wasn't put into C++!
  • wang_li 32 minutes ago
    “Owners”? No one owns a language. People will do what they find pragmatic, practical and necessary. A committee who thinks they own a programming language has become pretentious and misunderstands their relationship with developers.
    • Arainach 30 minutes ago
      You're arguing semantics. The committee owns the C++ standard and its future. It's not pretentious - not having such a governing body leads to either divergence or stagnation, both of which are usually fatal.
      • rudedogg 11 minutes ago
        > not having such a governing body leads to either divergence or stagnation

        Or you do the BDFL model like Python, D, Zig, Odin, etc.

        I think it works better. A language that reflects the vision of an individual deeply thinking about the interactions of language features, and being able to say "no" to anyone/everyone has many benefits.

        Committees make me think of the Web, C++, Swift, etc., and they have a lot of "odd" decisions that have had a heavy cost. Swift has https://www.swift.org/swift-evolution/, but a lot of ideas with minority support were pushed through by Apple (for SwiftUI mainly), against overwhelming community feedback.

        And the Web has had a lot of "duds" when you think of WebGPU, WASM (not saying it's bad, but people clearly want to stop writing TS/JS and they haven't made that a reality yet, at least in a way I'd call "successful"), etc.. Oh and DRM in the browser sucks. I forget the details but I was goofing around with FreeBSD Desktop and couldn't get various things to work due to some browser DRM bullshit. https://en.wikipedia.org/wiki/Widevine if curious.

        • Arainach 6 minutes ago
          BDFL neither scales nor perseveres. People have multiple things competing for their time and attention. They get old. They probably want to retire eventually. Eventually they die. If you want something to last more than a decade or two, BDFL is a poor choice.
          • rudedogg 1 minute ago
            > BDFL neither scales nor perseveres. People have multiple things competing for their time and attention. They get old. They probably want to retire eventually. Eventually they die. If you want something to last more than a decade or two, BDFL is a poor choice.

            Well I mean you're just wrong, you can look at any of those languages (or https://en.wikipedia.org/wiki/Benevolent_dictator_for_life). Python is over 30 years old and it's going fine. You don't see people ragging on Guido everywhere. But everyone pokes fun at the C++ committee and the wacky shit they cook up.

            Design by committee just sucks.

      • muvlon 7 minutes ago
        No, ISO owns the standard, and they just shot down the committee's proposed draft.
      • wang_li 13 minutes ago
        It’s pretentious to say they own the language. They own their standard. Yet every major compiler implements something else and are all called c++ compilers.
        • Arainach 7 minutes ago
          The standard is the language. Again, you're arguing semantics.
  • deleted_flagged 23 minutes ago
    [flagged]
    • eldenring 20 minutes ago
      imagine you run into ub in your C program. Suddenly every single loc of your project, including dependencies, are in scope.

      With Rust, only the unsafe blocks are in scope. The point of Rust is not to eliminate unsafe code, but to make it not scale with the size of your program. There is no good reason for those to be coupled.