in my experience, this is a major source of friction in programming teams, and deserves to be addressed more directly -- if i had it my way, i'd prefer that those who see programming as prose would be disabused of this incorrect notion, but i understand that this is my bias speaking, and not any objective truth :)
In fact my blog is called The Art && Science of Ruby
my point is less about these abstract concepts, and more about the perspectives that human beings have when engaging with this "stuff"
concretely -- when i'm playing a musical instrument, my brain is in a mode that is completely different than, and totally incompatible with, the mode my brain is in when i'm writing a program, or working on a math problem
it's one or the other
why's book reads to me as a "playing an instrument" perspective on a "writing a program" problem, which doesn't work for me, at all -- personally!
other people, it works, i get that
But in other languages I immediately feel cramped and constrained - and the code looks ugly to my eyes.
As for correctness and quality, number one is it has to fulfil the business requirements I’m being paid for (and I’ve shipped lots of crappy code that I’m ashamed of but the clients are very happy) and secondary, I like to look back at it and see something elegant that also looks good in an editor.
Of course, the definitions of elegant and “looks good” are the real questions here.
with ruby i feel (same caveats) like there is so much ambiguity that i can't build a coherent and predictable mental model of my program -- it makes me feel anxious and unsure
what you characterize as "cramped and constrained" i probably experience as "precise and unambiguous" -- it makes me feel calm and in control
no judgment from me about which of these perspectives is better or worse, i don't think there is any way to say that, just want to point out this interesting difference in perspective among practitioners