4 ms·
You run the risk of being lynched by the Haskell mob, with talk like that. But I agree, in principle. The hardcore “sound types” crowd believes that anybody u
by Roboprog 6y ago
You run the risk of being lynched by the Haskell mob, with talk like that. But I agree, in principle.
The hardcore “sound types” crowd believes that anybody using dynamic types is doomed.
I must not have the same problems they do.
First class functions; closures; higher order functions; partial function application, seasoned with the occasional variadic vs fixed arity function, and I’m good.
One can learn the other 95% of the jargon to deal with 5% of the problems later.
- jolux 6y agoDoomed is a bit of a strong word. I personally prefer static types because they reduce the number of unit tests I have to write, and at a higher level (following from this) they can inform the design of a system in a way that encourages robustness. Algebraic data types are not really inherent in functional programming at all; as you mention you can do it just fine in a dynamic language and a good chunk of ADTs and type stuff translates to say Rust as well.
- zozbot234 6y ago> The hardcore “sound types” crowd believes that anybody using dynamic types is doomed. What they believe is that "dynamic types" is a misnomer, and if you think your program is checking dynamic types, it is in fact doing runtime pattern matching over a variant record. There's nothing wrong with pattern matching and variant records; but conflating them with types is just nutty, and using them pervasively as part of the ordinary flow of code is no different than programming in old-style VB.
- jolux 6y agoI don’t think many people programming in dynamic languages would die on that hill. Avoiding types is kind of the allure, I think?
- bojo 6y agoAt the expense of having to write more tests that a type system could have solved at compile time, and likely catch more runtime logic bugs as well. For the record I am a convert. Types have made my developer life much happier, especially working with unfamiliar code across multiple projects/teams. When you treat your builds as long term proofs your confidence level increases dramatically.
- jolux 6y agoI don’t disagree :)
- waltpad 6y agoI suppose that you mean that it should be "checking types dynamically", rather than "checking dynamic types"?