Great talk. I really connected with Tim's need for tangible, non-computing
activities like woodworking — a passion I share. I'd wondered if this was all
just nostalgia and romance, but Tim makes some really good points about the
fundamental tradeoffs in automation.
Prefer to avoid YouTube? You can watch on
Invidious.
Tim spoke extensively about his love of hand-tool woodworking and of making
things (from wood or code). Known materials, an ergonomic environment and simple
tools give you precision, control, flexibility and a connection to your work
(and avoid dangerous dust). This takes time and effort to learn, but is worth
it. You can get a lot of mileage from looking back in time and picking up tools
that most people have forgotten - especially as used by people making their
living prior to automation. Automation saves time, reduces costs and adds
convenience, but it also trades off the beauty of proportional work for the
efficiency of measurement-driven work. Automation isn't bad, but the tools
significantly affect how you see the world, what is possible and the final
results - there are costs to automation - eg. handmade mortise and tenon joints
on doors that are strong and aesthetic compared to stub tenons that are
convenient to produce with machines.
Tim made the analogy to the known material properties of Clojure data
structures, the development environment (of Emacs) and the tools of Clojure
functions. He highlighted that in programming too, automation is ok, but there
are tradeoffs. The automation changes how you approach problems and the possible
solutions you consider. When you have a killer app, everything starts to look
like a problem that the killer app is the solution to. Tim worked in the
Microsoft world with SOAP for around 10 years and described SOAP/WSDL as as a
trainwreck driven by the fixation on automation within Visual Studio, and the
assumption that it would protect them from unbounded complexity. Other tools
that didn't work with with Visual Studio weren't perceived to even exist. Tim
asked whether now that we use Clojure's Lein, if we know what we ship, and
whether that's ok. More generally, how does automation X change how I look at
the world?
Tim described programmers as most like the woodworking pattern makers — people
who made unique wooden models of parts to be cast from steel. For this type of
work Clojure is the perfect simple tool that gives you a broader perspective on
the world.