August 25th, 2024

The art of programming and why I won't use LLM

The author argues that the effectiveness of large language models in programming is overstated, emphasizing coding as a creative expression and expressing concern over the diminishing joy in programming due to automation.

Read original articleLink Icon
The art of programming and why I won't use LLM

The article discusses the author's perspective on the use of large language models (LLMs) in programming. While many programmers praise LLMs for enhancing productivity and simplifying coding tasks, the author believes that the effectiveness of these tools is overstated. They argue that programming is not just about solving problems but also about the creative expression involved in writing code. The author identifies as a "programming artist," emphasizing the joy and fulfillment derived from the coding process itself. They liken using LLMs to having an artist paint for someone else, suggesting that automating the coding process detracts from the enjoyment and artistry of programming. The author expresses concern over the trend of automating programming tasks, questioning whether people still find joy in coding or if they are merely seeking functional solutions. They acknowledge that not everyone shares their passion for programming, but they lament the diminishing number of individuals who appreciate the art of coding.

- The author believes LLMs' effectiveness in coding is overstated.

- Programming is viewed as a form of creative expression by the author.

- The author identifies as a "programming artist" who enjoys the coding process.

- There is concern over the trend of automating programming tasks.

- The author questions whether people still find joy in programming.

Related

Link Icon 67 comments
By @kqr - 5 months
> it is sad to me just how much people are trying to automate away programming and delegating it to a black box

I take it you're not using a compiler to generate machine code, then?

Scratch that, I guess you're not using a modern microprocessor to generate microcode from a higher-level instruction set either?

Wait, real programm^Wartists use a magnetised needle and a steady hand.

Programming has always been about finding the next black box that is both powerful and flexible. You might be happy with the level of abstraction you have settled on, but it's just as arbitrary as any other level.

Even the Apollo spacecraft programmers at MIT had a black box: they offloaded the weaving of core rope memory to other people. Programming is not necessarily about manually doing the repetitive stuff. In some sense, I'd argue that's antithetical to programming -- even if it makes you feel artistic!

By @sweeter - 5 months
If LLMs were actually good for programming, I would consider it, but they just aren't. Especially when we are talking about "assistants" and stuff like that. I feel like I live in an alternate reality when it comes to the AI hype. I have to wonder if people are just that bad at programming or if they have a financial incentive here.

There are a handful of cases where LLMs are useful, mainly because Google is horrifically bad at bringing up useful search results, it can help in that regard... or when you can't find the right words to describe a problem.

What I would like to see out of an AI tool, is something that gobbles up the documentation to another programming tool or language, and spits it back out when it is relevant, or some context aware question and answers like "where in the code base does XYZ originate" or w/e. the difference is having a tool that assists me VS having a tool spit out a bunch of garbage code. Its the difference between using a tool, and being used by a tool

By @furyofantares - 5 months
I also find programming extremely enjoyable, my means of expression, and an art form. I have hundreds of side projects in my archive, maybe five of which have ever been used by another human. It's all for the sake of coding. Many of them are sizeable and many are not but they are almost all done as a creative outlet, for the joy of doing it or to satisfy a curiosity.

But I don't know man, I love coding with LLMs. It just opens up more things, I think on some projects I actually spend MORE time on traditional coding than I did in the past, because I used an LLM to write scripts to automate some tedious data processing required for the project. And there's also projects where the LLM gets me from 0 to 60 and then I rather quickly write the code I actually care about writing, and may or may not end up replacing all the LLM written code.

I'm sure it heavily depends on exactly what types of project interest you. The fact that LLMs and diffusion have both become fixations of mine also means I have a lot more data processing involved in lots of my projects, and LLMs are quite good at custom data processing scripts.

I suppose my suggestion to the author would be that perhaps their projects aren't amenable to LLMs in the way they want and that's fine, but don't lose hope that there are kindred spirits out there just because so many people love LLM coding; some of us are both and that may be more about what types of projects we do.

