5 ms·
I think the era of focus on static analysis tools has begun. I think all languages are moving in this direction. We have the new C++ Core Guidelines which will
by hellofunk 11y ago
I think the era of focus on static analysis tools has begun. I think all languages are moving in this direction. We have the new C++ Core Guidelines which will eventually be compiler-enforced, there is Rust with its program-proving compiler, and there are these neat tools for C, and no doubt more will flourish in coming years. It is going to be interesting to see where it all goes.
- pjmlp 11y agoThe sad thing is that lint was created in 1979, already when C unsafety was clear. However in the early days, only C was being ported outside UNIX (parts of it actually) and lint became something that only the ultimate versions (to use a more modern expression) had. There was also the issue of false positives. So very few bothered buying it.
- hellofunk 11y agoI wonder also if that possibility of unsafety just doesn't matter much to a lot of people. After all, lisps have been around forever and even today JS and Clojure are popular when the possibility of doing unsafe things is extremely easy in a language where there are no type checks. So perhaps many developers just don't worry so much about compiler checks and instead enjoy the flexibility of "weak" or "no" typing, at the possible expense of safety. And maybe all of that is gradually changing. I really really love Clojure, but find static typing very useful; but also, it's great to throw it away when you feel confident enough to do so, and perhaps a lot of developers just like this, shall I call it "cowboy", style?
- pjmlp 11y agoAll languages allow unsafe things,if you think in terms of logic errors. But C's unsafety leads to memory corruption as well, even for very skilled developers. Only matched by programming in straight Assembly. Yes that was the expression we used in 90's.
- fmarch 11y agoThere is an interesting paper on external sound static analysis tools (verification tools like SMT and SAT solvers) in Frama-C to increase effectiveness of optimizations and generating better, in terms of performance and not just correctness, code. http://link.springer.com/chapter/10.1007/978-3-662-46081-8_17 http://link.springer.com/chapter/10.1007/978-3-662-46081-8_1...
- CyberDildonics 11y agoYou could think of types being a form of static analysis. B originally had no types. I think static analysis integrated into languages can progress as people realize there are things that they really don't want to be able to do 90% of the time.