This wasn’t what I expected, the bit about formal specification languages was really (pleasantly) surprising. I happen to have been spending a ton of time recently writing TLA+ and Alloy as the author mentioned. It’s completely changed my perspective on testing, definitely.<p>But the really surprising thing is how much they affected how I think about software overall. You know, at work I’m busy trying to build things. But taking a step back to understand what computation really is has been so helpful for even the code I’m writing on a daily basis.<p>Specifically with Alloy, which has an awesome state viewer, you can use it as a tool for prototyping ideas really quickly. It does suck that you can’t take that and use it to test your actual code, but I have ideas there :)<p>Anyway, yea I can’t recommend those tools enough. I think specification will grow in popularity soon - and no that doesn’t mean specifying your whole program up front. It’s totally possible to spec a program out iteratively. The value is huge - we write user stories and have product docs somewhere which explain what it is we’re building, but they get completely discarded after building. Having a highly simplified description of what a piece of software is expected to do is invaluable, especially as members come and go on the team. Agreed. In 2021, we don’t need another programming language. We need to master the tools and processes that we have.