I sometimes tell people of when I came down from Mt. Fuji, there were wispy clouds and grand nature below me, picturesque like a painting. At that time, I likened it to the beauty I felt when I was first learning Haskell. But I say it because I expect it to be a rare kind of sentiment.
The thing with art and music is that they are easy to appreciate, and the appreciation grows deeper with more consideration. I love reading the placards in museums and attempting to understand why the artist did what they did, I like it more than even looking at the piece itself.
Code (and math, for that matter) is almost the same except for one key difference: they are not easy to appreciate without deliberate training, training which is often far to the side of anything most people need/want to deal with.
I get what you mean (and agree w.r.t. math/code) but notably, I think appreciation for a lot of things still accumulates if you put in the work.
As an amateur violist, I can attest that I gained a totally new appreciation for most of the pieces I've studied and played in an orchestra in the past.
This not only includes "unknown" classical music from different eras, but also the obvious (popular) candidates like Beethoven's 6th, Dvořak's 9th and Grieg's "Peer Gynt" suites.
And there's a lot of great music one needs to get into first; for expample: I love Tool songs exactly for that, and there are certainly more obscure artists :)
So, I suspect the thing about maths and code is mainly just caused by the fact that people can go through life just fine without really interacting with them on the level required to develop the smallest bit of "taste" (as opposed to e.g. music).
Hence we can't take this lesson to the workplace.
If you're an artist, programming is your clay, if you're an engineer, programming is your building material.
Point being, which I always connected with, was that programming is a medium for expressing a lot of things. Just like you can use paper and pen to write poetry or a dry technical manual. And everyone gets to decide how they see it and use it.
I cannot imagine lines of code be exhibited in a museum. I can appreciate smart or witty solutions for a problem, but that is not what art is. I can appreciate a quick solution for a Rubik cube, I can even see the Rubik cube itself in a museum, but I cannot imagine the steps or instructions for that quick solution in a museum (unless that paper has historical significance).
Linus explaining taste in code: https://www.youtube.com/watch?v=78Y17hAo96I
Fast inverse square root https://en.wikipedia.org/wiki/Fast_inverse_square_root
Being a humble rank-and-file programmer I did produce pieces of code that I will be proud forever as well, e.g. this snippet to control the length of $PWD in bash that I still use almost unchanged 25 years later:
# How many characters of the $PWD should be kept
local pwdmaxlen=30
# Indicator that there has been directory truncation:
#trunc_symbol="<"
local trunc_symbol="..."
if [ ${#PWD} -gt $pwdmaxlen ]
then
local pwdoffset=$(( ${#PWD} - $pwdmaxlen ))
newPWD="${trunc_symbol}${PWD:$pwdoffset:$pwdmaxlen}"
else
newPWD=${PWD}
fiWorks like the Black Perl[0] are decidedly artistic in nature. Demos (in the demo scene sense) are an artistic endeavour. Competitions like the Obfuscated C Contest or the Underhanded C Contest are very much judged on aesthetics.
Honestly, I can. The author of this article wrote Twisted. I certainly can imagine a museum where computer history is explained along with all the software achievements that made a huge impact on software engineering as a whole, and Twisted would have a place in it.
A novel is both how it's made and what it is, and so is a piece of music.
Programming produces two different outputs: the code and the program. What users consume, and care about, is the program. The code may or may not be read by other programmers but it's not the main output. (It would be extremely weird to output code in a language that can't ever be run.)
And so I think the beauty or effectiveness of the program matters more than the beauty or elegance of the code. Those are not entirely orthogonal of course, but only loosely coupled.
A programmer should care a lot about the program, and a little less about the code. Vibe programming (where the programmer doesn't care one way or another) to me is a crime; but you can certainly use AI to code, and still care about the finished product, and make it good.
This is art.
And I have much love for good frameworks and design.
I'm fortunate to have started gno.land before AI, yet just late enough to finish it with AI. The GnoVM (gno.land) is also art -- go interpreting go, but in a novel multiuser context, a re-imagining of TBL's WWW in Go and markdown. AI was used for final touch polishing. Couldn't have ended up any better.
AI is not yet there to grok the artistry of code. But it will eventually, and humanity will benefit from it necessarily, not because it is demanded, but because people like us desire it. Push forward.
Well written article.
--
p.s. plug: gno.world, find me there.
I don't know what other profession weaves so many levels of abstraction to get to the final product.
The role of a developer (and most IT roles), at its core, is to make yourself obsolete, move on, rinse and repeat.
Feature / scope creep may have blindsided some.
I’m happy most programming is going away. I was capable but now I’m even more capable at creating solutions. The art will stay.
"Artists understand that AI is bad for art." Art is in the eye of the beholder, don't tell me what makes for bad art.
You know what AI is bad for? Menu's. Our butcher just send out a pamphlet with discounts for the week. There is sushi on it that looks like plastic covered in slabs of candle wax, inside is avocado but only at first glance, when you look closer it looks more like a mushy bean. The nori looks covered in sesame seeds, but on closer inspection the seeds form a network, like a fungus. In my head I can just feel the horrible mouthfeel when I look at the image. Weird that I find it so disgusting. It seems that some people do, some don't really see the problem with it.
I also recently say on a banner on a Vietnamese restaurant a shrimp.. But only at first glance, because a shrimp is not a full taurus, like a pink striped donut.
Most of it is in fact NOT art but simply done to solve a problem.
So I am.
What the author really wants to say isn't "programming isn't special" but that "programming is art to the same extent as music or painting because people do both things for money within capitalism" which I just don't think holds up.
But either way, look at how readable this post is, and consider whether AI-powered writing gets even slightly close to that ability to provoke agreement or disagreement.
Most programming isn't art, just like most writing, most painting, etc isn't. The programming you do in your day job very probably isn't art. The programming you do for a demoscene program, in my opinion, definitely is.
The OP may be fortunate to have worked on stuff that required some kind of artistic thinking, but the vast majority of code produced—as the vast majority of illustrations—is not art but a means to an end, namely providing value to users and stakeholders, and to generate profits.
While you can engage in the act of programming from the angle of craft and while you may have started to code because you really enjoyed how it felt like solving a puzzle, programming is primarily a profession. It is a lot closer to accounting than to painting.
There is still space for coding without AI, stuff like advent of code, etc. While it may sound old fashioned as a lot of people did it to practice code challenge for interviews, some did that simply for the pleasure of coding.
But when your job is working in some system for a corporation, big or small, there's no space there for craft or passion, just the reality that what matters is the sausage, not what went into making it.
You may (and probably should) still care about certain engineering principles; correctness, performance, readability, maintainability, etc. But that's about it, whether you write the code or an LLM does is immaterial.
I, at least, never wrote a stock management system to explore the depth of human emotions.
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.
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.
"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.
While your tale sounded pretty interesting, it is the same sort of interesting as solving a math puzzle. I enjoy math puzzles.
Whatever moves people, however people wish to express themselves, whatever people find beautiful, all that is "art" to me. There's much which is art to others, perhaps, that I would not understand as art for myself.
Art is something done with the express purpose of aesthetic appreciation, eliciting emotional responses and so on.
Nature for example can be beautiful, and certainly can draw out emotional responses from people. But unless we bring religion into the mix, it is not made with any purpose, it simply is.
The closest thing I think of programming as art is obviously videogames, if I consider that game mechanics are added with the undeniable purpose of inspiring in the player emotional response, it can certainly be done with aesthetics in mind, and I can think of a few examples where it is used to question norms.
Are they practising an art? Surely. Is it relevant? Nah.
"You've got to make the back of the fence, that nobody will see, just as good looking as the front of the fence. Even though nobody will see it, you will know, and that will show that you're dedicated to making something perfect." — Paul Jobs
Half shaved alcoholic Barry could slap some bricks together with a cigarette hanging out his mouth and it’ll last a century.
Aesthetics and utility are not always as correlated as you might hope.
Other industries are using it too. It's quite delusional to assume that just because people hate something they won't use it.
And also we do worry, but not in "replacement" way but just "using AI to create bad code with no proper oversight". It's absolutely enabling clueless to develop crap apps
imo, that's happening because 2 cultures formed under extremely opposite incentives - "I do stuff and anyone else also doing it is taking my money away from me" vs "Please someone else do same thing as me, it would be so awesome/easier"
the closest art-relating thing to GPL ideals are fanfics. And opinion about ai-generated fanfics has been much closer to our coders view - "sure a lot of it is bad, maybe there's also too much of it, but... there's also some good stuff, so it's good?"
You don’t know many artists if it is. 21st century art, especially, could hardly be more inclusive. Artists are desperate for people to be able to learn to express themselves. Indeed, widening access to art is the motivation of almost all arts funding and patronage (which is what the anti-copyright people think artists should be content with)
and some of my favorite works have been shutdown for background art
Artists are, in general, extremely keen for there to be more art, more artists and more opportunities for artists. It’s not inconsistent with them wanting those artists to do their own work; indeed that is an essential part of it.
I'm saying artists don't want anyone doing *the same art they do*
GPL ideal gives everyone ability to copy-paste and expand anything, with only obligation to allow everyone to do the same to you. Artists culture is far removed from that
---
even more than that, I see people arguing for MIT(!) to lessen the legal burden on fellow programmers
that's the kind of cultural difference I want to point out
It’s not, particularly. Plenty of credited remixing, artistic references, echoes, parodies, pastiches, collaborations, licenses, rolling memes, all sorts of stuff. There’s quite a lot of CC0 stuff out there too.
The permissions (cultural or otherwise) are different depending on the reuse, but no artist minds a credited remix. People just don’t like theft.
creation of new competing products is seen as a catastrophe by sellers, but as more competition by buyers
and our concern as a community basically has been "but do we have enough anti-monopoly protections in place?"
Very stinky topic to be honest and all the posts here are basically the same level of drivel as political discussions.
Ten years from now "programmer" will describe machines and mechanical processes, not people, in a tradition similar to what happened with "computer" after the 1940s.
But in the end? All that 'really' mattered was their final product, and once it could be automated - we quickly reached a point where most people no longer even know these people existed. I suspect many of the exact arguments made in argument of the longevity of programmers of today were probably also made about the longevity of computers in the past, as it became clear that 'computing machines' would be able to complete much of the same work.
Nobody except the programmers, I guess. Quite a few of us care about the craft
I think art is different from the rest in that it lost utilitarian value. In other words, Art is degenerative by definition.
I feel like both of those have fewer paths to a successful end-product, and minor issues in the final product are way more visible to the users thereof.
We tend to have a pretty high tolerance for minor software "quirks", unlike if the hot water system or the drains start acting up...
As a consumer of graphics and music, let me "agree" for just a moment. I might not care how the music or image came to me. I just care that I like the final product. Which is why most paintings are trash, because I prefer highly saturated colors.
...I suppose this is somewhat true of many people already.
Not necessarily. There are niches in programming that I think could count as art (e.g. live-coding, algoraves) where the programming as performance and the visualized code become part of the artwork. But I think this is not what the OP has in mind.
Maybe programming needs to die first, to be able to be elevated to an artform.