Меня учили в формальных системах в университете, но я был разочарован тем, как они, похоже, не использовались в настоящем слове.
Мне нравится идея узнать, что работает какой-то код (объект, функция, что угодно), а не путем тестирования, но доказательство.
Я уверен, что мы все знакомы с параллелями, которые не существуют между физической инженерией и разработкой программного обеспечения (сталь ведет себя предсказуемо, программное обеспечение может делать что угодно - кто знает!), и мне было бы интересно узнать, есть ли любые языки, которые можно использовать в реальном слове (спрашивает веб-структуру слишком много, чтобы спросить?)
Я слышал интересные вещи о тестируемости функциональных языков вроде scala.
Как разработчики инженеры, какие у нас есть варианты?