develwoutacause’s avatardevelwoutacause’s Twitter Archive—№ 1,535

        1. Generally agree with this take, much easier to fix userland mistakes than platform mistakes. However it is also important to consider the primitives defined by the platform and their impact on the ecosystem. Foundational primitives are still the platform's responsibility. @mhevery/1554221786274754560
      1. …in reply to @develwoutacause
        A good example of this is Option<T> and Result<T, E>. These are trivially implementable in userland, but are rarely used like so. Why? Because the ecosystem can't rely on such primitives to be present and doesn't want to force a dependency or have a non-standard API contract.
    1. …in reply to @develwoutacause
      This is most visible by contrasting #JavaScript (which doesn't have either) and #Rust (which does). The former uses null / undefined and exceptions everywhere because that's what the language provides. The latter commonly use Option and Result *because* they're standard.
  1. …in reply to @develwoutacause
    So while platforms generally shouldn't grow beyond the minimal API surface to meet their needs, they *also* need to think of the primitives they are defining for the ecosystem to build on top of. If you can't build upon it, it isn't a very good platform is it?