3 ms·
> Type systems are one of the best solutions to the tarpit of complexity that large systems inevitably incur. (Disclaimer: I haven't read the paper you linked
by MaxBarraclough 5y ago
> Type systems are one of the best solutions to the tarpit of complexity that large systems inevitably incur.
(Disclaimer: I haven't read the paper you linked.) Also, type systems aren't the only game in town, but they're more approachable than the alternatives. Type systems are a walk in the park compared to formal verification frameworks, for instance. If you write your project in verified SPARK, the prover will take all the guess work out of the interactions between subsystems, but again, verified SPARK is no cakewalk.
If your ambitions are no higher than throwing together a giant ball of mud that's impossible to precisely reason about, then sure, stick with an anaemic static type system or a dynamically typed language. As a discipline though, we have the means to do better. (Are my biases showing?)
As I mentioned in my other comment, various modern statically typed languages have decisively eliminated null-dereference errors. That kind of thing can't be achieved if the programming environment is a free-for-all.
To quote an obscure novel, Nothing is an absolute reality; all is permitted. So it is in the dynamically typed world.