Watching – Programming with Hand Tools
A very nice keynote about using simple hand tools for productive work. It starts with the examples of “wood work” (like furnitures) for describing the importance of understanding materials and tools well.
- The material in the programming world is data structure. Persistent data with solid structure is required.
- Functions and semantics are the gateway to operate on the materials.
Automation with heavy-weight tools can be good for productivity, but it also requires certain costs. It changes the way to look at the problem, and we could lose some insights behind the scene.
Functional programming languages like closure has nicely organized immutable/concurrent data structures with simple interfaces, compared with relatively complex set of classes and objects. Simple data structures provides great flexibility.
The automation part reminds me of Chef, which I was trying on Chef recently. It’s a good automation tool with a concept of simple idempotency policy, but it involves much complexity behind the scene. Maybe blindly using them might be dangerous without understanding the underlying architecture. Or, applying more simpler type of approach like Sunzi would be another option.
We may have to carefully select the tools and materials, before going deeper into the problem.