Comment by dejected_frog
14 hours ago
If you see the whimsical in a PR changing some column name in a table in a billing system, or you feel the magic and fantasy of a REST API, or yet, God forbid, the emotional undertones of fixing a NPE because the previous change did not consider that a field was optional, then you may have trouble to perceive the difference.
I, at least, never wrote a stock management system to explore the depth of human emotions.
Hmm. I had an issue once with numpy shape mismatch errors appearing after 18+ hours of computation. Frustrating, because it could be caught at compile time.
Later, I learned some typelevel programming (in Scala), and by encoding a digital (binary) adder and multiplier at the type level, I showed -- at least to myself -- it was possible to compute and check linear algebra shapes at compile time (without a compiler plugin). It was rather magical and funny to think that I just embedded basic digital logic in such a higher-abstraction world.
It was slow for the inputs I cared about, so I added some optimizations, like an if-statement at the type level, for example, so that it bit-shift for multiplying powers of 2 (multiplication for tensor products). The compile time difference being palpable was a testament to how "some 'ideas' are surprisingly close to others" (err, 'ideas' ~ 'numbers' in this case). There is a connection to the p-adic numbers here, courtesy of dyadics, and some connection to the more-natural "last-mile" problem.
It's not REST, maybe. But I felt it was magical.
I agree that solving logic puzzles is very fun. I even pointed at things such as Advent of Code in my original reply. Computer programming can be very fun and satisfying to do. It is the reason why I became a software developer.
But it is not the same sort activity as writing a short story, or composing a a symphony, or painting a still-life. Those are done with different purposes. Art is something done with the purpose of exploring emotions, aesthetic beauty, question societal norms, etc.
The closest programming gets to that is if you are writing a jingle for advertisement, or drawing a signpost, or writing a technical article.
I disagree. It's not just a logic puzzle. If I haven't communicated that to you, that's also my failure. I've written stories short and long as well. It's a different kind of art.
"Art is something done with the purpose of exploring emotions, aesthetic beauty, question societal norms, etc." I apologize if my emotions and aesthetics are not communicated, but I can only say that they were there. As for societal norms, I doubt that "embedding digital logic in types" is a "norm" of the programming society.
And though it's an appeal to patterns, I will have to bring up the general repeated failure of humanity to recognize art.
4 replies →
You have missed out on _why, perhaps? I am old enough to remember him, and Camping, and the chaotic, brilliant nature of his work.