A friend sent this video, and while it is talking about software development, I think a lot of it can be applied to the way we think about our tools, learning our tools, and mastering them.
I think that Clojure is a great language, and Hickey is a very experienced and knowledgeable programmer, definitely worth listening to.
But in practice I see that these ideas are not always as applicable as it seems at first sight. Consider, for example, a codebase like Darktable. Sure, it would be great to keep it very simple, modular, and compartmentalized, etc.
But at the same time there is a pressing need for performance, supporting multiple architectures and calculation modes, keeping edits backward compatible, supporting new functionality, etc.
It is easy to be simple when your app runs on a server doing some processing and you are free to refactor it as much as you like, having well-defined input and output for unit testing, etc. Much more difficult for a complex, performance-oriented desktop app.