Comment by frogulis

3 days ago

Been a while since I've watched/read it, but I remember the ideas in Maybe Not being quite interesting.

To me, the really important idea wasn't a criticism of static types in general.

Instead it was the idea that static typing in most (all?) mainstream implementations conflates concepts that should be separate, specifically the shape of the information that we have (e.g. what fields of what types), and whether a particular bit of information is available and required (e.g. nullability).

He contends that the former belongs in our usual "type definition", whereas the latter relates instead to a given context. For example, my PassportForm type always has a date-of-birth field in its _shape_, but whether it's statically required/present to exist depends on whether we're at a HTTP API boundary, an internal domain function boundary, writing into a database.

It sounded like that kind of "nullability masking" was intended as a feature of Spec, but I don't get the impression it was ever implemented.

I think they were ideas being experimented for Spec2, but I think that's a bit on a hiatus.