Programming Isn't Special

blog.glyph.im

145 points by ingve 14 hours ago


perrygeo - 9 minutes ago

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.

InvisibleUp - 2 hours ago

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.

dumindunuwan - 2 hours ago

> 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.

winwang - 13 hours ago

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.

linsomniac - an hour ago

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).

RunSet - 2 hours ago

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.

bodge5000 - 13 hours ago

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.

linsomniac - an hour ago

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.

https://en.wikipedia.org/wiki/Sampling_(music)

bentt - 4 hours ago

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.

fnoef - 28 minutes ago

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?

sausagefeet - 12 hours ago

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.

linsomniac - an hour ago

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.

kerblang - 2 hours ago

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.

retrac98 - 12 hours ago

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.

bambax - 12 hours ago

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.

Aozora7 - 2 hours ago

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.

jhrmnn - 12 hours ago

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.

purpleflashing - 4 hours ago

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.

he0001 - 12 hours ago

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.

watermelon0 - 2 hours ago

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”.

tiku - 3 hours ago

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.

hartator - 3 hours ago

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.

gwbas1c - an hour ago

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.

hgs3 - 2 hours ago

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.

- 12 hours ago
[deleted]
barrenko - 13 hours ago

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.

jaekwon - 13 hours ago

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.

dejected_frog - 12 hours ago

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.