However, I'm skeptical about AI, because what I've understood about agentic processes is more about cheap dopamine.
When it comes to medium-sized software development (over 50k LOC), there is much less fun and much more pain, because a growing codebase doesn't allow you to make new features easily.
I believe it is important not to mix up a dose of dopamine gotten from agentic results, as in the article, with achievement from longstanding work, even if it's not so attractive from a short-term perspective.
I use Claude Code on a 900kloc Rails/JS monolith and it’s still pretty pleasant. However if it wasn’t already structured well, I could see that being a worse experience.
The article is about the pleasure of creating new software (occasionally with AI help), so I hope that the 900k LOC in your case doesn't come from Claude Code.
Someone just discovered why some of us enjoy shell scripts and Emacs so much. No need for LLM, just small hacks to solve specific problems in limited contexts that works well enough, most of the time, for one user.
This resonates with me. I'm not a programmer, and before LLM's I could only make basic hello world apps and simple websites. Now I am developing my own versions of various apps that I've used but maybe have limitations that I've become frustrated with. For example, I didn't like how the fitness tracker Strava didn't allow me to customize audio announcements, so now I have my own (and in my own eyes) better version of Strava that I use instead. It's absolutely blowing my mind that this is possible and available today, and not some tech-optimists wet dream about an impossible future.
By the authors definition, I've been writing perfect software for over a decade.
It's never required LLMs. In fact, I think the idea that "LLMs allow us to write software for ourselves" borders on missing the point, for me at least. I write software for myself because I like the exploratory process .. figuring out how do do something such that it works with as little friction as possible from the side of the user; who is of course myself, in the future.
I like nitpicking the details, getting totally side-tracked on seemingly frivolous minutiae. Frequently enough, coming to the end of a month long yak-shave actually contributes meaningful insight to the problem at hand.
I guess what I'm trying to say is "you're allowed to just program .. for no other reason than the fun of it".
As evidence for my claims: a few of my 'perfect' projects
I get what you're saying - I personally scratch that itch by doing woodworking and hobby electronics; I just love doing it and the end product is often just a means to an end; to craft something and enjoying the process of it.
But programming doesn't give me that same feeling, and honestly; the scope of doing and learning everything needed to make my projects without LLM's are just way out of reach. Learning these things would not be relevant to my career or my other hobbies. So, for me I use LLM's the way a person who's not into carpentry might buy the services of a carpenter, despite the possibility of them doing the project themselves after investing tons of time into learning how.
These days, I spend my personal coding time on building personal interfaces either as a shell script or as emacs packages. So many tools and applications hinders power usage.
This article triggers all my “written by an LLM” spidey senses.
Which is ironic considering the subject matter. “Perfect”, but artificially constructed. “Just for me”, but algorithmic slop.
I agree that you can do so much more custom tailoring of bespoke software with the speed an LLM brings. But something inside of me still revolts at calling this anything other than “convenient”.
“Perfect” I will reserve for things I’ve made myself. However “imperfect” they may really be.
This has always been possible, even if you weren't a programmer. You just needed to have the desire to customize your computing environment, and the time and patience to do it.
There is so much software out there, written by people who wanted to solve their particular problem, just like you. Chances are that some of it will fit your needs, and, if the software is flexible enough, will allow you to customize it to make that fit even better.
This is why the Unix philosophy is so powerful. Small independent programs that do one thing well, which can be configured and composed in practically infinite number of ways. I don't need to write a file search or sorting program, nor does the file search program need to implement sorting. But as a user, I can compose both programs in a way to get a sorted list of files by any criteria I need. This is possible without either program being aware of the other, and I can compose programs written decades ago with ones written today.
You can extend this to other parts of your system as well. Instead of using a desktop environment like GNOME, try using a program that just manages windows. Then pick another program for launching applications. And so on. This is certainly more work than the alternative, but at the end of the day, you feel like you are in control of your computer, instead of the other way around.
Here is the demo of my perfect software.
https://play.tirreno.com
However, I'm skeptical about AI, because what I've understood about agentic processes is more about cheap dopamine.
When it comes to medium-sized software development (over 50k LOC), there is much less fun and much more pain, because a growing codebase doesn't allow you to make new features easily.
I believe it is important not to mix up a dose of dopamine gotten from agentic results, as in the article, with achievement from longstanding work, even if it's not so attractive from a short-term perspective.
I use Claude Code on a 900kloc Rails/JS monolith and it’s still pretty pleasant. However if it wasn’t already structured well, I could see that being a worse experience.
The article is about the pleasure of creating new software (occasionally with AI help), so I hope that the 900k LOC in your case doesn't come from Claude Code.
Someone just discovered why some of us enjoy shell scripts and Emacs so much. No need for LLM, just small hacks to solve specific problems in limited contexts that works well enough, most of the time, for one user.
This resonates with me. I'm not a programmer, and before LLM's I could only make basic hello world apps and simple websites. Now I am developing my own versions of various apps that I've used but maybe have limitations that I've become frustrated with. For example, I didn't like how the fitness tracker Strava didn't allow me to customize audio announcements, so now I have my own (and in my own eyes) better version of Strava that I use instead. It's absolutely blowing my mind that this is possible and available today, and not some tech-optimists wet dream about an impossible future.
I feel the same, I'm now building more side projects with the help of AI even if they're only for me
By the authors definition, I've been writing perfect software for over a decade.
It's never required LLMs. In fact, I think the idea that "LLMs allow us to write software for ourselves" borders on missing the point, for me at least. I write software for myself because I like the exploratory process .. figuring out how do do something such that it works with as little friction as possible from the side of the user; who is of course myself, in the future.
I like nitpicking the details, getting totally side-tracked on seemingly frivolous minutiae. Frequently enough, coming to the end of a month long yak-shave actually contributes meaningful insight to the problem at hand.
I guess what I'm trying to say is "you're allowed to just program .. for no other reason than the fun of it".
As evidence for my claims: a few of my 'perfect' projects
https://github.com/scallyw4g/bonsai
https://github.com/scallyw4g/poof
https://scallywag.software
I get what you're saying - I personally scratch that itch by doing woodworking and hobby electronics; I just love doing it and the end product is often just a means to an end; to craft something and enjoying the process of it.
But programming doesn't give me that same feeling, and honestly; the scope of doing and learning everything needed to make my projects without LLM's are just way out of reach. Learning these things would not be relevant to my career or my other hobbies. So, for me I use LLM's the way a person who's not into carpentry might buy the services of a carpenter, despite the possibility of them doing the project themselves after investing tons of time into learning how.
These days, I spend my personal coding time on building personal interfaces either as a shell script or as emacs packages. So many tools and applications hinders power usage.
This article triggers all my “written by an LLM” spidey senses.
Which is ironic considering the subject matter. “Perfect”, but artificially constructed. “Just for me”, but algorithmic slop.
I agree that you can do so much more custom tailoring of bespoke software with the speed an LLM brings. But something inside of me still revolts at calling this anything other than “convenient”.
“Perfect” I will reserve for things I’ve made myself. However “imperfect” they may really be.
This has always been possible, even if you weren't a programmer. You just needed to have the desire to customize your computing environment, and the time and patience to do it.
There is so much software out there, written by people who wanted to solve their particular problem, just like you. Chances are that some of it will fit your needs, and, if the software is flexible enough, will allow you to customize it to make that fit even better.
This is why the Unix philosophy is so powerful. Small independent programs that do one thing well, which can be configured and composed in practically infinite number of ways. I don't need to write a file search or sorting program, nor does the file search program need to implement sorting. But as a user, I can compose both programs in a way to get a sorted list of files by any criteria I need. This is possible without either program being aware of the other, and I can compose programs written decades ago with ones written today.
You can extend this to other parts of your system as well. Instead of using a desktop environment like GNOME, try using a program that just manages windows. Then pick another program for launching applications. And so on. This is certainly more work than the alternative, but at the end of the day, you feel like you are in control of your computer, instead of the other way around.