On yak shaving and Don Knuth's birthday

✍️ Written on 2022-01-10 in 457 words. Part of digital-typesetting

Motivation

Yesterday the article “Donald Knuth – The Patron Saint of Yak Shaves” (from 2017) popped up on HackerNews. On the ocassion of Don Knuth’s birthday, I want to comment on it.

The article

“The ultimate yak shave is the combination of improbable circumstance, the privilege to be able to shave at your hearts will and the will to follow things through to the end. Here’s the way it was achieved with TeX”

— “How to achieve the ultimate Yak Shave”

The article follows the idea that “Donald Knuth achieved the most perfect and long-running yak shave: TeX”. The yak shaves are listed as follows:

  1. Write a book of the century

  2. Invent your own computer for illustration purposes

  3. Somewhere along the road, implement your own programming language…

  4. Invent your own programming paradigm for it

  5. Invent your own layout algorithm for it

  6. Design a font

  7. Write an authoring tool for fonts

  8. Come up with your own versioning scheme

  9. Avoid adoption of it for greater good

  10. Implement a custom language for printable documents

It is funny to see that David Fuchs (design of the DVI file format) actually replied on HackerNews.

My comments

I would just like to make sure two opinions are valued:

  • Yak shaving is the natural result of abstraction. If we try to map some design from a higher abstraction layer (e.g. text) to a lower abstraction (e.g. positioned glyphs in a document), we need the corresponding tools to do so. If the abstraction layers are misaligned and cannot solve desirable usecases, it is yak shaving to switch to a different abstraction and solve the occuring problems there, before moving back to the original problem.

  • Yak shaving is not necessarily bad. In the commercial world, one needs to learn to deliver products with limitations (in the sense that it does not fit well between both abstraction layers). But in general, it is of interest to everyone to build abstractions suitable for our world. There are real-world limitations for everyone to yak shave, but we should provide people capable of yak shaving the resources (time, money, knowledge, ideas, …) to yak shave in order to solve problems.

Conclusion

Happy 84th birthday, Donald Knuth!