By @brunooliv - 5 months
This is a post that just reads as if the author is still in the “honeymoon” stage of their career where programming is seen as this extremely liberating and highly creative endeavour that no other mortal can comprehend. I get the feeling and I was there too, but, writing code has always been a means to an end which is to deliver business value. Painting it as this almost abstract creative process is just… not true. While there are many ways to attack a given problem, the truth is once you factor in efficiency, correctness, requirements and the patterns your team uses then the search space of acceptable implementations reduces a lot. Learn a couple of design patterns, read a couple of blogs and chat with your team and that’s all you need. Letting an LLM write down the correct and specific ideas you tell it to based on what I wrote earlier means your free time to do code reviews, attend important meetings, align on high level aspects and help your team members all which multiply the value you deliver only through code. Let LLMs automate the code writing so I can finally program in peace, I say!
By @williamcotton - 5 months
I still very much felt like I was creatively crafting this [0] project even though the entire approach used the Claude project feature. I had to hand-write some sections but for the most part I was just instructing, reading, refining, and then copying and pasting. I was the one who instructed the use of a bash parser and operating on the AST for translation between text and GUI. I was the one who instructed the use of a plugin architecture to enforce decoupling. I was the one who suggested every feature and the look of the GUI. The goal was to create an experimental UI for creating and analyzing bash pipelines. The goal was not to do a lot of typing!

These high level abstractions are where I find the most joy from programming. Perhaps for some there is still some modicum of enjoyment from writing a for loop but for most people twenty years into a career there's nothing but the feeling of grinding out the minutia.

There's still a lot of room for better abstractions when it comes to interfacing with computing devices. I'd love to write my own operating system, CLI interface, terminal, and scripting language, etc from scratch and to my own personal preferences. I don't imagine I could ever have the time to handcraft such a vast undertaking. I do imagine that within a few decades I will be able to guide a computing assistant through the entire process and with great joy!

[0] https://github.com/williamcotton/guish

By @danjl - 5 months
English, and other languages, are vague and imprecise. I've never understood why folks think they can write code "more efficiently" with a prompt rather than code? Are people willing to give up control? Let the LLM decide what is best? The same is true for generative art -- you get something, but you only have marginal control over what. I think this will always be something that is useful for the simplest things, simplest apps, simplest art, etc.. A race to the bottom for the bottom of the complexity stack. As problems become more complicated, it would take a great deal more prompt language to specify the behavior than code.
By @frje1400 - 5 months
LLM output can't really be trusted so I need to "proof read" it and convince myself that it is correct. In the language I use every day and have a high degree of fluency, it's faster for me to simply write what's in my head than to proof read unknown code. So how can LLMs make me more productive in actual programming?

I use an LLM to generate ideas, to rubber duck, to get a lead on unknowns, and to generate boilerplate occasionally. So I do everything except replace the coding part because that's what requires the most precision, and LLMs are bad at precision. And yet, people claim massive productivity gains in specifically coding. What am I missing?

By @umvi - 5 months
For me LLMs are like programming power tools. Use them wrong and you can hurt yourself. Use them right and you can accomplish far more in the same amount of time.

People that refuse to program with AI or intellisense or any other assistance are like carpenters who refuse to build furniture with power saws and power drills. Which is perfectly fine, but IMO that choice doesn't really affect the artistry of the final product

By @geor9e - 5 months
I use an LLM precisely BECAUSE I want to focus on the art. Like Davinci would use apprentices.

LLMs can do mindless drudgery just as well as I can, but in seconds instead of hours. There's nothing about remembering syntax, boilerplate code, forgetting a semicolon, googling the most common way of doing something, or combining some documentation to fill in the gaps that's even remotely "art" to me.

I never ask an LLM for what I'm artfully creating. I ask it for what I know it'll get instantly right, so I can move on to my next thought.

By @Bjorkbat - 5 months
I have a lot of different thoughts as to why using an LLM feels "off". One I've been thinking about as of late is that it feels flawed to measure productivity by code velocity, i.e. lines of code written per hour.

Like, ideally, it shouldn't really take that much code to implement a thing. I like to think of programming as writing a bunch of levers, starting with simple levers for simple jobs, incrementally ratcheting up to larger levers lifting the smaller levels. Before too long, it'll feel as though you've written a lever capable of lifting the world...or at least one that makes an otherwise wickedly difficult project reasonably manageable.

