I am a programmer who likes aesthetics. I think about how aesthetic it is to not have to deal with certain production incidents for certain blocks of code because the typelevel computation tells me it would be a compiler bug if it screwed up. I like the feeling of realizing those 100 LOC could just be 10.
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.
> Artists understand that AI is bad for art. Why don’t programmers understand that we are artists?
Because the vast majority of programmers are bad artists, they just did programming for money. Only few actually cared about true craftsmanship, readability for every level of programmers while maintaining maximum efficiency, true passionate programming or quality open-source without caring how much money earn. AI makes bad artists the best as they don't care the taste but quantity. Same applies for bad programmers.
It strikes me that the author bemoans the state / lack of software literacy immediately after they take responsibility for obfuscating the descriptive parameters "callback" and "errback" in favor of "deferred" which became "promise" in the name of aesthetics. "callback" might be ugly but at least it says what it does and does what it says.
Programming as an art form always reminds me of the Einstein quote; "Pure mathematics is, in its way, the poetry of logical ideas". Both are just art forms you cannot appreciate without some understanding of it. Arguably thats true of all art actually, its just that the more familiar forms, like painting or music, can be understood at a basic level without an understanding, whereas mathematics and programming are essentially alien to the casual observer.
Programming is special. When you create art, music or prose, it's an artifact that is overwhelmingly consumed directly. I enjoy the art by looking at it, listening to it, reading it. I am mostly unaffected by art I've never seen (save for maybe that which seeps into popular culture around me).
Code as an artifact is different in that it can be given agency, ie turned into software. The output of that software can be valuable despite the code being unintelligible to the vast majority of people. Very few people have read e.g. the source code for the TLS encyrption algorithms, yet billions of people's lives depend on it.
I get what Glyph is trying to say here, but I do feel that programming IS different. I'm going to use that word rather than "special".
Many, I'd even go so far as to say most, programmers support and use open source. Open source is thought of in a very different way than I'd say most other traditionally-recognized artists relate to reuse of their work.
Where most composers, performers, painters, novelists (etc) will protect their work with very restrictive licenses, the open source community has much more permissive licenses (though still licenses, many licenses are "feel free to use it" unless you are making money off it).
When something is brought into the world through human intention, it has the possibility of being art. A human must stand next to it and say "This is mine."
The human role in the creation of art is non-negotiable.
Programming is less like the category "music" and more like the specific genre "sampling", in this case. Much of programming is reusing other peoples "samples", integrating them in new and useful ways.
In music, we have largely accepted that sampling is legitimate (though that did take some fighting to achieve), and that the musicians making music this way are legitimate artists.
I wish I could find the quote, I think it was on C2 Wiki, but alas, it was something like:
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.
Programming can be art in the way that cooking can be art.
Most of it is in fact NOT art but simply done to solve a problem.
I used to think that programming is an art; that you get paid for the code. Too bad it took me decades to realize how wrong I was. AI sucks, it sucks the soul from this profession. But in the end, the code it produces works, so who cares?
Go talk to an artist, and they'll tell you art is a form of engineering, and it requires the artist to understand what works, what doesn't, and why, in practical & scientific terms. The corporate world is dogmatic, self-destructive, FOMO-obsessed and then some. It considers _doing work that matters_ to be a special privilege, and that you should be happy and thankful for meaningless work instead. The corporate world is practically anti-capitalist and anti-real.
If anything, that corporate world fulfills the popular perception of art - impractical, pointless gesturing and posing - rather than what real art intends to do, which is to gain a deeper understanding of the real world and show it to others. Art critics tend to hate it when an artist explains how art is made, preferring an explanation of magical genius; but that's their problem, not art's problem.
I strongly agree that programming is art, but I think there's a difference between other art forms.
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.
Hot Take: AI Isn't Special: When someone learns through reading a bunch of books on a subject (art, programming, music), we don't call it theft and demand they be able to recite the specific source of where they learned something and demand they pay the original authors for their use of it. AI Isn't Special.
Are there simply two cultures among programmers? Along similar lines as the two cultures of mathematics? One motivated by the process itself, by esthetics, by abstractions, ideas. The other by solving problems. And then obviously these two cultures react very differently to AI.
Before AI, some programming could be considered be considered art. There are definitely codebases that are more beautiful than others. But now with introduction of AI you can’t consider any code as art as you have no idea who produced it. Yes, it may be looking good, but from that perspective it’s just randomly produced without the thought of being art. And at some point it will be refactored into oblivion by something that doesn’t care.
Programmers don't need to justify code as art to reject AI. Programming is building and people who care about building do so because they take pride in the craft, because they take joy in mastery, because they are relentlessly curious, because they learn by doing, because they want to manifest the abstract because it's a natural desire to leave a mark, a legacy.
AI is the antithesis. You don't build, you commission. Mastery requires struggle, AI eschews it. Mountains of slop bury your handcrafted work, your culmination of effort, your capacity to inspire others as you yourself were inspired.
The reason you see less rejection of AI in tech circles is because tech is infested by capitalists who see programming as a means of extracting a buck, not as a craft. AI made their stripes more visible.
I am so fascinated about this angle -- whether programming is art or not. This is one of the things that got me to HN recently and I love reading these discussiong as a non-programmer.
While I love art, I am not an art historian or critic, so the definition I have for it is highly subjective -- in my opinion one of the functions of art is communication with other people (often through time and space). For art to fulfill its telos, so to speak, the message that it carries must also be read (heard, perceived) by somebody and then, if it's great art, eventually someone would want to respond to it.
The message can be simple, complex, subversive, stupid, clever, it can be an observation about world, a joke, a profound truth, a memory, a question, a snapshot, a curiosity, a trick, and a ton of other things. And sure, the message can be distorted, misunderstood, twisted, forgotten, lost, etc, but if no one "reads" it and no one "talks" to it, it might as well be glossolalia.
So my question for folks who do consider programming art -- do you "read" other people's code like this? Do you exchange ideas through code? Have you ever trolled great coders of the past through your code or tried to prove them wrong?
I hope my question doesn't come off as complete nonsense.
P.s. I know that there are programming manifestos which to me sounds like there is a layer of meaning that the code carries and this meaning goes beyond pure machine instructions or software functionality, but I'd love to read answers of actual programmers.
Not sure if the author is reading HN, but there is a typo:
> we take the total likelihood of those moments of greatness to (->from) “definitely sometimes” to “never”.
My art is thinking of ways to help my customers. They don't know what is possible or what data they have in their other tools. I don't see that being taken over by ai just yet, because they don't know what to ask.
Programming is special, as it's basically translation on steroids.
I don't know what other profession weaves so many levels of abstraction to get to the final product.
I would define Art as something that has meaning and intentionality across multiple disciplines.
Very good example about Deferred.
I will argue anything by anyone can be art. Eg a business run by an AI can be art.
I agree, and I've considered my code to be art for a long while. Take for example my coffeescript parser: https://github.com/jaekwon/JoeScript/blob/master/src/joescri...
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.
A few points:
> Across all creative industries, there is a concerted push to reject this technology. Yet, almost unique among creative fields, many experienced programmers remain convinced that it’s fine to use “AI” for programming.
How many artists claim that you must make your own paints and construct your own paintbrushes for it to be "art?"
A lot of "AI" in programming isn't replacing programmers or replacing making novel ideas; it's automating mundane tasks so that the programmer can pay closer attention to critical details. Otherwise, when a programmer is truly hands-off and just babysitting an AI, is the program really an expression of an original thought or just the equivalent of a custom-made paintbrush and a custom-made paint; for some other endeavor?
> However, code that is intentionally aesthetically designed tends to be important, both socially and technologically.
I spend a lot of time making sure that code is understandable; often times spending more time on the aesthetics than it took me for the original version. I've found AI very helpful with this, because a mindless refactor that would take me 30-90 minutes, I can have AI do in about 3 minutes.
> Berger reveals that the reality of this portrait is that a poor old painter needed some work, and some officials probably thought it might be nice to have an official portrait. So they paid some money to the poor old man, and he painted it, and then they had a painting.
Today this would be a photograph. Ironically, photography means that painted portraits are a lot more creative, because now we expect to the painter to take more liberties.
> It does make me a bit sad that we don’t have much of a critical reading tradition in the software community. Literate Programming is often praised, but rarely practiced.
Uhm, this is what code reviews are for! And, to be quite frank, I've found that AI code reviews are some of the best I've gotten, because the AI is able to do very deep dives that would take a human reviewer hours, or even days, to do.
> Programming isn’t special. It’s just Art, and Art is the most human — and thus, the most universal — thing that there is.
And this is where the author lost credibility. Programming is more like the inside of the statue of liberty. The art is the result, not the code inside of it.
Completely disagree. Programming is engineering. Almost all software in existence exists to solve problems, and almost all interaction with software are with the end product, rather than the code. For code to be qualify as art, the definition of art has to be diluted to the point of meaninglessness. Is an Ikea cabinet art too?
Even when models are capable of producing convincing illustrations in any style, it's still generally easy to tell what's AI generated most of the time due to lack of unique artist's style, taste, and meaning. There's nothing that makes an AI-generated piece of software worse than a human-written one.
Personally, I also hate my job less because of AI. I get to focus on solving actual problems, architecture, and code quality. Almost all pre-AI code at my company was just layers of hacks upon hacks. With AI, I actually get to write code that's up to my standards because doing things properly is nearly free in terms of time and effort.
The post is well intentioned, but misses the point.
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.
We’re in automation. The point of programming is not to do the same thing again.
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 think you can agree or disagree with this post; I expect most to disagree now, though I agree.
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.
The whole idea is ignoring why people program or create music, illustration or w/e.
Think through an art career, some kid goes through high school, a fine arts degree or something. You get a job working on movies, video games something flashy. Now AI is going to take that All away.
Programming, maybe you start off making games or hacking,then you go too School and get a job. The job is a whole team or sr swes who don't care, your going through project planning ceremonies, playing politics, working on communication skills so you can survive in the corporate environment. You're just working on connecting some crm to some other API. You had to grind Leetcode problems to get that pointless job. What exactly are programmers protecting by hating ai? The job already sucks, it's already pointless, and the first world has been threatened by being replaced already by cheap 3rd world employees
Programming isn't special, definitely. Programming can be art, writing can be art, painting can be art.
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.
> Programming isn’t special. It’s just Art, and Art is the most human — and thus, the most universal — thing that there 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.
Said this in a thread already but bears repeating at the top level:
Coding is not Programming
Coding is certainly a highly adjacent skill to programming, but coding is not the same as programming.
To quote Leslie Lamport: "coding is to programming as typing is to writing."
I don't see it. Programming CAN be used to generate art, but is not an art by itself.
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).
I instinctively want to agree with this but I feel like there's some pretty jarring logical jumps made to equate programming to the more obvious art forms that people put time into ~because~ they want to artistically express themselves.
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.
This is so tediously shallow.
Sure, some programming might be art. I've written programs that could qualify. But most isn't, unless you also want to count preparing a balance sheet for a corporation as art. Get over it.
I'd love to take a principled stance on this because I do consider code an art or at least a craft and I appreciate a program written in a unique and clever way. In retrospect, SO MANY of my personal projects[0][1][2][3] over the years were DSLs that affected how you write something and how pretty or type-safe the code ends up being. They are libraries that can only be appreciated by another programmer, they mean nothing to an end user. It appears that whole genre of library will mean nothing to anybody in a few years. Shoulder of Orion, Tannhauser Gate, etc. etc.
[0] https://github.com/rspeele/infix.el
[1] https://github.com/rspeele/LicenseToCIL
[2] https://github.com/fsprojects/Rezoom.SQL
[3] https://rspeele.github.io/FParsec-Pipes/Intro.html
Yet, it's utterly hopeless to try to take the same stance visual artists are nobly holding. Of the programs I use daily, how many have I ever even glanced at the source code? I could count them on my fingers. And I'm in the target audience: a programmer, enthusiastic about the trade, one who has contributed to open source...
Conclusion: within a rounding error of NOBODY cares about the code. Of the weavers who were displaced by the automated looms, or the furniture-makers displaced by mass produced pressboard, some of the most skilled could still ply their trade for the rich who wanted to flex their bespoke handmade goods. Programmers writing code by hand will not even have that luxury market. It makes me depressed but I don't see any way around it.
My hope is that I can use my knowledge, willingness to spend long hours fighting with a computer, and industry experience to at least make better software with agents than the average vibecoder. I sadly don't think I'll get anywhere trying to play John Henry vs. the Steam Drill, trying to beat it with my hand-typed code. Maybe somebody who's 10x the dev I am can do that, and Godspeed to them, but I thought I was pretty decent and I don't have a chance.
Hell, it's not even possible to prove any code was written by hand, other than by having uploaded it pre-2024ish. For this reason I really feel bad for those coming up right now, who have the same enthusiasm and fascination for Real Programming that I did, but no way to prove themselves and no motivation to in a world that values that skill less all the time.
Programming is special in the sense that it is one of those direct experiences of mere language instructions being used to make things work - a form that resembles incantations and sorcery of the old times. Where literal stones can speak and obey our commands.
Of course there are many other indirect instances of language being used as the primary tool to move. But programming happens to be a direct raw unadulterated first hand experience into building things with nothing but raw language primitives.
Where code is ideas willed into existence.
programming is not usually art, your own code / programming might be art, and if so, that's great, but literally I can dig a hole in my backyard to run a cable out to the shed, do an amazingly thoughtful job on it and declare it "art", and maybe it is, but then, backhoes are "destroying art" ? I mean what are we doing here? When I have an LLM do code with me, if it's code I'm publishing, I'm telling it what to do, how to do it, the whole architecture is mine. That it came up with some for-loops and unit tests, really who cares? Is my trench out to my shed no longer "art" if I used a backhoe to automate digging out all that dirt? I mean, I am actually a musician. I dropped out of college to be a drummer. Guess where a third of the drumming jobs went in the mid eighties? Drum machines! nobody seemed to have a problem with that. It didn't even kill drumming. Let those of us who are pretty bored with cutting/pasting/typing/backspacing/deleting/googling every stupid API we never need to look at again, have our tools.
Why is this flagged? I find it a fair essay. Why do philistines get to spoil all the fun around here?
This is slop. It’s just human written.
Edit: why would anyone flag tfa? There is no anti-flag vote right?
"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.
> what it’s doing to our industry, but we are using it anyway
Other industries are using it too. It's quite delusional to assume that just because people hate something they won't use it.
People in this thread not reading the article and expressing their point of "the 10th api you've written for a business is not art" as if the points of mundanity are not addressed in the article is infuriating.
To many, it is just another tool in the toolbox to solve a problem, to get from A to B. I find coding rewarding, in the same way I find puzzles rewarding. But if I had any advise, it would be not to let it define you as a person.
sounds like art people clueless about engineering again
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
> Artists understand that AI is bad for art. Why don’t programmers understand that we are artists?
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?"
I think that AI is the best thing that happened to art. It elevated _all_ human art to this mystical realm. All human work became sacred, as it is unique and bears the Secret Fire. Whatever you do as "art", as long as you didn't use AI, it automatically bears the sacral stamp. Can go to a gallery, whatever. All human art is now elite art.
Mel's famous chess demo is undeniably a work of art. It was also completely unmaintainable. There's a tension between artistic expression and fulfilling business requirements. One could argue that `deferred` is good because it lowers cognitive complexity and makes fulfilling business requirements easier. Whether or not it qualifies as "artistic" or "beautiful" is entirely incidental.
There's also the unfortunate matter that most software is closed source. All most will ever see is the user interface and the API surface. While I am a believer in art for art's sake, I don't think you can blame programmers for feeling like the bottom of a filing cabinet behind a locked door isn't the best place for artistic expression. Perhaps, one could argue, what's more important is the finished product and the impact it has on the world. (Obviously this doesn't apply to actual creative-coding hobbyist spaces, ex: the demoscene, game jams, etc.)
That said, compassionate coding, good documentation/comments/names, and solid architectural design are all vital in software development. This fundamentally requires more care and attention than automated vibe-coding tends to provide. But these qualities are still possible to achieve in an AI-assisted workflow. It's a question of striking the balance between fulfilling business requirements, not alienating developers, ensuring code quality, and limiting the fallout of giving boatloads of cash and political power to AI corporations.