11 Matching Annotations
  1. Sep 2020
    1. Now of course we know how React handles this conflict: it takes the new nodes in your virtual DOM tree — the waters in your flowing river — and maps them onto existing nodes in the DOM. In other words React is a functional abstraction over a decidedly non-functional substrate.

      To me this is a warning sign, because in my experience, the bigger the gap between an abstraction and the thing it abstracts, the more likely you are to suffer what programmers like to call ‘impedance mismatches’, and I think we do experience that in React.

    1. While you can do a lot with just utility classes, as a project grows it can be useful to codify common patterns into higher level abstractions.Tailwind provides tools for extracting component classes from repeated utility patterns, making it easy to update multiple instances of a component from one place:
  2. Jun 2020
    1. However, it is often the case that you do need a higher layer of abstraction in order to deal with the complexity of non-trivial applications. If you don’t deal with that abstraction explicitly, one day you will wake up and find that you’ve created a mess of abstraction and indirection through a thousand cuts.
  3. May 2020
  4. Apr 2020
    1. I'm always in awe at some of the things you can create with the simple primitives that d3 provides.
  5. Nov 2019
    1. the abstraction I wished to have was a sort of a pure functional Vim, completely decoupled from terminal UI - where 'vim' is a function of (editor state, input) => (new editor state)
  6. Feb 2019
    1. abstraction is in itself but a dull and inert thing

      That "in itself" is an important qualifier. My initial thought was how this idea contrasts with Hume's discussion of the uses of general concepts, but the "in itself" poses abstractions by themselves, when not employed to a particular use. When abstractions are put to work, do they do something similar to Hume's generalities? (How closely related are abstractions and general principles?)