If you say that LLMs make you more productive because it allowed you to finish a project that would otherwise take forever to write, then I'm skeptical that an LLM is the best solution. I mean, it's a solution at least, but I can't help but wonder if there's a better solution.

If the problem is that you lack the understanding to take on such a project, then perhaps what we really need are better tools for understanding. I myself have found that LLMs are great for gaining a quick understanding of languages that otherwise have sparse information for beginners, but I have to wonder if perhaps there's a better way.

If, on the other hand, the problem is that writing that much code would take forever, then I have to wonder if the real solution is that we need a better way to turn programming languages into patterns (levers) and turn said patterns into larger patterns (larger levers)

A partial solution works, but only partially well, and occasionally has consequences one has to reckon with

By @Kiro - 5 months
I'm of the opposite opinion: I've started enjoying programming much more after embracing LLMs.

* They are great for overcoming procrastination. As soon as I don't feel like doing something or a task feels tedious I can just delegate it to an LLM. If it doesn't solve it outright it at least makes me overcome the initial feeling of dread for the task.

* They give me better solutions than I initially had in mind. LLMs have no problem adding laborious safeguards against edge-cases that I either didn't think of or that I assessed wouldn't be worth it if I did it manually. E.g. something that is unlikely and would normally go to the backlog instead. I've found that my post-LLM code is much more robust from the get go.

* They let me try out different approaches easily. They have no problem rewriting the whole solution using another paradigm, again and again. They are tireless.

* They let me focus on the creative parts that I enjoy. This surprised me since I've always thought of myself as someone who loves programming but it turns out that it is only a small subset of programming I love. The rest I'm happy to delegate away.

By @steveBK123 - 5 months
I do sometimes get the impression that there will be a generational gap in ability to code between millennials and zoomers.

We had an overdemand for devs during late ZIRP early COVID leading to bootcamps and self taught pulling a lot of untrained into the industry. Many of them have left the industry.

Add to that the whole data science bubble and it’s bursting where we had tons of degrees and job openings for sort-of-devs. Lot of those jobs are gone now too.

Don’t forget the pull of “product management” and its demise outside big tech.

Now we have hiring freezes and juniors leaning on LLMs instead of actually spending an hour trying to solve problems.

Interesting times.

By @TrianguloY - 5 months
I feel the same. I understand why others think ai is just another tool like intellisense, but for me intellisense and any other automatic refactor is a fixed algorithm that I understand and that I know exactly what it is doing, and I know that it is correct.

With ai I need to review the output but not because there may be some issues I didn't noticed, but because that may be issues the tool itself didn't noticed, so it's less of an "apply this specific change" but more of an "apply some change"

By @dakiol - 5 months
I do the “programming as art” in my free time, when working on my own side projects. I do it because it’s fun and I take proud on what I produce.

For work stuff? I couldn’t care less if the code comes from me, my colleagues or an LLM. As long as it works and it’s secure, we’ll ship it.

Folks, career != job.

By @icambron - 5 months
To have all these thoughts, I think you'd have to have never really used an LLM to help you code, or to be almost comically closed-minded when you do. What they feel like when you actually use them is a combination of a better SO and a very prescient auto-completer. It does not at all feel like delegating programming work to a robot. No loss of artistry comes into play, and it's damn useful.

In an ideal world, our abstractions would be so perfect that there would be no mundane boiler-platey parts of a program; you'd use the abstractions to construct software from a high level and leave details be. But our abstractions are very far from perfect: there's all kinds of boring code you just have to write because, well, your program has to work. And generally that code is, if you look, most of your code. This because making good abstractions is really hard and constructing fresh ones is often more work than just typing out the different cases. If you think this is mistaken, I'd gently suggest you take a fresh look at your own code.

