Programming Isn’t Special

58 points by hugoarnal 11 hours ago on lobsters | 29 comments

kornel | 9 hours ago

Code can be art, but most code exists only to solve a problem.

Paint can be used to create an artwork, but most paint in the world is used for weatherproofing and uncreative solid surfaces.

I wish more uncreatively painted solid surfaces were creative. A mural where I’d take my kids was “upgraded” to a stale “modern” gray and it completely changed the mood there.

Removing murals is actually anti-social behaviour. Art in shared spaces is good for the culture and community. Shame to hear where you play with your kids they would do something like this.

I've also spent a lot of time in hospitals for my wife and my kids. The kids wings are decorated, so that you know it's a hospital, but it doesn't feel dreary. I honestly believe hospitals would have better outcomes if the other wings were decorated to not feel like a emotionless office building.

mtset | 7 hours ago

I don't think this really does much to refute the point of the article, though I think I read your comment (and its context) as an attempt to do so.

TFA gives the example of Deferred, the process of creating which the calls poetic and whose motivation he calls aesthetic. It also solves a problem - partly an aesthetic problem, but partly a practical problem. I think this is one example of the most common case for software, in which it both solves a practical problem and soothes the aesthetic sensibilities of the creator, the commissioner, or both.

TFA also gives the example of copywriting. Copywriting is writing, and novel-writing is writing; similarly, creating ORCA and Nebu required similar skills in both the macro and micro as each other, and similar skills at least in the macro as writing Excel, FL Studio, and Photoshop. That is, on all four quadrants of the code as art × code for art matrix (art code for making art, art code for doing practical things, utilitarian code for making art, utilitarian code for doing practical things), the same process and skills are employed.

The point is that, yes, code mostly exists to solve a problem, but exactly like writing or painting, the output of the same or similar processes is called "art" based entirely on cultural attitudes toward the output and its context.

Unreal | 7 hours ago

Paint can be used to create an artwork, but most paint in the world is used for weatherproofing and uncreative solid surfaces.

You say this like walls can't be painted sloppily, and people don't complain about that? Like you can't apply the wrong kind of paint, or the right kind of paint wrongly. You say it as if house painters don't hold themselves and other painters to some kind of standard?

kornel | 6 hours ago

You're conflating skill with artistry, and quality with art.

Between junk and art there's a whole gray area of things that are competent, well made, but unoriginal and uncreative.

"What is art" is a tough philosophical question, and in the right context even an off-white eggshell office wall can be an artwork, but we also have lots of office walls where neither the creator nor the audience thinks of as an artwork.

Back to code: are Salesforce admin panels art? Are budget Electron apps art? An enterprise timesheet application may symbolise futility and suffering, but that's probably not what the "artist" meant.

quasi_qua_quasi | 6 hours ago

It doesn't help that at least in English (maybe other languages), "an art" can be used to refer to anything that involves skill or technique; Wikipedia suggests that this aligns more with the historical use of the term.

kornel | 6 hours ago

To me craft is a good description of programming.

davidbalbert | 6 hours ago

100% agree. "Professionalism" and "standards" are other ideas that neatly fit in here. A painter or house builder can hold themselves to high standards, and take pride in that, without thinking of their work as art. Ditto for programming.

singpolyma | 4 hours ago

Sure, but while it would be silly to design a machine to paint murals of its own invention, a machine to efficiently paint a wall correctly would be awesome.

petecorey | 4 hours ago

I think the article touches on this fairly directly.

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. It’s a well-executed portrait of a group of people. Beautiful, even. But it was work commissioned for a fairly mundane purpose and it suited that purpose just fine. It was not, and is not, a divine relic.

cblake | 9 hours ago

Back at the dawn of modern computing (say, transistor-based) in the 1960s, Don Knuth called his books quite literally "The Art Of Computer Programming". I still love those books, but sw devs have mostly relegated its topics to black box libraries for many decades. That combination - what is "black box" vs. what is more "fair game" - has been a central tension of the field the whole time.

benjajaja | 9 hours ago

It's only art for fellow programmers. Nobody outside of this really cares. There isn't really any perceptible distinction between "artisan code" and "AI code" - when it runs.

So it does matter, a lot, for OSS. IMHO the core of OSS is just sharing code, beyond what enterprise then builds upon it. But outside of our nerd circles, why would anybody care.

It's only art for fellow programmers. Nobody outside of this really cares.

