Programming Isn't Special(blog.glyph.im) |
Programming Isn't Special(blog.glyph.im) |
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.
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.
Very stinky topic to be honest and all the posts here are basically the same level of drivel as political discussions.
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 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}
fiHonestly, 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.
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.
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.
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.
I don't know what other profession weaves so many levels of abstraction to get to the final product.
"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.
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.
So I am.
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.
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
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.
Other industries are using it too. It's quite delusional to assume that just because people hate something they won't use it.
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
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?"
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
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.
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
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.