Hammers and Nails
Allow me a brief reflection.
The language we use defines the boundaries of what we can think. The same applies to programming languages and tools: by making some operations easy and others hard, they make certain concepts thinkable and others invisible.
A workflow requiring 40 fragile Git steps isn’t just avoided: it ceases to exist as a mental category: implementation difficulty leads to conceptual absence. Or, as my grandma would say:
What’s hard to do becomes hard to think.
Jujutsu illustrates this beautifully. Megamerging was technically
achievable in Git, yet nobody invented it. Why? Because the required
chain of operations was too convoluted to even ideate.
By elevating its interface from implementation details to pure intent,
Jujutsu turned convoluted operations into trivial ones, allowing
people to envision entirely new workflows.
I stand on the shoulders of giants here. Ken Iverson titled his 1979 Turing Lecture Notation as a Tool of Thought, arguing that notation doesn’t just carry preexisting thoughts: it shapes them.
The corollary is that the limits of our tools are invisible from the inside. I cited Graham’s Blub Paradox already: we can spot missing features in poorer languages, but not what our own language lacks compared to more powerful ones.
My personal advice: deliberately expose yourself to tools and languages you’ll never seriously use. You may not switch to them, but the space of what your imagination can conceive will surely expand.
We’ve always thought in Git. Jujutsu expands the boundaries of our thought. Honestly, I’m very curious to know what will come next.