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.
- Subtyping and co/contra-variance, inheritance and defaulting, can greatly reduce type breakage, but OCaml lacks non-trivial support for any of that in its common modules. - It is not "the same API" when the typesystem rejects the API you'd want. That's the "influence" you get.
-
-
OCaml is not a representative of 'types'. It's just OCaml, a specific bundle of design decisions, community conventions, and related issues. Type systems do constrain design of APIs, based on the vision of its designer. Yet, 'robust to change' could be within such a vision.
-
This is always the response to criticism of static typing, but the issue is that: you can’t just assume that all the various sorts of static typing can coexist in one language: e.g. sub typing and global type inference are sort of mutually exclusive.
- 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!