If this famous device is that outstanding, one wonders at what point some version of that funtionality arrives for C or C++.
If this famous device is that outstanding, one wonders at what point some version of that funtionality arrives for C or C++.
Microsoft and Google have already been collaborating in lifetime analysis on Clang Tidy and VC++ static analyser, it just isn't 100% there.
CppCon 2019: Gábor Horváth, Matthias Gehre “Lifetime analysis for everyone”"
https://www.youtube.com/watch?v=d67kfSnhbpA
Lifetime Profile Update in Visual Studio 2019 Preview 2
https://devblogs.microsoft.com/cppblog/lifetime-profile-upda...
GCC 11 will also support a lightweight version of it for C, https://developers.redhat.com/blog/2021/01/28/static-analysi...
Rust freely declares itself to be inspired by Cyclone et al, but its capabilities are quite different from Cyclone's region analysis (and Carp actually came after Rust).
The C++ static analysis, on the other hand, is quite limited in comparison even to Cyclone. It's not sound and doesn't even aim to be- in other words, "just" another static analysis that will not catch everything. ("Just" in quotes because of course more of this is great- my point is merely that it's not the same functionality coming to C++.)
> My understanding is that Rust's chief innovation is the borrow checker.
Carp was a mistake, I wanted to refer to Linear Lisp.
Also in the context of worse is better, C and C++ solutions just need to be good enough.
Learn this and advocate properly.
C and C++ have had static analyzers to catch "some version" of these problems for a long time now, so presumably anyone asking about borrow checker functionality would be interested in whether that functionality matches Rust's (i.e. is sound).
We should not forget that even if those static analysers aren't sound, they allow to keep using 50 years of eco-system.
Which is why companies like Microsoft, despite all security talk, in the end add support for recent ISO C versions, and have "secure" platforms like Azure Sphere with a C only SDK.
> ("Just" in quotes because of course more of this is great- my point is merely that it's not the same functionality coming to C++.)
If something as core as type checking can be an optional feature, I'd be surprised if a heftier brain than mine can't get most of the way to a C++ borrow checker optionally.
Doesn't C++ famously fetish complexity? Wasn't pi once calculated at compile-timel with a C++ template? Where is my Obfuscated C entry that looks like an ASCII Robotron game and borrow-checks, say, the Linux kernel?