I'm interested to gauge what the prevailing opinions on formal methods are amongst "software developers at large", specifically those outside of academia or of companies with serious R&D wings.
Some specific questions I'd be really interested in hearing answers to:
* Have you ever used formal methods outside of your professional life (e.g. in personal projects, in a previous academic career)? If so, what methods did you use, and what did you use them for?
* Do you think your professional work would benefit at all from the use of formal methods? Why/why not?
* Have you ever used formal methods in your professional work? If so, what methods did you use, and what did you use them for?
* If you have never used formal methods, do you perceive a significant barrier that prevents you from using them (applicability issues aside)? If you have used formal methods, do you see issues which prevent widespread adoption?
(I mean you specifically; I've read some of the many articles which give varying explanations on why formal methods have never taken off in the mainstream.)
Also, I don't know how to do it. I mean, at school we had some examples, but those were for math-like stuff (how to verify that the algorithm calculating the square root actually calculates the square root), but I wouldn't know how to apply that to programs that are mostly reading something from database and displaying it on a web page.
Now that I googled a bit, I found a paper https://arxiv.org/abs/1809.03162 claiming that "Tools for formal verification of Java programs are in generally poor shape, and do not support recent versions of Java". That would explain why smarter people around me are also not using them.
Give me a tool that is easy to install and works reliably, and I will be happy to learn a new thing.