Live data from Hacker News

Knuth: Computer Programming as an Art (1974)

paulgraham.com

11–20 of 110 posts

Re: Knuth: Computer Programming as an Art (1974)

#11
Art can occur when the same person is both the source of the requirements for the program, and the implementor of the program. Much of the art is in the coming up with the specification: that is the concept in the art. The concept can be skillfully rendered into code. Concept + skillful rendering = art.

Re: Knuth: Computer Programming as an Art (1974)

#13
post #8

> Meanwhile we have actually succeeded in making our discipline a science, and in a remarkably simple way: merely by deciding to call it "computer science." Well not only that but we actually stuffed two misnomers in there. It is not really a science, and it is not really about computers. Chip design, graphics, storage, input devices is more about computers as such.

Of course CS is a (formal) science.

Re: Knuth: Computer Programming as an Art (1974)

#15

Art can occur when the same person is both the source of the requirements for the program, and the implementor of the program. Much of the art is in the coming up with the specification: that is the concept in the art. The concept can be skillfully rendered into code. Concept + skillful rendering = art.

I agree with this.

Perhaps a way to refine this understanding is to consider a different medium more typically believed to be artistic: film.

A director will construct the artistic vision (akin to the requirements/concept) and then work with film music composer to add music (analogous to development). Is the composer and artist practicing art? I would suggest that the word "craftsman" is better suited to the work the film composer does (assuming that they aren't also directing). That doesn't mean that a film composer cannot also be an artist in his/her own right, but in this context their input is arbitrarily limited by the artistic vision of the director... even if the director's vision allows for significant discretion by the composer.

Most development work, as you point out, has this separation of creative impulse from the implementing crafts. I do think there is "art" involved in programming, but only when the creative impulse is joined with the craft of development in a single mind.

Re: Knuth: Computer Programming as an Art (1974)

#16

Art can occur when the same person is both the source of the requirements for the program, and the implementor of the program. Much of the art is in the coming up with the specification: that is the concept in the art. The concept can be skillfully rendered into code. Concept + skillful rendering = art.

What about algorithm problems for with the most efficient Big-O solution is known? How can you "skillfully" render code when there is only one best possible way to do it?

I would argue that in those cases, programming is not an art because the arriving at the solution is very mechanical and there is literally zero room for creativity. Thus imo this answer isn't broad enough to fully define "Art"

Re: Knuth: Computer Programming as an Art (1974)

#17
post #8

> Meanwhile we have actually succeeded in making our discipline a science, and in a remarkably simple way: merely by deciding to call it "computer science." Well not only that but we actually stuffed two misnomers in there. It is not really a science, and it is not really about computers. Chip design, graphics, storage, input devices is more about computers as such.

>Chip design, graphics, storage

Actually all these things are studied in "computer science." At least, I did at my school.

Re: Knuth: Computer Programming as an Art (1974)

#18
I take for Science the natural and social sciences (see Wikipedia article on Science). In other words, Physics and all its sub divisions. In this respect, programming is not a science. CS is mostly a sub division of Math (also, not a science). Programming is a mix of engineering (that is finding an optimal solution given a set of known tools to a non-universal problem) and art - anything that allows for creativity in the forming of a finalized product. Most engineering disciplines have an aspect of art in them, but programming is perhaps the most artful thanks to the incredibly wide range of close-to-optimal solutions. But programming is also one more thing: a social process, the process of organising people and their work (which is neither science, nor math, nor art).

Re: Knuth: Computer Programming as an Art (1974)

#19
post #8

> Meanwhile we have actually succeeded in making our discipline a science, and in a remarkably simple way: merely by deciding to call it "computer science." Well not only that but we actually stuffed two misnomers in there. It is not really a science, and it is not really about computers. Chip design, graphics, storage, input devices is more about computers as such.

Of course CS is a (formal) science.

Is it though? It can certainly be formal. But so is logic, so is mathemetics. I am not sure there is a clear consensus if math is a science.

I can go with engineering (but licensed engineers might object to that), art or craft perhaps.

Re: Knuth: Computer Programming as an Art (1974)

#20
post #8

> Meanwhile we have actually succeeded in making our discipline a science, and in a remarkably simple way: merely by deciding to call it "computer science." Well not only that but we actually stuffed two misnomers in there. It is not really a science, and it is not really about computers. Chip design, graphics, storage, input devices is more about computers as such.

>Chip design, graphics, storage Actually all these things are studied in "computer science." At least, I did at my school.

Well not in mine. Computer engineering and hardware design were in a separate college even.
Post reply on HN