Hacker News new | ask | show | jobs
by OhSoHumble 26 days ago
> Code is a beautiful form of creative expression, as rich as literature or music

Something I'm trying to do right now is to build something and avoid using LLMs to write any code. I still use it to consult. I'm writing a Dota2 tournament match aggregator in Elixir that takes tournament streams and chronologically orders them in a format that makes it easier to watch them sequentially since I find YouTube hard to use for ingesting series of videos.

I'm building it because... I like programming. I like making things. I find that LLMs are making me intellectually lazy and making things with them feels unfulfilling. I want to build. It's human to want to build.

3 comments

> I want to build. It's human to want to build.

Anything a human feels is human, regardless if it's to build or to not build :) Some people prefer some ways of building, others in other ways, it's all fine. I think lots of people forget that programming is a heavily creative endeavor in the end.

If I wanted to be slightly controversial, I'd argue building a program is more like painting a painting than building a bridge, for better and worse.

Interesting you bring up (artistic) painting and bridge building.

I'm a house painter, and while the work is... It's just relentless work and staring all day.

It's the end results of making something just, better, with the simple acts of reputation and giving a shit about it.

Just wondering where house painter falls in your scale, I'd hunch.

Not the person you're replying to, but I'd agree with them, and think house painting would be basically identical to building a bridge.

The difference this comparison is capturing in my opinion is that of thinking up something new, compared to arranging things in a well known/already defined configuration. We know how to build bridges, we just have to do it (maybe including some calculations and site surveys, yes, but novel solutions are rightfully shunned). Similarly painting a house.

Developing software is practically definitionally creating a novel thing. If we wanted the same software over again we could literally copy and paste the existing executable (and we do that all the time, it's just not called developing software or enough work to be a job, since we have machines that are excellent at arranging the electrical charge in the pre-defined manner).

The actually-a-job* software equivalent of painting a house or building a bridge would be weaving a program into core rope memory: https://en.wikipedia.org/wiki/Core_rope_memory

* Not a job you can get anymore.

Creating a program is more like the interior designer choosing paints or the engineer designing a bridge in some CAD software. The actual painting/building has been automated for ages and they are the compiler/computer combo.

People who are new to the scene may find "browsing catalog"/"configuring models" tedious, but that's how you develop the intuition of what works and what not. After a while, you can shortcut most of the tediousness with those heuristics. You know enough blocks that it's just choosing the right one to fit the solution and you do not have to research them and understand them at the same time (where most of the beginners' time is dedicated to).

There is programming that is like that - it is not all programming, and I strongly suspect not the the majority by dollars invested into developers - even it is less of an interior designer choosing paints and more of an entire designer designing an entire interior.

Once you get away from the very trivial side of programming, yes you are standing on the shoulders of giants, but the design decisions are in fact truly novel un-forced choices. Ask two people to make a "note taking app for university students" and you'll get two very differently shaped apps.

And then endless tweaks for CSS when the home owner decides they don't like the color of their molding...
painting can either be a plumbing job or a canvas with an image. using clay and concrete can be either a bridge (similarly to the function of plumbing) or a sculpture. programming can be the same either crud and cloud or something just created for artistic expression like the ioccc.
I'm reading Seneca right now and in one of his letters he said: "That focused concentration on one's work is deeply enjoyable in itself; the pleasure one has in the finished product after the work is done does not equal it. Now, the artist is enjoying the result of his art; while he was painting, he was enjoying the art itself".

And basically this is the problem I see in LLMs: they robbed me of these moments of enjoying the art of programming itself.

I sympathize completely with you, but.. they robbed you of these moments of enjoying the art of programming itself at your day job.

You are still free to enjoy it in your free time, just like I enjoy drawing or guitar playing in my free time. The loss we have experienced is the luxury of doing at work something we enjoy for its own sake.

I've done a lot of match aggregation in dota2 using stratz / opendota. It's a lot of fun and it will definitely make you a better programmer given how much data there is.