Anyway, that's where LLMs come in. They help write the boring code. They're pretty good at it in some cases, and very bad at it in others. When they're good at it, it's because what the code should do is sort of overspecified; it's clear from context what, say, this function has to do to be correct, and the LLM is able to see and understand that context, and thus generate the right code to implement it. This code is boring because it is in some vague sense unnecessary; if it couldn't be otherwise, why do you have to write it at all? Well you do, and the LLM has taken care of it for you.

You can call this work the LLM is displacing "art", but I wouldn't. It's more the detritus of art performed in a specific way, the manual process required to physically make the art given the tools available.

You could object that the LLMs will get better in the sense that not only that they will make fewer mistakes, but they will be able to take on increased scope, pushing closer to what I'd consider the "real" decisions of a program. If this happens -- and I hope it does -- then we should reevaluate our lofty opinions of ourselves as artists, or at least artists whose artistry is genuinely valuable.

By @Retr0id - 5 months
Writing an essay forces you to think about an idea intimately, acting as a tool for thought in and of itself. The way I use programming is the same.
By @youssefabdelm - 5 months
> does no one not find programming fun anymore?

Author needs to get into Bret Victor. Has no idea how much more fun he could be having.

Programming is a step on the way to access to the state space of information. When we get to that stage, programming will seem like a maze of syntax, that has its own idiosyncrasies that force you into corners or regions in the state space, just like any DAW plugin or 3D tool, or any tool at all that exists.

By @PUSH_AX - 5 months
This might be the most "zoomed in" take on programming I've ever read (where a zoomed out take understands that software usually just enables a business to do business). I almost thought it was satire.

I feel like you have to drop this kind of thinking to get anywhere past intermediate, not to mention you become a nightmare to anyone who has even a touch of pragmatism about them.

By @TrackerFF - 5 months
I used to work as a programmer, but have since pivoted into analysis - so I just view programming as another tool in my toolbox to solve problems. My main goal is to deliver insights and answer questions.

Sad to say, LLMs have made me lazy coder for the past two years or so. But I do deliver/finish work much faster, so my incentives to keep using LLMs as coding co-pilots are overshadowing my incentives to write code the "old way".

And for what it is worth, sometimes these posts read like modern luddite confessions - the rants just sound too personal.

By @spaceman_2020 - 5 months
This is such a strange hill to die on.

Like what great ideological purpose are you serving if you delegate writing tailwind boilerplate to a LLM, or a basic axios get request?

Does your code become impure if instead of copying code from the documentation you get an LLM to do it?

By @mr_tristan - 5 months
I don’t use an LLM largely because my current codebase has a massive amount of bespoke internal APIs. So LLMs are just useless and wrong for almost any task I use.

But this has led me to wonder if there will be gradual pressure to build on top of LLMs, which, in turn, will really only be useful with the tried and true. Like, we’re going to be heading towards an era where innovation means “we can ask the LLM about it”. Given the high capital costs required to train, I wouldn’t be shocked to see LLMs ignoring new unique approaches and biasing to whatever the big corps want you to do. For “accuracy”.

I just sense were about to hit an era of software causing massive problems and costs, because LLMs are rapidly accelerating the pace of accidental complexity, and nobody knows really how to make money off them yet.

By @tarkin2 - 5 months
LLMs will become as evil as calculators: they obviate the mathematical ability and create reliance in most, but are a magnificent aide to experts--those who could survive without a calculator albeit at the cost of speed.

As we approach this point, programming (program creation) will become a largely non-technical skill but the few who have that skill will be needed to solve the problems which LLMs create and which its operators don't have the know-how to fix.

I use LLMs as an alternative to asking a question on stackoverflow. And I'm not confident LLMs can currently save time on large projects: take a couple of hours to write the code or spend a few seconds to generate the code and then a couple of hours understanding and debugging it.

By @chasingentropy - 5 months
I agree with your sentiment. It's like asking a 3 year old to compose a symphony because they learned to play twinkle twinkle little star on a casio keyboard reasonably well.

I don't see it as a "judgemental piece to anyone that i am alluring to" (I think you mean alluding) but I do think it's an honest assesment of those who are attempting to rely heavily on AI.

