cover

computer programming as art

## donald knuth ### 1974

art means skill in latin (ars, artis), and in greek the equivalent is techne

liberal arts used to include logic, arithmetic and geometry (essential to CS)

if science is the knowledge, then arts is the application of knowledge (kinda like today’s science and engineering)

john stuart mill: we need multiple sciences for a single art

john rushkin: the work of science is to subsitute facts for appearances and demonstrations for impressions

art is that which is hard to automate: can you automate code-writing? what’s the status of the research on that?

the goal is the synthesis of science and art

i don’t know anything about art, but i know what i like

therefore comes the question: what is good style? what is bad style?

the important thing is that they are creating something they feel is beautiful

bentham: the utility of the result is a reliable standard for aesthetic jugment. but this utility can also simply be tied back to pleasure

  1. IT WORKS CORRECTLY
  2. IT IS EASY TO CHANGE
  3. THE ABOVE IS ACHIEVED THROUGH READABILITY

should we care about program efficiency? (cpu cycles, battery usage, etc.). mass storage def affects some sort of beauty

in the end, it’s important to have beautiful tools to work with: we can write code forever if the machine/infrastructure on which we write it is pleasurable

he mentions program measurement as an important aspect of writing beautiful code: what happened to program measurement in the 21st century?

and then of course language design