Why don't people use formal methods? (2019)

hillelwayne.com
July 30, 2026
27 min read
🔥🔥🔥🔥🔥
53/100
Summary
Barriers to the widespread adoption of formal methods include perceived high costs and a lack of applicability to certain domains. Historical context reveals that these methods have not been effectively integrated into mainstream software development practices.
Key Takeaways
- Formal methods are rarely used in software development, even in high-assurance domains like medical devices and aircraft.
- There is no unified formal methods community; different groups use varying terminology and approaches for formal specification and verification.
- Most software specifications lack clarity, making it difficult to determine what constitutes "correct" behavior in code.
- Formal verification can be categorized into code verification (CV) and design verification (DV), with partial and full verification options available.
Coverage & discussions
Hacker News · hillelwayne.com
Community discussions
Hacker News discussion ↗
Historical count: 5 · 5 saved in sample · Historical sample
Analysis ready
Community Sentiment
Positives
- Formal methods have proven invaluable in high-stakes projects like rewriting Postgres in Rust, where correctness is non-negotiable — over 1000 functions verified and even bugs discovered!
- There's a refreshing perspective that type checkers offer a taste of formal verification, suggesting there's value in enhancing our modeling capabilities rather than outright dismissal.
Concerns
- The reality is that most software engineers shy away from learning anything beyond their college curriculum, which stifles innovation and adoption of formal methods.
- Creating formal specifications is a daunting task that often leads to a realization of the vast surface area for bugs, making engineers question the practicality of formal methods.
- Many industry professionals lack the respect and understanding of formal methods, leading to a culture where even informal methods are underutilized.




