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.
-
-
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.
Show 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.
Show this thread
End of conversation
New conversation -
-
-
One thing that helps, in this case, is vendoring dependencies. You can make a small local patch to unblock you from progress, then try to resolve upstream at a different pace. Though, vendoring has its own trade-offs.
-
That's what I called maintaining "local forks". But soon, you might be maintaining forks of every library that use the forked library... entire universes of libraries. And if everyone does it, soon there are multiple conflicting such universes. Version hell, squared.
- 1 more reply
New conversation -
-
-
I wouldn't blame the type system for this. You could reasonably allow access to module abstract types and unexposed functions with mangled names and lots of warnings.
-
OCaml is probably worse than other typed languages in not having any good reflection (so far), in wantonly erasing types at runtime, without something like Scala TypeTags, or even just typeclasses, to make do. In any case, OCaml is deficient, and that *is* related to its types.
- 3 more replies
New conversation -
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!