Developers just can not instantly migrate all software from C/C++ to other P.L.s just because "it's safer", we need to add features and best practices for existing and new C/C++ safe software ...
Circle is without a doubt the most promising development for C++. Too many people unfortunately can't set their egos aside to give it the attention it really deserves.
There have always been plenty of challenging competitors to C++ that failed over time. It's not an ego thing to be skeptical of the next big thing, especially if there are half a dozen competing candidates for just that. Circle is not even open source.
Circle definitely not the most promising. It's only being contributed to by only one person (Sean Baxter). Since it's not even open-source and can easily conflict with existing codebases, adoption becomes very impractical. And since you mentioned egos, yes, people in Carbon, D, Circle should set their egos aside and contribute to Cpp2/Cppfront instead, as it's the most practical project so far.
9:28: "There would be no reason, by definition, to recommend people switch to another language. This is the problem." Interesting take. Certainly not by definition. I would still want to switch off of C++ even if it became more memory safe.
No, Herb, @1:07:00 std::regex is horrendously bad in so many ways the best we can recommend is "do not use, ever". I have a draft paper to mark it as "deprecated, please do literally anything else". Do you want that submitted?
I really hope cppfront takes off. C++ focus shouldn't be about fixing it's bugs and errors. It should transform itself into a different paradigm. It's a language of the engineers, not developers. It should provide a base platform to add more derivatives and variants like circle and yet be able to program simply like typescript.
@@RoibarkanYes, but using NC (non-commercial) and ND (no derivations). This means cppfront can’t be included by default in any GNU/Linux-distribution, no company can use it and those contributors Herb celebrates are technically not even allowed to provide pull requests since that involves modifying the sources. Because of that it is hard to take cppfront seriously until Herb switches to a free license.
Herb always gives such a good perspective. I don't agree with his approach of cppfront, but nonetheless I think his metaphor about the door really drove home the point of needing a holistic approach to security.
15m15s: "Rust unsafe gives you access to 5 or 6 of the knives. We want all the knives." I'm not sure what Herb is referring to that unsafe Rust can't do. He might have heard that adding unsafe doesn't magically make your code compile, and that's true, but raw pointers can do anything (transmutes, lifetime extensions, data races, etc.) once you know the syntax and some relevant helper functions/types. The usual suspects like volatile, atomics, and inline assembly are all there. Herb, I don't imagine you read these comments, but I would be thrilled to give you a Rust crash course of any length you like. I think taking some time to seriously study Rust and get good at it would be a valuable investment for the future of C++.
The reason, that I know and is mostly cited in the community, is that they did some "bad" decisions in the implementation but now they can't change it because this will be ABI breakage.
Great talk, finally we can see Herb come to terms with what needs to be done to fix the issues. What's sad is that all of this took 5 years of denial, hostility towards people pointing out the problems, manipulating definitions, etc. Finally the need to catch up with Rust's state of the art safety support is acknowledged and the plan is somewhat plausible.
This isn't new, Herb has been working on cppfront -- i.e. a new, safer syntax for C++ -- since at least 2021. None of this talk represents a recent change in attitude that I've seen.
I would have expected some concrete examples of not secure C++ code. Bounds checking could be enforced in a profile by banning operator[] and requiring 'at'. This will cost some performance though (i.e. suppresses compiler optimization). From the past I know that regex are expansive to create. Perhaps also to execute compared to a simple search.
Haven't followed C++ for years, but Herb's presentations are always delightful.
Developers just can not instantly migrate all software from C/C++ to other P.L.s just because "it's safer", we need to add features and best practices for existing and new C/C++ safe software ...
always love Herb's presentations, alot of charisma
Really enjoyed this Herb, thank you!
Circle is without a doubt the most promising development for C++. Too many people unfortunately can't set their egos aside to give it the attention it really deserves.
I don't follow. Why are you talking about Circle? What does that have to do with cppfront?
Less to do with ego and more to do with tooling support, the effort to migrate and established ecosystems.
There have always been plenty of challenging competitors to C++ that failed over time. It's not an ego thing to be skeptical of the next big thing, especially if there are half a dozen competing candidates for just that. Circle is not even open source.
Circle definitely not the most promising. It's only being contributed to by only one person (Sean Baxter). Since it's not even open-source and can easily conflict with existing codebases, adoption becomes very impractical.
And since you mentioned egos, yes, people in Carbon, D, Circle should set their egos aside and contribute to Cpp2/Cppfront instead, as it's the most practical project so far.
This talk is highly interesting, very good points
16:15 JF Bastien’s talk from CppNow 2023: ruclips.net/video/Gh79wcGJdTg/видео.html
I love this think!
9:28: "There would be no reason, by definition, to recommend people switch to another language. This is the problem." Interesting take. Certainly not by definition. I would still want to switch off of C++ even if it became more memory safe.
No, Herb, @1:07:00 std::regex is horrendously bad in so many ways the best we can recommend is "do not use, ever". I have a draft paper to mark it as "deprecated, please do literally anything else". Do you want that submitted?
I really hope cppfront takes off. C++ focus shouldn't be about fixing it's bugs and errors. It should transform itself into a different paradigm. It's a language of the engineers, not developers.
It should provide a base platform to add more derivatives and variants like circle and yet be able to program simply like typescript.
Great talk as always!
Question: With so many copyright holders, will you be able to change the license of Cppfront to a free license?
I believe the license is creative-commons
@@RoibarkanYes, but using NC (non-commercial) and ND (no derivations). This means cppfront can’t be included by default in any GNU/Linux-distribution, no company can use it and those contributors Herb celebrates are technically not even allowed to provide pull requests since that involves modifying the sources.
Because of that it is hard to take cppfront seriously until Herb switches to a free license.
I am supper impressed with the improvement of C++Front
just adopt Circle as c++2x
Herb always gives such a good perspective. I don't agree with his approach of cppfront, but nonetheless I think his metaphor about the door really drove home the point of needing a holistic approach to security.
15m15s: "Rust unsafe gives you access to 5 or 6 of the knives. We want all the knives."
I'm not sure what Herb is referring to that unsafe Rust can't do. He might have heard that adding unsafe doesn't magically make your code compile, and that's true, but raw pointers can do anything (transmutes, lifetime extensions, data races, etc.) once you know the syntax and some relevant helper functions/types. The usual suspects like volatile, atomics, and inline assembly are all there.
Herb, I don't imagine you read these comments, but I would be thrilled to give you a Rust crash course of any length you like. I think taking some time to seriously study Rust and get good at it would be a valuable investment for the future of C++.
one big question is, why is C++ default regexp so slow compared to perl ?...
From what I've heard the limitations are caused by abi backwards compatibility.
The reason, that I know and is mostly cited in the community, is that they did some "bad" decisions in the implementation but now they can't change it because this will be ABI breakage.
ABI issues.
how is that relevant to this talk?
I don’t understand why it is impossible to fix. Why can’t they wrap the old and the new data structures in a union and stay abi compatible?
Great talk, finally we can see Herb come to terms with what needs to be done to fix the issues. What's sad is that all of this took 5 years of denial, hostility towards people pointing out the problems, manipulating definitions, etc. Finally the need to catch up with Rust's state of the art safety support is acknowledged and the plan is somewhat plausible.
This isn't new, Herb has been working on cppfront -- i.e. a new, safer syntax for C++ -- since at least 2021. None of this talk represents a recent change in attitude that I've seen.
@@josephlunderville3195 Herb's efforts to fix syntax issues aren't new, yes. Herb's acknowledgement of rust being the state of the art is new.
I would have expected some concrete examples of not secure C++ code. Bounds checking could be enforced in a profile by banning operator[] and requiring 'at'. This will cost some performance though (i.e. suppresses compiler optimization). From the past I know that regex are expansive to create. Perhaps also to execute compared to a simple search.
A lot of compilers are able to see through .at and still produce optimized code IIRC
20 years too late... cppcon deleted my comment on their channel for a similar talk, hope ACCU is more tolerant of truth.
better late than never.