I'd argue the same can be said of any creative discipline! A musician is using creative techniques and including musical references and callbacks that likely only other musicians (and music enthusiasts/critics) will be able to pick up on. A conceptual artist is creating their work within a longer conversation of other conceptual artwork—referencing prior techniques, critiquing past works and artists—that is mostly legible to artists, curators, historians, and critics with specialized knowledge of the field. (Maybe a parallel in programming would be seeing an I/O-bound Rust program rely exclusively on manual io_uring syscalls as a "critique" of async/await.)

In these cases, a layperson might only see the pragmatic function of these works ("this song sounds good" or "the art looks pretty"); but for someone with familiarity with a particular practice, the work can still be understood more profoundly. If anything, I'd argue that this makes programming even more like art in general, since just like in other creative disciplines, appreciating a work beyond a surface level requires understanding the history and practice of the discipline it's a part of :^)

toastal | 9 hours ago

Code can be Beautiful

I would describe myself as a “code poet”

I can relate to these. What’s been sad tho is hearing on interviews artists (broad term) say things like art must come from humans to have meaning, but AI is good for stuff like code. I often feel like we are in the same bucket (but maybe that’s what happens after you take the FP pill & down similar rabbit holes).

prayerie | 4 hours ago

people are more likely to think their field is special and cannot be done justice by GenAI, but everything else they arent an expert on (ie lower ability to discern slop) is fair game

toastal | 4 hours ago

“It’s horrible at my particular programming language & in my field, but I can trust its plausible responses for things I understand less well”

andrewballinger | 4 hours ago

And since nobody starts in a field as an expert, GenAI is fair game for everything.

What's even more terrible is that once people see it as another tool on the workbench, are trained that way, and grow up that way, they won't even understand what we're all whining about.

sjamaan | 9 hours ago

I think part of the problem is that many developers don't have much self-respect and have trouble valuing their own work, even though we tend to get compensated very well for that work - an interesting paradox!

It makes some sense though, as "the best code is no code", and almost everyone has seen their hard work get unused or replaced by something else.

On top of that the general public tends to view coding as menial and rigid, something that requires no creativity.

Unreal | 7 hours ago

On top of that the general public tends to view coding as menial and rigid, something that requires no creativity.

I wonder how much of this is downstream of how the general public sees science? The sentiment I've often gotten when I've said I'm a programmer is along the lines of "Wow, you must be really smart, because I couldn't do that", thinking it must require a bunch of study to actually learn. Which I often pushback on, because I think most people could pick up at least the basics of programming, even if they didn't really enjoy it or actually program ever again. And having done a little bit of programming in my high school computing class, I saw most people could grasp at least the very basics of a Basic at minimum.

kitkat | 7 hours ago

I think at some point (probably the late 90s to early 00s), coding transitioned from something done as a public good to something engineered to make as much money as possible, and that's when the market was flooded with devs who saw it that way too.

I imagine there's a lot of overlap between these folks and the "you'll get left behind" crowd.

Probably not a hot take: a lot of devs are overcompensated for a job that leaves them with quite a bit of free time during the day, or with a lot of overhead spent in ceremonies and design meetings that aren't really necessary.

singpolyma | 5 hours ago

They're not over compensated since do business makes more from them than their compensation. But they are highly compensated compared to many fields yes

No, I do mean overcompensated. I'm unemployed right now, and the salary ranges I see in descriptions for senior-level positions are absurd. I don't think anyone needs to make more than $200k a year, whether they're a CEO or writing code.

singpolyma | 33 minutes ago

Sure, I don't think anyone needs to make over $50k a year. But that doesn't mean they're overcompensated. I had a coworker once who through one month of work netted the company over a million a year forever. He was woefully undercompensated relative to his value to the company at 200k

toastal | 4 hours ago

requires no creativity.

Y’all need to try more languages then! “One way to do it” is overrated :P

elephantium | an hour ago

This seems like a facet of imposter syndrome to me.

th0ma5 | 5 hours ago

The predominant misguided emotion from the formerly unempowered that I keep seeing is this emotion of "Yeah, well, I have a gun now too" and it is so weird to know that it is same little half broken toy water squirt pistol I have. With Ruby on Rails there was an arc to the community slowly, and painfully, realizing over time their cure-all only cured just so much.

Programming is craft, and like any other craft it can turn into art. At the same time, most people don't care about craft ( or beauty ). The first reason art and necessity were aligned for a long time was because artful good is often more efficient, more maintainable. The second is that code is the infrastructure of many systems. The first is gone with AI as it changes the cost equation, the second remains but seems to be wilfully ignored in a tsunami of AI PR.