Live data from Hacker News

Knuth: Computer Programming as an Art (1974)

paulgraham.com

51–60 of 110 posts

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

#51
post #19

Earlier quoted context omitted.

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.

I've heard mathematics classified as a "structural science", as opposed to the "natural sciences". Theoretical CS fits into that "structural science" umbrella term very well.

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

#52

Earlier quoted context omitted.

What part of computer science is experimentation?

I am tempted to write: "what part isn't?" Seriously, just about everything we do in computer science is experimentation, at least if it involves... physical computers . Every time we run a program, we run an experiment. At least if we have some expectation of what we want the program to do. Every time we write a test, or run a test suite, we are running an experiment. Every time we implement some sort of abstraction,…

You're describing software engineering, not computer science.

CS is big-O, Chomsky hierarchy, finite automata, type theory, and computability classes. It's the study of algorithms & data structures, not their implementations. In other words, CS is a branch of math.

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

#53

Programming is much more of a craft than it is either an art or a science. Good craftsmanship combines beauty with utility, as does good coding. Programmers work with abstractions, rather than with wood or clay. And their craft is as cerebral and intellectually demanding as an art or a science. But it's still a craft.

Michelangelo was working with chisel, colors, palette - was he a craftsman? How about guys that were replicating his work? They would have been closer to the 'craftmanship' side.

Programming is art for many of us. For some it's a craft. If you are original and independent thinker in our profession, have creative ideas nobody had prior to you, you are much closer to an artist. If you just reuse what somebody else created, you are closer to a craftsman. Where do you stand?

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

#54

Programming is much more of a craft than it is either an art or a science. Good craftsmanship combines beauty with utility, as does good coding. Programmers work with abstractions, rather than with wood or clay. And their craft is as cerebral and intellectually demanding as an art or a science. But it's still a craft.

you're absolutely right, i've seen beautiful, useful interfaces impossible to maintain due to lack of backend skill, i've seen great core functionality let down by bare-boned interfaces that don't let the user easily do the multiple parts of a particular task without too much effort involved in manually doing each part of it.

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

#55
post #52

Earlier quoted context omitted.

I am tempted to write: "what part isn't?" Seriously, just about everything we do in computer science is experimentation, at least if it involves... physical computers . Every time we run a program, we run an experiment. At least if we have some expectation of what we want the program to do. Every time we write a test, or run a test suite, we are running an experiment. Every time we implement some sort of abstraction,…

You're describing software engineering, not computer science. CS is big-O, Chomsky hierarchy, finite automata, type theory, and computability classes. It's the study of algorithms & data structures, not their implementations. In other words, CS is a branch of math.

You're describing theoretical computer science:

Theoretical computer science is a division or subset of general computer science and mathematics that focuses on more abstract or mathematical aspects of computing and includes the theory of computation.

https://en.wikipedia.org/wiki/Theoretical_computer_science

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

#56
"How did they develop their skill? The best film makers through the years usually seem to have learned their art in comparatively primitive circumstances, often in other countries with a limited movie industry. And in recent years the most important things we have been learning about programming seem to have originated with people who did not have access to very large computers. The moral of this story, it seems to me, is that we should make use of the idea of limited resources in our own education. We can all benefit by doing occasional "toy" programs, when artificial restrictions are set up, so that we are forced to push our abilities to the limit. We shouldn't live in the lap of luxury all the time, since that tends to make us lethargic. The art of tackling miniproblems with all our energy will sharpen our talents for the real problems, and the experience will help us to get more pleasure from our accomplishments on less restricted equipment."

So true. Robert Rodriguez filmed El Mariachi with almost no resources. It's why the demoscene produced - and still produces - such amazing creations within its self-imposed strict limits. It's one of the reasons why the Raspberry Pi is so popular and why you see the most beautiful ARM assembly on the Gameboy.

And conversely I think it's why Web development is collapsing under the weight of too many shiny things. It's lethargic and living in the lap of luxury. I watched a video the other day of AirBNB talking about the evolution of its Web site. The 2008 version was fine: Rails, a database and dynamic page output. The 2015 version was insane: Rails, React, Node, all sorts of dependencies, some stuff I'd never heard of but that the speaker assured was good, complex mobile optimization when you could instead, you know, just write lean and mean mobile-friendly HTML.

Limit yourself instead and see what happens - the results might just be awesome.

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

#57
post #53

Programming is much more of a craft than it is either an art or a science. Good craftsmanship combines beauty with utility, as does good coding. Programmers work with abstractions, rather than with wood or clay. And their craft is as cerebral and intellectually demanding as an art or a science. But it's still a craft.

Michelangelo was working with chisel, colors, palette - was he a craftsman? How about guys that were replicating his work? They would have been closer to the 'craftmanship' side. Programming is art for many of us. For some it's a craft. If you are original and independent thinker in our profession, have creative ideas nobody had prior to you, you are much closer to an artist. If you just reuse what somebody else crea…

I think it's more of an art in the classical sense (which is like a craft), in that we are artisans rather than artists.

The difference being that we primarily create things valued for their utility, rather than their aesthetics. Video games being the possible exception, although even there the programmers are essentially building a vehicle for the art-stuff (story, graphics, gameplay, music) to shine through.

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

#58

Programming is much more of a craft than it is either an art or a science. Good craftsmanship combines beauty with utility, as does good coding. Programmers work with abstractions, rather than with wood or clay. And their craft is as cerebral and intellectually demanding as an art or a science. But it's still a craft.

I agree, craft is much more appropriate. I think this is a confusing essay, because in everyday speech "art" is employed to mean something very different from "an art" and we get lost in semantics. The continued references to obsolete definitions confuse things further. In practice, the phrase "an art" is usually used in the same way as "an artform", as it is not meant to be taken literally; a commentator may say "th…

Imperial College, London has the Department of Computing (in the Faculty of Engineering) for this very reason.

http://www.imperial.ac.uk/computing

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

#59
post #22

Earlier quoted context omitted.

Title now changed from "Paul Graham: Programming as Art" to Knuth:

OK, but why does PG host this? It's freely available: http://dl.acm.org/citation.cfm?id=361612

Presumably same reason why someone re-tweets something and now it's on their profile. Or he just felt like it.

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

#60

"How did they develop their skill? The best film makers through the years usually seem to have learned their art in comparatively primitive circumstances, often in other countries with a limited movie industry. And in recent years the most important things we have been learning about programming seem to have originated with people who did not have access to very large computers. The moral of this story, it seems to m…

I think you're mixing up the intended use of the "toy project," i.e. skill development, with the complexity of a real world project with a growing number of use cases, including a proliferating number of mobile devices and features –– just something to keep in mind.
Post reply on HN