Conversation

Typed languages save you from certain classes of errors. They come with a cost though. The most important cost for me is that it is easy to get attached to them. Making them harder to change
1
1
Yes and no I think. My experience is that it is easy to make changes to anything but the types in type based systems. But you have codified a significant part of the way you think about your code. Caveat: this is just me, in Java-y based type systems.
1
1
I thought that might be the case. Java's gimped and you've felt that pain. It might be hard to believe, but programming in Haskell-like languages is a completely different experience.
2
1
My point isn’t technical at all. It is human. Having done both static + dynamic types I find myself much less inhibited to change dynamic types. My hypothesis is that static typing codifies your mental model. Allowing less room to think alternatives.
1
Type systems in general do not necessarily require giving everything names (unlike in Java). Structural type systems give you the ability to talk about types based on their shapes, rather than their names, although it can be helpful over time to pin those shapes down.
1
1
Oh yeah, I am not advocating any particular approach. All are valid in particular circumstances. If I have a very unknown problem I am exploring I love my dynamic languages. If I wrote another financial system. Strongly typed all the way
1