These kind of inevitability articles always citing the same bloggers are just there to support AI. They never address:
- Real developers like Rob Pike who hate AI.
- The IP theft that powers the models.
- The actual useful output of LLMs that is very low.
- The fact that 99.9999% of useful software was produced before AI.
- The fact that "nostalgic developers" are not interested in "writing" code, but understanding algorithms and creating beauty.
These articles lie by omission, direct your attention to the points they want you to discuss, present false dichotomies and are generally deceptive. If these people win, we are in for a horrible future.
All of your bullet points look deceptive or dishonest to me. They are either untrue or something that won't stop the march of progress. When the car was invented was it a useful counter-argument to suggest 99.9999% of miles traveled so far were horses or bicycles? No.
To use an analogy, back in the days of film cameras and before 1 hour labs, the "craftsman" photographer would carefully frame the shot, carefully setting the exposure, aperture and focus. The most meticulous would take notes in a notebook. There were only 36 frames to a roll of film and all going well, the photographer had to wait a couple of days to get back the proof sheet. Those were the days when expert photographers were commissioned to take photos for special events, etc.
These days, everybody is an expert photographer, taking thousands of irrelevant photos with their smartphones. The volume of photos has exploded, the quality of the best has minimally changed (i.e. before being photoshopped, etc.)
The current crop of AI-aided tools are comparable to the early digital cameras in phones.
I do hand tool woodworking as a hobby. Aside from rough dimensioning, all the final cuts, planing, mortising, carving, dove tails etc are done by hand. Sometimes using tools over 100yrs old, not out of some fetish for the past, they are just better and cheaper than hand tools today.
It takes forever but I want to work the wood and develop actual skill. I don't want to just push wood through a series of saws, sanders, jigs and other machines. It has also made me much better at building “we need this now” type things (decks, cabinets etc) with power tools in general. I am much more precise, sensitive, and detail oriented.
I hope and feel there is something similar with coding and LLMs. A way to repurpose that hard earned sensitivity and recover some of the zen aspects as well. I am still figuring that out, part of it has been tiring but honestly a lot of it has made programming more fun too.
The 'make it go' people that I worked with usually didn't understand many of the underlying code, and the 'craft' people always need to fix it.
Craft people aren't losing anything. If anything, they are more valuable because they need to fix the slopware written by AI and the 'make it go' developers.
Meanwhile, Undertale, one of the most celebrated video games, famously has a 1000+ line switch statement and AI had nothing to do with it. Sometimes you have to bang out something that works, just to even get the chance to be annoyed at how bad it is for next version.
Its one thing when code was hammered out by someone to just work, its worse fixing code that no one even wrote to begin with. This period of programming is going to produce a lot of code people dump and replace because its not worth fixing.
And like SEO blog spam it’s just going to grow in volume because people want to pad their CV’s with all sorts of activity in GitHub regardless of the quality
I've been feeling the craft side of this for the last few years. My education is in Fine Art and I am a self taught UI developer. To me this was a craft of making the code do what the designer envisioned and working with creatives to create engaging and unique interfaces. Slowly but surely "standardization" eroded this via bootstrap and material UI and interfaces lost that spark of creativity. This was the beginning of thinking of sites as products in my mind. LLMs are just the nail in this coffin. Since tools like Claude Code and Cursor have entered the market, I don't do tech in my free time anymore. I don't enjoy it now. I just use the LLM at work like the business dictates (and monitors) then clock out promptly at 5:00.
One solution: do NOT just program for work. If it's not work related - where management can dictate how you work - you can whatever you want, and if what you want is to keep writing software and not outsource your brain to an AI, absolutely do so.
I’ve come to the same conclusion, though my line of work was research rather than software engineering. “He who pays the piper calls the tune.” It’s fun as long as I enjoyed the tunes being called, but the tunes changed, and I became less interested in playing.
I am now a tenure-track community college professor. I’m evaluated entirely by my teaching and service. While teaching a full course load is intense, and while my salary is nowhere near what a FAANG engineer makes, I get three months of summer break and one month of winter break every year to rejuvenate and to work on personal projects, with nobody telling me what research projects to work on, how frequently I should publish, and how fast I ship code.
This quote from J. J. Thomson resonates with me, and it’s more than 100 years old:
"Granting the importance of this pioneering research, how can it best be promoted? The method of direct endowment will not work, for if you pay a man a salary for doing research, he and you will want to have something to point to at the end of the year to show that the money has not been wasted. In promising work of the highest class, however, results do not come in this regular fashion, in fact years may pass without any tangible results being obtained, and the position of the paid worker would be very embarrassing and he would naturally take to work on a lower, or at any rate a different plane where he could be sure of getting year by year tangible results which would justify his salary. The position is this: You want this kind of research, but, if you pay a man to do it, it will drive him to research of a different kind. The only thing to do is to pay him for doing something else and give him enough leisure to do research for the love of it." (from https://archive.org/details/b29932208/page/198/mode/2up).
That was the original strategy for universities: teaching was the job, and research was the side-product of having some very smart people with free time. Until some "genius" decided that it was better to have professors competing for money to pay directly for their research. This transformed a noble and desirable profession into just another money searching activity.
Fine that doesn't change the fact for a lot of people they felt they had "if you love what you do you don't work a day in your life" and now they don't. They aren't wrong to feel a sense of deep loss.
Or just shut down your computer after work and “touch grass”. Go to the gym, hang out with friends and family.
My “brain” has always been a systems thinker. I was fortunate enough even in my first job to be directly in front of our customer and gathering requirements, not having the label for it then but trying to solve XYProblems, dealing directly with users and their pain points and seeing an entire data entry department built around my code. This was when I was 22 - 3 decades ago.
Now my brain helps me go from ambiguous, conflicting requirements, working with people, an empty AWS account and an empty git repo to a complete working solution.
Coding has always been the necesary grind between vision and implementation
Using an LLM for coding is like using a Electric shaver. It is unpredictable and you have to keep going over the same area in hopes that it will pick up the remaining few stubs of hair. Boring, irritating but very convenient.
Use a straight razor, which is predictable and you feel time flying and you end up with perfect shave.
I think this article misses a potential connection in the capitalist critique of LLMs to correlate this to the equivalent "industrialization" of coding. When a craft becomes industrialized, as is talked about here, you see the divergence in hobbyists and mass production.
I think because of the uniqueness or newness of the craft of programming - this shift hadn't actually occurred and you were seeing hobbyist programmers landing jobs and being able to output professional code by crafting it thoughtfully as there wasn't a major output difference previously. Now we are seeing that difference.
That can go both ways, I’m more make it go and I hate nothing more than debugging somebody else’s over complicated solution but technically fascinating code. In my world boring code is good, maintainable code.
I don’t think this split is fundamental or permanent.
Look at photography.
You have both - the point and shoot people and the ones that use photography as a craft.
And I am seeing that with LLMs as well. You do have craft people that find joy in figuring out craft the perfect one shot prompt or create a system that coordinates a bunch of agents.
That is also craft, but like photography, craft with a more capable tool.
Craft is caring about the x in y = mx + b, while the so called "it's a means to an end" care about the y.
The difference between "craft lovers" and "doers" is that one operates at a better fitting abstraction (that is more aligned to the values of capitalism).
You can say "doers" are just "craft lovers" in and of itself - there is little distinction between them - this is just reiterating the change from binary to high level languages.
I don't like this framing. Does the market penalize people for going to see a movie or going skiing? The most effective way for someone to make money and someone's hobbies usually do not overlap and when they do turning a hobby into a job often results in one growing to hate the hobby.
My take is that there used to be a significant overlap between hobbyist-style exploration/coding and what industry wanted, especially during the PC revolution where companies like Apple and Microsoft were started by hobbyists selling their creations to other people. This continued through the 1990s and the 2000s; we know the story of how Mark Zuckerberg started Facebook from his Harvard dorm room. I am a 90s kid who was inspired by the stories of Steve Jobs and Bill Gates to pursue a computing career. I was also inspired by Bell Labs and Xerox PARC researchers.
The “hacker-friendliness” of software industry employment has been eroding in the past decade or so, and generative AI is another factor that strengthens the position of business owners and managers. Perhaps this is the maturing of the software development field. Back when computers were new and when there were few people skilled in computing, employment was more favorable for hobbyists. Over time the frontiers of computing have been settled, which reduced the need for explorers, and thus explorers have been sidelined in favor of different types of workers. LLMs are another step; while I’m not sure that LLMs could do academic research in computer science, they are already capable of doing software engineering tasks that undergraduates and interns could do.
I think what some of us are mourning is the closing of a frontier, of our figurative pastures being turned into suburban subdivisions. It’s bigger than generative AI; it’s a field that is less dependent on hobbyists for its future.
There will always be other frontiers, and even in computing there are still interesting areas of research and areas where hobbyists can contribute. But I think much of the software industry has moved in a direction where its ethos is different from the ethos of enthusiasts.
If you were to want to do it between 8am and 5pm, yeah I’d say it does. Lots of places demand much longer hours as well, and would pass over people who want to make use of their free time.
One craft is automated and a new one is just beginning.
Building AI agents is really fun and the problem of having them be reliable adaptable efficient is actually really challenging and I'm having a lot of fun with it trying to figure it out.
To me it's a lot like factorio or my personal favorite Dyson sphere program where at first you do everything by hand and then you automate and then you automate the automation.
For the first time in human history we can automate intelligence with a computer but just because we can automate it doesn't mean all the good automation is good and we need engineers who can figure out how to automate it reliably scale it deploy it maintain it.
And yes eventually we will automate the automation too.
- Real developers like Rob Pike who hate AI.
- The IP theft that powers the models.
- The actual useful output of LLMs that is very low.
- The fact that 99.9999% of useful software was produced before AI.
- The fact that "nostalgic developers" are not interested in "writing" code, but understanding algorithms and creating beauty.
These articles lie by omission, direct your attention to the points they want you to discuss, present false dichotomies and are generally deceptive. If these people win, we are in for a horrible future.
These days, everybody is an expert photographer, taking thousands of irrelevant photos with their smartphones. The volume of photos has exploded, the quality of the best has minimally changed (i.e. before being photoshopped, etc.)
The current crop of AI-aided tools are comparable to the early digital cameras in phones.
It takes forever but I want to work the wood and develop actual skill. I don't want to just push wood through a series of saws, sanders, jigs and other machines. It has also made me much better at building “we need this now” type things (decks, cabinets etc) with power tools in general. I am much more precise, sensitive, and detail oriented.
I hope and feel there is something similar with coding and LLMs. A way to repurpose that hard earned sensitivity and recover some of the zen aspects as well. I am still figuring that out, part of it has been tiring but honestly a lot of it has made programming more fun too.
Craft people aren't losing anything. If anything, they are more valuable because they need to fix the slopware written by AI and the 'make it go' developers.
I am now a tenure-track community college professor. I’m evaluated entirely by my teaching and service. While teaching a full course load is intense, and while my salary is nowhere near what a FAANG engineer makes, I get three months of summer break and one month of winter break every year to rejuvenate and to work on personal projects, with nobody telling me what research projects to work on, how frequently I should publish, and how fast I ship code.
This quote from J. J. Thomson resonates with me, and it’s more than 100 years old:
"Granting the importance of this pioneering research, how can it best be promoted? The method of direct endowment will not work, for if you pay a man a salary for doing research, he and you will want to have something to point to at the end of the year to show that the money has not been wasted. In promising work of the highest class, however, results do not come in this regular fashion, in fact years may pass without any tangible results being obtained, and the position of the paid worker would be very embarrassing and he would naturally take to work on a lower, or at any rate a different plane where he could be sure of getting year by year tangible results which would justify his salary. The position is this: You want this kind of research, but, if you pay a man to do it, it will drive him to research of a different kind. The only thing to do is to pay him for doing something else and give him enough leisure to do research for the love of it." (from https://archive.org/details/b29932208/page/198/mode/2up).
My “brain” has always been a systems thinker. I was fortunate enough even in my first job to be directly in front of our customer and gathering requirements, not having the label for it then but trying to solve XYProblems, dealing directly with users and their pain points and seeing an entire data entry department built around my code. This was when I was 22 - 3 decades ago.
Now my brain helps me go from ambiguous, conflicting requirements, working with people, an empty AWS account and an empty git repo to a complete working solution.
Coding has always been the necesary grind between vision and implementation
Use a straight razor, which is predictable and you feel time flying and you end up with perfect shave.
I think because of the uniqueness or newness of the craft of programming - this shift hadn't actually occurred and you were seeing hobbyist programmers landing jobs and being able to output professional code by crafting it thoughtfully as there wasn't a major output difference previously. Now we are seeing that difference.
Food for thought, interesting article!
Look at photography.
You have both - the point and shoot people and the ones that use photography as a craft.
And I am seeing that with LLMs as well. You do have craft people that find joy in figuring out craft the perfect one shot prompt or create a system that coordinates a bunch of agents.
That is also craft, but like photography, craft with a more capable tool.
The difference between "craft lovers" and "doers" is that one operates at a better fitting abstraction (that is more aligned to the values of capitalism).
You can say "doers" are just "craft lovers" in and of itself - there is little distinction between them - this is just reiterating the change from binary to high level languages.
I don't like this framing. Does the market penalize people for going to see a movie or going skiing? The most effective way for someone to make money and someone's hobbies usually do not overlap and when they do turning a hobby into a job often results in one growing to hate the hobby.
The “hacker-friendliness” of software industry employment has been eroding in the past decade or so, and generative AI is another factor that strengthens the position of business owners and managers. Perhaps this is the maturing of the software development field. Back when computers were new and when there were few people skilled in computing, employment was more favorable for hobbyists. Over time the frontiers of computing have been settled, which reduced the need for explorers, and thus explorers have been sidelined in favor of different types of workers. LLMs are another step; while I’m not sure that LLMs could do academic research in computer science, they are already capable of doing software engineering tasks that undergraduates and interns could do.
I think what some of us are mourning is the closing of a frontier, of our figurative pastures being turned into suburban subdivisions. It’s bigger than generative AI; it’s a field that is less dependent on hobbyists for its future.
There will always be other frontiers, and even in computing there are still interesting areas of research and areas where hobbyists can contribute. But I think much of the software industry has moved in a direction where its ethos is different from the ethos of enthusiasts.
How is this post different than dozens that have come before it?
It's the same gnashing of teeth, just with different analogies each time.
Building AI agents is really fun and the problem of having them be reliable adaptable efficient is actually really challenging and I'm having a lot of fun with it trying to figure it out.
To me it's a lot like factorio or my personal favorite Dyson sphere program where at first you do everything by hand and then you automate and then you automate the automation.
For the first time in human history we can automate intelligence with a computer but just because we can automate it doesn't mean all the good automation is good and we need engineers who can figure out how to automate it reliably scale it deploy it maintain it.
And yes eventually we will automate the automation too.