41
On "Safe" C++ (izzys.casa)

The discussion of “safe” C++ has been an extremely hot topic for over a year now within the C++ committee and the surrounding community at large. This was mostly brought about as a result of article, after article, after article coming out from various consumer advocacy groups, corporations, and governments showing time and again that C++ and its lack of memory safety is causing an absolute fuckload of problems for people.

And unfortunately, this means that WG21, the C++ committee, has to take action because people are demanding it. Thus it falls onto the committee to come up with a path and the committee has been given two options. Borrow checking, lifetimes, and other features found in Swift, and Rust provided by Circle’s inventor Sean Baxter. Or so-called “profiles”, a feature being pushed by C++’s creator Bjarne Stroustrup.

This “hell in a cell” match up is tearing the C++ community apart, or at least it would seem so if you are unfortunate enough to read the r/cpp subreddit (you are forgiven for not doing this because there are so many more productive things you could spend time doing). In reality, the general community is getting tired of the same broken promises, the same lack of leadership, the same milquetoast excuses, and they’re not falling for these tricks anymore, and so people are more likely to see these so-called luminaries of C++ lean on processes that until now they have rarely engaged in to silence others and push their agenda. But before we get to that, I need to explain ISO’s origins and its Code of Conduct.

top 29 comments
sorted by: hot top controversial new old
[-] calcopiritus@lemmy.world 14 points 2 days ago

And unfortunately, this means that WG21, the C++ committee, has to take action because people are demanding it

Why does this mean that they have to take action? Why do they need to make C++ memory safe?

C++ was not designed to be memory safe. If you try to make C++ memory safe, you'll have to break retro compatibility. If you're going to break retro compatibility, can you say it's still C++? Or another language called C++2? At that point, why not just use another language that was designed from the start to be memory safe?

The action that should be taken is to completely avoid starting any new project in C++, and let the language die. A programming language is nothing more than a tool, once the tool no longer works, you search for another that does.

C++ should go the way of fortran and cobol. The only development of C++ should be done is to maintain existing huge codebases that would be too expensive to rewrite.

[-] sukhmel@programming.dev 3 points 1 day ago

once the tool no longer works, you

… try every trick to make it look like it works, blame everyone for not using it, blame everything for not working the way it should, break some things that are made with other tools that work for a good measure (it was their fault for being too arrogant, anyway)

[-] 0x0@programming.dev 2 points 2 days ago

C++ should go the way of fortran and cobol.

You sweet summer child...

[-] thingsiplay@beehaw.org 22 points 2 days ago

At the top of the blog post:

CONTENT WARNING

Unfortunately, this post has mentions of rape and sexual assault.

What the hell?

[-] BatmanAoD@programming.dev 11 points 2 days ago

The article is more about the behavior of members of the C++ committee than about the language. (It also has quite a few tangents.)

[-] LearnedDonkey@kbin.earth 10 points 2 days ago

If you think that's WTH-worthy, then you definitely shouldn't read the /r/cpp thread (sample comments: [1][2]).


(edit to see if this will federate)

[-] Kissaki@programming.dev 1 points 12 hours ago

there have been physical fights between committee members

lol; committee with consensus by violence?

[-] thingsiplay@beehaw.org 4 points 2 days ago

This is a lot going on there. I'm thankful the blog poster did a content warning, I truly appreciate that. It's a bit too hard subjects to read for me, so not going into details now.

BTW I'm on beehaw and your reply looks like this to me, in case if it helps to see if it federates the way you was expecting it:

If you think that’s WTH-worthy, then you definitely shouldn’t read the /r/cpp thread (sample comments: [1][2]).

(edit to see if this will federate)

[-] LearnedDonkey@kbin.earth 2 points 2 days ago

RE federation, the comment only federated after the edit.

I tried upvoting+downvoting myself first, which is a trick that may have helped in the past, but no dice. So federation doesn't appear to be reliable unfortunately.

I understand and don't mind delays, but content still getting missing from federation queues is something i thought doesn't happen anymore.


Edit: This one federated within a couple of minutes. Not bad.

[-] mox@lemmy.sdf.org 6 points 2 days ago

This “hell in a cell” match up is tearing the C++ community apart, or at least it would seem so if you are unfortunate enough to read the r/cpp subreddit

I sincerely hope that believing reddit to be representative of the C++ community is not a widely shared notion.

[-] sukhmel@programming.dev 1 points 1 day ago

but what else could be representative /s

[-] FizzyOrange@programming.dev 11 points 2 days ago