By @botanical76 - 5 months
I feel that a large divide in a programmer's perception of the utility of LLMs as an efficiency boost for coding is based on a large divide in specific skills. A very capable and experienced programmer, as I have often found in industry, may not be that fast at comprehending code that they did not write. On the other hand, I feel I am able to rapidly proof read code -- be it from my colleague in code review, stack overflow, or the output of an LLM. As a result, Copilot has let me write many Bash and Python scripts at breakneck speed. On the other hand, I have allowed LLMs to decide on the architecture of small programs before, and it has often created a garbage, unintuitive code structure. It is a tool that you must use to its strengths and your own personal strengths. If proof reading the code is slower than writing it for you personally, then it sounds wise to avoid the tool.
By @tinyhouse - 5 months
Not sure where LLMs will be in 5 years, can only talk about today and make some guesses about the future.

I use LLMs cause it takes care of the syntax and leaves me more time to think about the logic and how everything is connected together. LLMs still lack in the latter category.

For one-off tasks, it's truly a time saver. In the future, I see people trying to do more complex stuff with chains of LLM calls (already happening but it's still a WIP). Break a complex task into sub-tasks, then solve them sequentially to achieve something non-trivial in the end. I'm a bit skeptical though - not so much because of my skepticism of LLMs in general but more about humans not being good at maintaining code bases they didn't write (often even with code that wrote). You cannot trust LLMs to also maintain the codebase. There's too much context about the life of the code, all the dependencies, and even business logic, that is missing.

By @sibeliuss - 5 months
I think of myself as a code artist too but definitely not leaving the productivity boost of an LLM behind. The thing just helps me write stuff that I was going to write anyways!
By @marcinzm - 5 months
I find the post confusing. The author notes two aspects of programming and then seems to conflate LLMs as doing both when they only do the second. It’s sort of like saying directing a movie isn’t art or creative because the director is not every actor in the movie?
By @DoesntMatter22 - 5 months
I love to program! I started in 1993 when I was 12 and I'm 42 now. I've never lost my love for it. Been a workaholic most of my life because I just love to code. However... after using Claude 3.5 with Cursor I realize that it's over. I'm writing whole apps in a day, sophisticated ones, that would take me a couple of weeks before, and way more energy spent.

I wrote a whole Slack clone (not feature complete of course) in just 1 day. I love to code, and I do have to at times but this feels like the end of what was the joy of my youth and adulthood, my favorite pastime is gone. I will still develop applications and enjoy my creativity but with probably 1/50th the effort it took before.

By @habosa - 5 months
I tend to agree with this post. I am the only person on my team and one of the few at my company not using LLMs to assist my programming. So far I don’t think I notice any difference (better or worse) … we’ll see how this experiment plays out I guess.
By @danjl - 5 months
Rather than writing the code for me, I would appreciate the LLM functioning as a pair programmer, making comments on the decisions I make as I write the code. Another case that would be extremely useful, but is basically impossible now, is to have the LLM write tests for my new code as I write the code. Of course understanding the test scaffold and what's important to test is way beyond the capability of current LLMs. I only write integration tests, and never unit tests. An LLM could probably code unit tests, but I feel that not particularly useful. However, I could see this becoming more useful than actually writing code in the long run.
By @benterix - 5 months
A while ago antirez offered an interesting counter-perspective that is probably a more pragmatic approach:

https://news.ycombinator.com/item?id=38840626

By @namrog84 - 5 months
Lots of people I know use llms for different reasons and more importantly in different ways.

For me it feels like it enables me to express myself even better. I use 1 for basically a super charged intellisense or clever auto complete. Finishing lines as I am typing them. Exactly the way I was going to write them.

It saves time on the more boiler plate glue code and allows me to maintain a better flow and momentum on more expressive areas.

I don't see it taking away anything but only enabling me to do more, faster, and better. I'm not telling it to write full apps because it can't.

By @gibbitz - 5 months
I feel like I wrote this post. Like the author, as a formally trained painter and printmaker turned developer, I find development akin developing a painting. Working general to specific and letting solutions reveal themselves as I work through the problem. Learning patterns and mirroring them, creating a logic other developers can follow as they work with the code in the future and providing an API for consumers to use that not only provides for the requirements but creates patterns that reveal the internal structure to the consumer. LLMs creating code to be consumed by LLMs basically means none of that craft matters. It also means humans won't be able to work with this code. It doesn't matter what developers do. This is the future because the LLM is cheaper than paying someone a living wage and the businesses will go with that. I used to bemoan consultant written "good enough" code. The future holds WTF is all this code even doing LLM code. Likely with hallucinatory variable naming. If you think about textiles or furniture there is a huge difference between what was made by artisans and what is spat out of industrial process. The problem programming faces is that although a person who buys a hand made rug can tell the quality, a person who downloads an app has no idea outside of battery use and laggy UI if the coding is poor. I can always go back to portraiture, I guess...
By @rongald - 5 months
I suppose I get where the sentiment is coming from and anybody can use whichever tools make them happy but I feel like the comparison doesn’t make too much sense to me. As programmers we leverage so many levels of abstraction that help us write better code. It feels similar to saying if you use some package or library you’re letting some library author do the painting for you. Or if you use a high level language instead of assembly you’re letting a compiler do the painting for you.
By @PaulHoule - 5 months
Comparing an LLM to an artist who can paint for you is giving it too much credit.
By @zoogeny - 5 months
There is a difference between having code and writing code. For example, sometimes I want to have code that I don't want to write. I often use libraries from package managers for this case. Using existing libraries frees me to write the actual parts of the program that I value (and/or enjoy) while skipping some of the boring parts I do not value (and/or enjoy).

It seems to me that there is a middle ground between writing programs myself and downloading code from a package manager. LLMs fill up some space within that gap.

I think refusing to use an LLM because of "reasons" is the same as refusing to use packaged libraries for "reasons". That is, reasons for both definitely exist but I consider that kind of stubborn intransigence to be a sign of mental disorder.

I recommend simply adjusting the criteria you use to decide when and when not to use packaged libraries to help determine when and when not to use LLMs.

By @archagon - 5 months
Another important point: don’t foster a dependency on tools you don’t own. If you run an LLM locally, fine, but entwining your career with a SAAS product like OpenAI may prove to be a critical (and expensive) mistake down the line.
By @ein0p - 5 months
You’re not automating the “art” with llms. You’re automating stretching the canvas and squeezing out the paint. LLMs by design can’t create anything fundamentally new. Which is the “art” part of the whole exercise.
By @npatrick04 - 5 months
I agree with this article. Coding is the easiest and best part of the job. Way more time is spent testing than coding. Why take away the fun part, making your job only about the verification of it.
By @brubs - 5 months
To be honest, I want an LLM to do my work, which means coding for me. But I won’t quit coding as my hobby. I love to build and tackle challenges. I just hate the pressure of deadlines, boring coding tasks, spaghetti code from my team members, code style differences between me and others, and so on. Coding has turned into corporate stuff. I do it for a living, but I really don’t like doing it with all these issues in the mix.

I like to code in the middle of the night, solving very complex problems and building cool applications.

By @nerder92 - 5 months
Programming is not art, problem solving is.

Programming is just a mean to an end, please stop this cringe romantic rhetoric. If you really love programming you don’t care about the medium, the fact that a program is represented as text is just a transient phase in the history due to the current tech we have available in this specific moment in time. Programming (today) is expressed as text, LLMs auto complete boring text, so that us “the artists” can write more of it faster, end of story.

By @henrik_w - 5 months
I love the craft of coding, and I still use ChatGPT every day to good effect. It writes the boilerplate code for me, and leaves the fun part to me. Don't underestimate the power of getting to a good, working solution faster.

I wrote a blog post about it yesterday:

https://henrikwarne.com/2024/08/25/programming-with-chatgpt/

By @cbare - 5 months
I also view coding as essentially creative.

Programming was mostly a hobby in the days of 8-bit PCs. It was a profession for some decades. Maybe it will be a hobby again in 5 years. Like gardening, sailing, fishing - professions at one time, now hobbies.

On the other hand, the arrival of futuristic capabilities like computers speaking human languages is what drew me to technology in the first place. Luckily, you can choose to look forward and backward. You don't have to pick only one.

By @indigodaddy - 5 months
“please don’t take this as a judgemental piece to anyone that i am alluring to”

I would never judge anyone who finds your non-capitalized, grammatical-error ridden essays seductive.

By @personalityson - 5 months
I only use it to name my functions and variables
By @OutOfHere - 5 months
There is no one answer to the question of whether to use LLMs for code. LLMs help with robotic transformatioms, SDK knowledge, glue code, and even with trivial algorithms, but not so well with novel algorithms. Novel algorithms are where I ignore what the LLM says, and do my own thing.
By @yowayb - 5 months
LLMs are just aggressive auto-complete. Yes, overhyped naturally. But also still saving me keystrokes!
By @pmarreck - 5 months
If we're going to have LLM's writing code that we depend on, then we for damn well sure better have both typechecking and unit tests also in place. Hell, make it do TDD since humans don't seem very keen on that despite its empirical advantages
By @layer8 - 5 months
This article has me wishing for a Reader Mode implementation that auto-uppercases sentences.
By @alexpc201 - 5 months
"LLM is not for me" sounds right. But, if you want to use LLM to avoid building the tedious parts of a project like the user interface, APIs, etc., and decide to code your algorithms the old-fashioned way, that's fine too.
By @creesch - 5 months
What is up with these blogs that are apparently not made with the purpose of being read? Having sentences not start with uppercase letters really makes it one big mesh of letters. Certainly when they are run-on sentences only separated by commas.

Not helped by the choice of using a monospaced font. I get that it is often an aesthetic choice, but given that a blog post is written with the idea to be read, one I don't think is a particularly good one. Although the last time I made a remark about that on HN it became clear to me that a lot of people don't see the issue. Even if there are decades worth (at this point) of research that makes it clear that a sans serif font (or even a serif font on modern displays) works better for readability. ¯\_(ツ)_/¯

In this case though, the combination of the monospaced font, everything being in lowercase and the run-on sentences I really am scratching my head here.

Are you trying to get a message out there? Or are you mostly going for aesthetics?

By @bongodongobob - 5 months
Seeing luddism in programming is hilarious to me. Keep writing your machine code old man, we'll pick up the slack for you while you fade into obscurity.
By @modevs - 5 months
The times when #codecrafters will be as valuable as gold coming... I would prefer to rock into this times.
By @jaredcwhite - 5 months
Programming remains a deeply misunderstood, and often disrespected, medium. Any time someone tries to claim that we "won't need programmers anymore" in the future to accomplish X, Y, or Z, I simply behold somebody who doesn't understand the medium.

Of course I understand that the "sweet spots" of logic, design, and platform architecture shifts over time. I can work at a higher level of abstraction now than I did when I started out writing PHP in 1999. I'm also willing to believe low-code/no-code solutions or turnkey solutions will get better over time. There's a reason I don't try to find restaurant clients to build a glorified menu website for anymore.

But the hoopla around LLMs has only served to reinforce the disconnect between the people who express artistry in code and the people who see programming as nothing more than a "feature-implementation-pipeline" that's ripe for rote automation. I'd expect as much from folks in marketing, or CEOs, but to see so many CTOs make public claims they must privately know is simply bullshit…well, that's shaken my faith in this industry, I'll tell you that much.

I'm feeling optimistic though. The tides are turning against generative AI and when the hype cycle is finally over, we'll have a handful of narrowly-purposeful, ethically-engineered models which provide some specific yet useful productivity gains…and beyond that, it'll just be the slow-but-steady progress of the discipline of hand-writing code.

By @DiscourseFan - 5 months
Meanwhile I don’t use webhosted LLMs because I don’t want them sucking up my work!
By @globular-toast - 5 months
The six year old English took me more effort to read than it should. The point of language is to communicate. Write in a way that people can read.

