Skip to content

Instantly share code, notes, and snippets.

@booleangate
Last active June 13, 2024 20:16
Show Gist options
  • Save booleangate/db169bf86e6e9f4f8ddd61449aa58ebc to your computer and use it in GitHub Desktop.
Save booleangate/db169bf86e6e9f4f8ddd61449aa58ebc to your computer and use it in GitHub Desktop.

Simple made Easy - Rich Hickey

Easy vs Simple

  • Easy: fast, near our understanding, familiar

  • Simple: does one thing

  • Complex: intertwined. Requires knowing or thinking about more things at the same time.

  • Easy is relative

    • Easy for who? Hard for who?
  • Complex is objective

    • e.g. This function does N things, requires N dependencies, involves N subsystems, etc

Simple does not mean "I already know what it means." It means it can be understood with less effort.

Lego castle (simple) vs knitted castle (complex)

  • The lego castle can be taken apart at many locations to be altered
  • A knitted castle can only be altered from the outside-in. To change the center, you have to unknit a whole side to just to expose the area you want to change.

Simplicity often results in more things. This is okay – good even – because simplicty is not about the number of things. It's about the number of things they do. It is better to have many simple things that don't intertwine than to have a few complex things knotted together. It is easier to change out those simple things.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment