(no title)
lmm | 26 days ago
Most practical type systems are not technically complete, consistent, or reliable, and all have "escape hatches". That doesn't make them useless.
> Indeed, there is no runtime guarantee at all. There is not even a function to enforce boundary conditions as far as I'm aware of. Contracts are better in every single way.
On the contrary. That typescript types do not exist at runtime makes them much better than contracts in many ways.
> Contracts are also type-checkable.
Not in general. More to the point, not in a way that's general enough to rely on in practice.
> Nix is deterministic and pure.
And notoriously a nightmare to write and debug. Evidently "deterministic and pure" is insufficient. (I'd also argue that it's not actually pure in the ways that matter - see "The C language is purely functional")
No comments yet.