Platform features that require coordination often can't be "solved" in userland.

· Bits and Bobs 4/14/25
  • Platform features that require coordination often can't be "solved" in userland.
    • Userland is the region of the platform where platform users can do whatever they want on top of what the platform creators made.
      • It's easier to change, and thus is a higher pace layer.
    • Subsuming functionality into the platform is expensive and should only be done when there's some benefit to doing it in the platform.
      • An overly-large platform gets harder to maintain and reason about, for one thing.
    • However, there is a class of problems that can be solved technically in userland, but are actually a coordination problem.
    • For example, many years ago Javascript had no notion of Classes.
      • You could create class-like things in userland by swizzling prototypes, and lots of different libraries had subtly different conventions.
    • This led to less interoperability than was ideal.
      • No schelling point could emerge; there was a sea of subtly incompatible options.
      • If you used an object from another framework it might have a subtly different lifecycle for no good reason.
    • Then Javascript formally ensconced one of the notions of Classes into the language.
      • It just added "sugar" for one of the conventions.
      • It subsumed that one convention down into the platform layer.
    • This instantly solved the schelling point problem in userland.
      • Now there was no reason not to simply use the one official way.
    • Adopting one convention in the lower pace layer solves the schelling point problem immediately.[qp][qq]

More on this topic

From other episodes