|
|
|
|
|
by tyu2
2000 days ago
|
|
From one perspective types (and I mean proofs encoded in types) is a compile time measure against bugs, while supervisors is a runtime measure. It's much easier and more productive to not do proofs and rely on runtime architecture for reliability, it adds relatively little complexity and asks very little from developers, it stays almost the same as regular software development. And it's still necessary to do regardless whether you have proofs or not. And types like machine types are of course irrelevant for BEAM, well, maybe they'll start to matter a bit with JIT, but probably still not, BEAM with JIT is still not going to be a performance miracle. |
|
However, by themselves, strong types do not provide proofs.
See the following for proofs of strongly-typed concurrent systems:
https://papers.ssrn.com/abstract=3418003
Strongly-typed programming languages need to provide
additional capabilities for error processing and recovery.