Re:Ask HN: How to be fluent in functional language speak?
by zozbot234 on Tuesday May 05, 2020 @06:25PM
(#23085851)
> 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.
Re:Ask HN: How to be fluent in functional language speak?
by waltpad on Wednesday May 06, 2020 @01:36PM
(#23093925)
I suppose that you mean that it should be "checking types dynamically", rather than "checking dynamic types"?
Re:Ask HN: How to be fluent in functional language speak?
by jolux on Tuesday May 05, 2020 @06:33PM
(#23085915)
I don’t think many people programming in dynamic languages would die on that hill. Avoiding types is kind of the allure, I think?
Re:Ask HN: How to be fluent in functional language speak?
by bojo on Tuesday May 05, 2020 @06:55PM
(#23086084)
At 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.
Re:Ask HN: How to be fluent in functional language speak?
by jolux on Tuesday May 05, 2020 @07:33PM
(#23086323)
I don’t disagree :)
Re:Ask HN: How to be fluent in functional language speak?
by jolux on Tuesday May 05, 2020 @06:14PM
(#23085734)
Doomed 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.
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.