Well, essenitally a Rust fan explaining for two hours why he doesn't like C++.
stOneskull•2mo ago
rust is hardly mentioned.. javascript gets more attention.
he seems to be an expert and i think it's hilarious.
Rochus•2mo ago
> rust is hardly mentioned
Until the fundamental quintessence in the final minutes, which puts everything said before it into perspective.
stOneskull•2mo ago
it's the obvious comparison to make, and he's still critical of rust. i think he wishes he had it years earlier. his frustration with c++ has a mass.. that comes from a whole lot of energy spent.
Rochus•2mo ago
> it's the obvious comparison to make
Why do you think that? I think these two languages have pretty little in common besides a few (remote) syntactical similarities. Both languages have their merrits and weaknesses, but I don't think that one is able to fully replace the other. I would rather compare C++ to Ada or D.
whytevuhuni•2mo ago
That's a very unusual take. Rust (in its 1.0 form) was precisely made to replace C++, since the goal was to replace as much of Firefox's code as possible with it.
Also, if you cannot afford a GC, then languages like Ada and D are indeed decent alternatives... but D without a GC is very limited, Ada without SPARK is not as safe nor as ergonomic, and Ada with SPARK is very difficult to scale to larger projects.
Rochus•2mo ago
> Rust (in its 1.0 form) was precisely made to replace C++
And yet, the Rust we have today (which is a completely different language than what Hoare originally intended, long before its 1.0 form), requires a complete redesign and rewrite of a system written in C++. The "rewrite everything" dogma and the extreme complexity of the borrow checker were not part of Hoare's original language.
> but D without a GC is very limited
Why? It's pretty much the same object model as C++, and actually was D indeed designed to be a better C++ and a better C, even by an expert who had many years of experience in writing a commercial C++ compiler. There is no need for a GC if you migrate C++ code; you can still do manual memory management and incrementally switch to GC. Unlike Rust, which requires complex binding generators (like cxx or bindgen) to talk to C++, D has native C++ interoperability built into the compiler, so it indeed supports incremental migration.
> Ada without SPARK is not as safe nor as ergonomic, and Ada with SPARK is very difficult to scale to larger projects.
SPARK is usually used for the safety critical parts of a system, not a whole system. It is a subset of and more limited than Ada. But Ada by itself is already much safer than C++, because you can capture the semantics of a system much closer due to the more precise language features. It also has features which help to avoid dynamic allocations, bounds issues, etc. And even Ada is semantically closer to C++ than Rust.
diimdeep•2mo ago
There a lot of low information hate and minuscule effort content that farms impressions that is out there and even here being upvoted to front page, but this full feature length video is deliberate high information hate and it is awesome, not without it's drawbacks but a single man can only do so much.
joshluca•2mo ago
This guy knows C++
9/10, -1 point for using gross AI generated pic
hhutw•2mo ago
This is like the best C++ tutorial that covers all those niche corner edge cases that I had to learn from a hundred different Even More Effective C++ books
Rochus•2mo ago
stOneskull•2mo ago
Rochus•2mo ago
Until the fundamental quintessence in the final minutes, which puts everything said before it into perspective.
stOneskull•2mo ago
Rochus•2mo ago
Why do you think that? I think these two languages have pretty little in common besides a few (remote) syntactical similarities. Both languages have their merrits and weaknesses, but I don't think that one is able to fully replace the other. I would rather compare C++ to Ada or D.
whytevuhuni•2mo ago
Also, if you cannot afford a GC, then languages like Ada and D are indeed decent alternatives... but D without a GC is very limited, Ada without SPARK is not as safe nor as ergonomic, and Ada with SPARK is very difficult to scale to larger projects.
Rochus•2mo ago
And yet, the Rust we have today (which is a completely different language than what Hoare originally intended, long before its 1.0 form), requires a complete redesign and rewrite of a system written in C++. The "rewrite everything" dogma and the extreme complexity of the borrow checker were not part of Hoare's original language.
> but D without a GC is very limited
Why? It's pretty much the same object model as C++, and actually was D indeed designed to be a better C++ and a better C, even by an expert who had many years of experience in writing a commercial C++ compiler. There is no need for a GC if you migrate C++ code; you can still do manual memory management and incrementally switch to GC. Unlike Rust, which requires complex binding generators (like cxx or bindgen) to talk to C++, D has native C++ interoperability built into the compiler, so it indeed supports incremental migration.
> Ada without SPARK is not as safe nor as ergonomic, and Ada with SPARK is very difficult to scale to larger projects.
SPARK is usually used for the safety critical parts of a system, not a whole system. It is a subset of and more limited than Ada. But Ada by itself is already much safer than C++, because you can capture the semantics of a system much closer due to the more precise language features. It also has features which help to avoid dynamic allocations, bounds issues, etc. And even Ada is semantically closer to C++ than Rust.