The smallest type change make entire APIs incompatible, hence a lot of pain in OCaml: forced upgrades, forced downgrades, crazy version update schedules, extra forks, reluctance to fix bad early choices that would break compatibility, etc. Types DIRECTLY cause library badness.
-
Show this thread
-
Worse: the opacity of modules and parametricity mean that you can't use reflection to hot patch a module until it's been fixed upstream. You have to go through a whole lot extra pain, including local or global forks and/or cajoling maintainers, to get a real fix in.
2 replies 0 retweets 4 likesShow this thread -
And you can't use introspection to access unpublished interfaces while you lobby the author to publish them or offer primitives you need even though he "doesn't see why" it matters. You could use copy/paste + obj.magic, but it's even less safe or maintainable than introspection.
3 replies 0 retweets 7 likesShow this thread -
Overall, type rigidity, that allows the compiler to detect more issues earlier with clearer error messages, thus bringing a lot of goodness in the small, also brings a huge cascade of badness in the large, that a lot of myopes don't see and claim doesn't exist.
2 replies 2 retweets 12 likesShow this thread
The more ridiculous are those who can't not see all the badness of their "ecosystem", yet refuse to acknowledge the relationship between this badness and design decisions in their language. In the typed FP world, at least Haskell or Scala have coping mechanisms, unlike OCaml.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!