3 ms·
Your comment is incoherent. First, it applies so long as a type system is an effective tool at telling you this, and so long as that tool is not completely (or
by dllthomas 11y ago
Your comment is incoherent.
First, it applies so long as a type system is an effective tool at telling you this, and so long as that tool is not completely (or at least substantially) supplanted by other tools. In no way does it have to be "the only tool" - there are lots of tools I find useful to tell me when things are going wrong in my code: types, tests, assertions, linting. Even with the other three, types cover meaningful territory.
Second, as you half note, the system you describe would be a type system (and sounds somewhat similar to core.typed in clojure, though my understanding thereof is tremendously superficial).
The rest of your comment just seems not to follow.
Type systems aren't silver bullets for keeping agility in the face of changes, in the same way that hammers aren't silver bullets for driving nails. You can use them wrong, you can hurt yourself, but you sure want one (... but probably not the weird shaped one with a loose head over there labeled "Java"...).
- taeric 11y agoI was specifically referring to where you said "having defined your interfaces with types your tooling..." The implication being that types are required for this to work. I question that implication.
- dllthomas 11y agoPeople are pounding nails with rocks. You say "hammers are just another thing to smash your fingers." I point out that hammers help you smash your fingers less often, and you question my implication that hammers are the only way of reducing finger smashing. This is idiotic; I'm done with this thread.