• 1 Post
  • 32 Comments
Joined 1 year ago
cake
Cake day: September 24th, 2023

help-circle



  • You missed the point. He understands all these things you tried to explain. The point is that your definition of the word “concurrency” is objectively wrong.

    You:

    you seem to be doing multiple things at the same time. In reality they are run little by little one after another

    The actual meaning of the word “concurrency”:

    The property or an instance of being concurrent; something that happens at the same time as something else.

    Wiktionary actually even disagrees with your pedantic definition even in computing!

    (computer science, by extension) A property of systems where several processes execute at the same time.

    I suspect that concurrency and parallelism were actually used interchangeably until multicore became common, and then someone noticed the distinction (which is usually irrelevant) and said “aha! I’m going to decide that the words have this precise meaning” and nerds love pedantic "ackshewally"s so it became popular.









  • Its definitely best to try and avoid raw pointers, but even if you try really hard I found it’s not really possible to get a Rust-like experience with no UB.

    Even something as simple as std::optional - you can easily forget to check it has a value and then boom, UB.

    The C++ committee still have the attitude that programmers are capable of avoiding UB if they simply document it, and therefore they can omit all sanity checks. std::optional could easily have thrown an exception rather than UB but they think programmers are perfect and will never make that mistake. There are similar wild decisions with more recent features like coroutines.

    They somehow haven’t even learnt the very old lesson “safe by default”.

    If I wanted memory unsafety I think I would consider Zig instead of C++ at this point.