That's weird, because I associate "easier to change" with static type systems
Conversation
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
I think the main thing Haskell is missing for even less invasive types is anonymous records, but Elm and PureScript support that
3
4
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
You are implicitly assuming that types are hard to change, which is true in Java but not necessarily in other languages where types are cheap
1
1
No, I am saying that once you give things names it influences how you think about those things.
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
I dunno, I find it super helpful to use a type system in the explorative phase, even if due to human reasons I need to then write it in a dynamic lang. Super helpful to have lightweight way of clarifying my thoughts before even going forward with implementation
2
1
I do recommend learning a languge like Haskell or OCaml, Elm or Purescript. They feel very different to working in Java. Much more succinct and easy to use as a design aid early on.
Replying to
I sorta wish I could. But I am pretty darn comfortable with JS for exploration right now. And need to write the end result in that anyway



