The long way through Software Craftsmanship

Talk: Simplicity matters

Apr 18, 2015 - 1 minute read - Comments - clojurerich-hickeytalkkeynoterails-conf

I’ve seen this video by Rich Hickey: “Simplicity matters”, taken from Manuel Rivero’s google plus' site

here are my notes:

  • the software is the elephant
  • do more, do it differently, do it better
  • complexity of the elephant is going to dominate what you can do
  • your ability to reason about your program is critical
  • design is about pulling things apart
  • become familiar by learning, trying
  • “We can be creating the exact same programs out of significantly simpler components”. Rich Hickey

Complexity vs simplicity:

Complexity Simplicity
state, objects values
methods functions, namespaces
variables managed refs
inheritance, switch, matching polymorphism à la carte
syntax data
imperative loops, fold set functions
actors queues
ORM declarative data manipulation
conditionals rules
inconsistency consistency
  • he does not agree on “simplicity” on the agile manifesto
  • simplicity is not about you. simplicity is a lot of hard work
  • simplicity is not an objective

Order is all over the place:

Complex Simple
positional arguments named arguments or map
syntax data
product types associate records
imperative programs declarative programs
prolog datalog
call chains queues
XML JSON, Clojure literals

The Guardian of the Source Logging is a feature