3 ms·
A static analyzer which requires correct code to be rewritten in a certain way to satisfy the analyzer does not deserve to be called amazing.
by blub 7y ago
A static analyzer which requires correct code to be rewritten in a certain way to satisfy the analyzer does not deserve to be called amazing.
- oblio 7y agoDon't all static analyzers do that? Or they're just ignored, which happened in almost every large project I've ever seen.
- carlmr 7y agoExactly. C++ code has so much variability that 90% of static analyzer warnings are worthless. So people ignore them and create terrible unsafe code.
- blub 7y agoMy comment had nothing to do with C++ or any other particular language, you're using it as a red herring to divert attention from the fact that the Rust analyzer requires changing the way you write code, making it not awesome, but ordinary. And speaking of C++, it's obvious that Rust programmers take a very adversarial stance towards C++, but you should be instead thankful that it exists, because without it many of those marketing articles would lose their meaning. "Slow compiler is now less slow, but probably still slower than those of other languages you know" doesn't quite have the same effect.
- carlmr 7y agoC++ is the obvious benchmark language because it's widespread and has the same benefits (manual memory management, native, high control). High reliability, static checked any language requires you to write code a certain way. C++ is just the most prominent and meaningful example here. ADA would be another good comparison, but I haven't worked with it on large projects so I can't say much about compile speed. It has a lot of similarities in being a safer C++. It felt similarly restrictive to Rust though. I think the fact of the matter is that it you want safety you need some kind of restrictions and your compiler needs to do some extra work (ADA and Rust) or you need to look at the whole toolchain that o of necessary to achieve safety (in C++ this is very long if you run your tests with Static analyzers, ASan and Msan, too which remove some of the bugs Rust tells you about).