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"
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)
Comments
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"
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
True. My mistake. I was mostly referring to this statement:
This statement does not fully cover the definition of art.
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)
Use data with a smaller size N, and do something more interesting with it.
would the procedures you describe be classified as an artistic endeavor?