But to the point of the post, yeah, I agree. The people using LLMs are just using it to compensate for a horrible toolkit. It doesn't help them think or break down problems that nobody has seen before. If it makes them quicker it's because they were using caveman-level tools before. I haven't typed every character in the code I produce for at least a decade at this point. Most of my time and effort is in thinking. But for braindead code monkeys, sure, anything will make you quicker.

By @slowhadoken - 5 months
The argument against this is usually “oh yeah are you going to write your own compiler? Or better yet build your own CPU and motherboard?” but some people do because it’s fun and educational. Ignorance isn’t a valuable skill set.
By @Icarus-maximus - 5 months
Undead
By @yakshaving_jgt - 5 months
I don't do programming as art. I just want to see the result.

That said, in my experience, trying to get ChatGPT to spit out sensible code is sometimes like arguing with a conspiracy theorist. I ask a question, receive an answer, ask a follow-up question and scrutinise one of the details, and the interviewee just falls apart and grasps for other straws.

By @sbuttgereit - 5 months
I think the arguments in this article/blog/etc. aren't as strong as they ought to be to make the point the author tries to make.

My formal education was in music composition and film scoring specifically. I never once, even then considered myself "an artist" or thought that I was pursuing art. I did consider myself a craftsman: I was learning a style of music composition where I was expected to realize someone else's vision for their purposes. One could argue that the filmmaker was an artist and the film a work of art, but as the composer my job was to produce a work product that conformed to a specification as directed by someone else. I cared about creativity, quality, and having my product fit for purpose. I do not see the craftsman as inferior to the artist, but the goals are different and in a medium such as film you must have both artists and craftsmen (and sure sometimes a single person is both, but that's not a requirement).

When I am a programmer I see myself in exactly the same way. Professionally, I'm paid to satisfy someone else's need for automation/data wrangling. The solution I deliver is a work of craftsmanship, not of art. I will be creative in exercising my craft: often I'm just given a statement of the problem that needs solving and the solution design and development are left to me. I may find unique capabilities or processes which are better than those anyone envisioned... but at the end of the day I am creating an expression of my craft, not trying to achieve a deeper artistic goal. Trying to achieve an artistic goal with programming, at least in most professional programming, would likely lead to some sort of malpractice: the craft of the product diminished in time, cost, or features to gain an unasked for message.

Another issue I take with this article is that it confuses the tools with the result. Today, artists that paint use a large variety of brushes, spatulas, and other tools and paints which have all the benefits of being formulated with the knowledge of modern chemistry for stability, texture, and durability over time. Would the artist of old be justified in suggesting that using the new tools make you not an artist since you don't have to control for the limitations of the past? As a composer, I used sample players, sequencers, notation programs, and DAWs, even when writing for a conventional orchestra. True Beethoven didn't have these tools, but does this mean a modern composer that might use the same tools as me don't produce art... even if the final result is played by a traditional orchestra? I find LLMs to be in this category. When producing art (or craft as I discussed), the final product is ultimately what is to be judged... unless you find programming as being more about performance art where the journey is more the product that the final result.

Anyway, as a programmer I absolutely use LLMs. Sometimes they help, sometimes not. Even at my most creative, I don't find developing a good regex or a shell script something I care to be creative in approaching. How I apply the LLM, my judgement of the quality of what it produces, or whether I think the kind of "lowest common denominator" approach an LLM will produce is appropriate or not in a given situation still puts me and my creativity plainly at the center of producing a craft-full, and perhaps artful, product.

By @pandemic_region - 5 months
!remindme 1 year
By @nprateem - 5 months
Lol, this won't age well.

BTW what's the aider vs cursor opinion?

By @rjakobsson - 5 months
Amen!
By @pajeets - 5 months
This feels exactly like the manifesto that artists on X started defending that Ai-generated Art isn't Art but look where we are now, companies are able to generate not only quality Art assets but photos too but amateur consumers creating songs, videos, pictures that they couldn't have previously.

Unlike art where you can tell if the end product is AI generated even, software is not. The end users do not care if you used AI to generate your react front-end or back-end, your employers dont care who wrote the code as long as its bug free and works like in the scope document.

Ironically, I don't see software developers writing manifestos or complaining that AI generated software isn't software or that they are stealing from them.