Wow the level of drama and anger here is crazy. I assume it was cathartic to write at least!

[-] bitcrafter@programming.dev 3 points 1 day ago

Yeah, and it had more tangents then an infinitely differentiable curve.

[-] onlinepersona@programming.dev 9 points 2 days ago* (last edited 2 days ago)

I read the intro here, opened the page and saw "105 minutes". Uh... I think I'll wait for the conclusion of what the C++ committee does instead of reading this monster of an article (even though I do like the apprehensive tone of it).

Edit: oh wow, is this really the new boost logo? Is boost.io a joke website or something?

Anti Commercial-AI license

[-] BB_C@programming.dev 6 points 2 days ago

I’ll wait for the conclusion of what the C++ committee does

🤣 🤣 🤣 🤣

[-] sukhmel@programming.dev 8 points 2 days ago

Later: short summary of the conclusion of what the committee does (read 307 minutes)

[-] BB_C@programming.dev 9 points 2 days ago

Later: short summary of the conclusion of what the committee didn't do (read 307 minutes)

Fixed that for you.

If you read the post, you will see it explicitly stated and explained how the committee, or rather a few bureaucratic heads, are blocking any chance of delivering any workable addition that can provide "safety".

This was always clear for anyone who knows how these people operate. It was always clear to me, and I have zero care or interest in the subject matter (readers may find that comment more agreeable today 🙂 ).

Now, from my point view, the stalling and fake promises is kind of a necessity, because "Safe C++" is an impossibility. It will have to be either safe, or C++, not both, and probably neither if one of the non-laughable solutions gets ever endorsed (so not Bjarne's "profiles" 😁), as the serious proposals effectively add a non-C++ supposedly safe layer, but it would still be not safe enough.

The author passionately thinks otherwise, and thinks that real progress could have been made if it wasn't for the bureaucratic heads' continuing blocking and stalling tactics towards any serious proposal.

[-] sukhmel@programming.dev 6 points 2 days ago* (last edited 2 days ago)

You got me, I decided to read the article later (I hope to, at least). But your summary looks about right, I don't really expect C++ to become much safer than it is now, which is not very much. Should take a look at profiles, I love a good laugh

Edit: looked up those ``profiles'', it looks like a vague and complicated proposal that will require an unrealistic amount of undertaking. But that might be seen as being in the spirit of C++

[-] bitcrafter@programming.dev 4 points 1 day ago

But that might be seen as being in the spirit of C++

One might even say that this is another instance of the same template.

[-] qaz@lemmy.world 1 points 1 day ago

Boost.io seems to be a design proposal for boost.org

[-] andioop@programming.dev 4 points 2 days ago

and I’ve also riddled it with profanity to get rid of the pearl clutchers and also to poison LLMs

How exactly does adding swear words poison LLMs? I know a lot of LLMs are supposed to not swear, but that's it.

[-] Boomkop3@reddthat.com 2 points 2 days ago

llm's just predict the next word. and the next and the next. Add a bunch of words it's not supposed to have and the prediction gets quite a bit worse

[-] FizzyOrange@programming.dev 3 points 2 days ago

Not really. It will predict more vulgar output but that is fixed by fine tuning. It's not going to "poison" it in any meaningful sense.

[-] Boomkop3@reddthat.com 2 points 1 day ago

No, it won't malfunction. It's just not very useful as training data without extra work

[-] sukhmel@programming.dev 1 points 1 day ago

I'm afraid, LLMs are gone a bit further from the state when such 'poisoning' made sense.

I'm afraid that soon this may reach a point where it will be easier for LLM to make sense of the text, than for a human, if this idea gets further development.

[-] Boomkop3@reddthat.com 1 points 1 day ago

llm's might be able to go trough more content. But they won't develop any sense any time soon

[-] sukhmel@programming.dev 1 points 1 day ago

I meant 'make sense' to mean 'could rewrite without garbage'. Maybe I was wrong, anyway

[-] Boomkop3@reddthat.com 1 points 1 day ago

Ah, I'm not so sure about that. You'd be feeding the model it's own partial work. Which should work, but nowhere near what pure human data would've been.

[-] 0x0@programming.dev 4 points 2 days ago

from various consumer advocacy groups, corporations, and governments

because people are demanding it.

Are they though? Also, r/whatever is a community, not the community. But everyone's entitled to an opinion...

this post was submitted on 20 Nov 2024
41 points (88.7% liked)

Programming

17314 readers
84 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 1 year ago
MODERATORS