From The Art of Computer Programming to The Art of War
Dipping the brush...
For [over] half a century, generations of Computer Science had graduated in light of Donald Knuth’s epic The Art of Computer Programming. Most of the students either read or was read the author’s statement—
The process of preparing programs for a digital computer is especially attractive, not only because it can economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music.1
Unfortunately, [too] many graduates had proceeded to take positions and careers with the software industry with the naive, face-value quote in mind, either as an explicit, vivid dictum or a subconscious idea.
They may have also been inspired by a further observation by the author:
We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better. Therefore we can be glad that people who lecture at computer conferences speak of the state of the Art.2
Of course, Knuth is far from being naive or romantic with respect to computer programing; his notion and contextual use of the term ‘art’ is quite clear:
The difference between art and science is that science is what people understand well enough to explain to a computer.
All else is art.3
…hence—
In this sense, we should continually be striving to transform every art into a science: in the process, we advance the art.4
It is interesting to note, that not only computer programming (or mathematics5) refer to the complex process or domain as an art.
So is the art of war.
In this context, consider this observation on strategy:
In the military literature, strategy is repeatedly compared to art, to emphasize its creative foundation and ingenuity. However, we should notice a fundamental difference between art and strategy: The stone, the painting canvas, the musical notes or instruments—all these do not harass the artist. The artist deals with inert factors, where strategy [deals with] an adversary seeking to thwart you.
[…]
Hence the strategic necessity to focus not on one’s plan, but rather consider more the adversary’s reaction.6
Here is the “reality” component, [seemed to be] missing above:
After all—we develop information systems to meet some actual needs, provide for certain requirements, answer question or solve problems, not [just] for the academic or theoretical purpose7…
∴ Computer programming for practical purposes requires a strategic approach8.
As for ‘programming’, Knuth recommends:
Let us change our traditional attitude to the construction of programs:
Instead of imagining that our main task is to instruct a computer what to do,
let us concentrate rather on explaining to human beings what we want a computer to do.9
This lesson, preceding the Agile Manifesto by 17 years, had also resonated in Steve Jobs’ words:
You can't just ask customers what they want and then try to give that to them.
By the time you get it built, they'll want something new.10
complemented with—
You‘ve got to start with the customer experience and work backwards to the technology.11
Indeed, one things the ‘programming strategist’ has to gain understanding of—and mastery in—is the dynamic nature of delivery interactions.
And in software—as in war—
…the student of war who is unversed in the art of war of varying his plans […] will fail to make the best use of his men.1213
Donald Knuth, The Art of Computer Programming: Volume 1: Fundamental Algorithms (ed. Addison-Wesley Professional, 1997)
Donald Knuth, Computer Programming as an Art (1974)
Donald Knuth, in: Robert Slater, Portraits in Silicon, Chapter 31 (p. 351), The MIT Press. 1987
Donald Knuth, Computer Programming as an Art (1974)
Bertrand Russell [in "The Study of Mathematics" (1902)] had preceded Knuth (👆🏻#1) with—
Mathematics, rightly viewed, possesses not only truth, but supreme beauty-a beauty cold and austere ... yet sublimely pure and capable of stern perfection such as only the greatest art can show.
Both (and others) relate to more than meets the eye…
General (Res.) Prof. Yehoshafat Harkabi, Strategical difficulties and obstacles
(freely translated from the Hebrew original)
There is absolutely no disregard to theoretical studies and research; contrariwise!
Be it mathematics, or computer sciences, or any other knowledge domain—such are necessary and vital to domain evolution and development.
However, the goal of this blog is to [primarily] consider applicative implementations.
This is a very simplified, narrow statement.
Effectively, much effort is needed with (and put into) what might be considered ‘theoretical’.
Cannot elaborate here; more may be discussed based on feedback to this post.
Donald Knuth, Literate Programming (1984)
Steve Jobs, Interview with Inc. Magazine for its "The Entrepreneur of the Decade Award" (1 April 1989)
Steve Jobs, May 1997, World Wide Developers Conference
The text in the last image is “fake Chinese”;
look carefully, and you may be able to read:
“Strategy without tactics is the slowest route to victory.
Tactics without strategy is the noise before defeat.”






