News for hackers. Stuff that matters.
Re:Knuth: Computer Programming as an Art (1974) by kazinator on Wednesday January 13, 2016 @01:00AM (#10892554)
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) by sbuttgereit on Wednesday January 13, 2016 @01:26AM (#10892631)
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) by crimsonalucard on Wednesday January 13, 2016 @01:26AM (#10892632)
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) by kazinator on Wednesday January 13, 2016 @10:29AM (#10894960)
My comment doesn't assert that programming is always art.

Slathering paint onto a surface isn't always art.

Big Oh has to do with large N.

"If a program manipulates a large amount of data, it does so in a small number of ways." --- Epigram 5, Alan Perlis

"For every polynomial-time algorithm you have, there is an exponential algorithm that I would rather run." -- Alan Perlis

"Don't do things that scale" -- P. Graham

Re:Knuth: Computer Programming as an Art (1974) by crimsonalucard on Wednesday January 13, 2016 @10:47AM (#10895117)
True. My mistake. I was mostly referring to this statement:

>Concept + skillful rendering = art

This statement does not fully cover the definition of art.

Re:Knuth: Computer Programming as an Art (1974) by Someone on Wednesday January 13, 2016 @03:14AM (#10892960)
Change the constant.

Change the x that the big O is about, for example by using vector instructions.

Implement a theoretically less efficient algorithm that is faster (examples: switch to a O(n^2) sort for small data set, or to a linear search for smallish arrays)

Re:Knuth: Computer Programming as an Art (1974) by kazinator on Wednesday January 13, 2016 @10:36AM (#10895012)
Use data with a smaller size N, and do something more interesting with it.
Re:Knuth: Computer Programming as an Art (1974) by crimsonalucard on Wednesday January 13, 2016 @10:45AM (#10895087)
would the procedures you describe be classified as an artistic endeavor?
Re:Knuth: Computer Programming as an Art (1974) by bottled_poe on Wednesday January 13, 2016 @02:30AM (#10892839)
> Art can occur when the same person is both the source of the requirements for the program, and the implementor of the program.

Unfortunately, that is frequently also the recipe for a big ball of mud [1]. I guess the beauty is in the eye of the beholder...

[1] http://www.laputan.org/mud/

Re:Knuth: Computer Programming as an Art (1974) by fsloth on Wednesday January 13, 2016 @03:42AM (#10893055)
Causal isolation from other humans is a risk factor in muddled thinking and poor architecture. Adding people to a project does not make it any less likely to become muddy, though.