AI has automated my favorite part of the job: coding.
Gone is all the experience in clean code, good idioms, etc. All replaced by easily generated shitty code that can be removed and generated again as we please, until it works. No thought about the quality of code itself. Some companies are straight up forcing programmers to live in Claude Code and never even see the code, just write the spec.
It’s disgusting. And the worst part is that you can’t opt-out. If you give even the slightest hint that you don’t like AI you’re seen as a Luddite and you’ll be put next in line for the upcoming layoff.
I think you do a good job capturing an actual microcosm of the real problems here at an emotional level - why people "hate" it.
(a) loss of fulfillment (b) lower quality of output and nobody will care so the world will just "degrade" and (c) a perceived lack of autonomy ("forcing", "you can't opt out") around how adoption itself is executed
This is surprising to me because I found that I am able to invest even more of my time in considering the good abstractions and idioms that I want to employ for a particular problem, and now most of my day is spent in discussing patterns and architecture rather than what brackets I have left to close.
Although, full disclosure: I have quibbled with Gemini quite a bit over the trailing comma, which clutters the diff, and buries the lede at code review.
But it's been very gratifying to refer to modules entirely by their role in a given design pattern (eg "driven adapter") and be understood. To define the idiom, and see it adhered to.
But am I operating still at too low a level? Would I be penalized, at these "some companies" for not producing shitty code?
Ah, but in my particularly forward-deployed line, there's always an element of showmanship compelling me to write demonstrable code.
But, also, how can I specify the behavior if I can't name the component? Is it really possible to "vibe" code à sophisticated piece of software entirely from the user's domain terminology? Without any intermediate abstractions in mind? Inconceivable, frankly. There are invisible walls, invisible shapes beneath the surface.
Then again, I'm young enough to have never allocated memory manually in my professional life.
A programmer thinks and directly engages ("works with their hands") at many abstraction layers at once. You must admit the scope of this has been dramatically reduced. You may personally love one of those abstraction layers so much that you can be happy without the others, and without even the hands-on half of the one layer you love. Many people aren't so lucky.
I've experienced myself that even if you explain to your AI-loving boss in a well reasoned manner that an LLM is not the right tool for the job he wants you to use it for, you simply get labeled as anti tech and your chances of advancement plummet (he was explicit about that). But I still do it, because dammit I'm still a human with a brain. The thought of being a corporate drone who just falls in line with any demand no matter how asinine is worse than the thought of being unemployed.
In my observation, this is becoming more common over time.
The "boss" is often not a promoted engineer, but an MBA brought in to "manage" engineers.
Engineering is where idealism hits reality, and the increasingly undisciplined cronies who "manage" us don't like hearing that their idea is incompatible with physics.
We are subject matter experts who are burdened with responsibility but denied agency and authority in our area of expertise.
Just because tractors are here doesn't mean you can't garden as a hobby. I'm also tired of the slop, but this is a culture and management problem. Every software job I've had there was tension between speed and maintainability.
Many (most?) adults do not have time to write an appreciable amount of software outside their jobs. Further, this doesn't address the enormous impact that losing the option of doing something you find engaging and don't hate for a job has on mental wellbeing, life satisfaction, just being happy at all, etc.
This was true of clothing, agriculture, and will also be true of SaaS. I choose affordable products and well-paid workers, but that requires embracing automation.
Are you claiming that software is unaffordable? I get the sense that it was so cheap people were unhappy with how much was shoved into places where it was unwanted.
> It’s disgusting. And the worst part is that you can’t opt-out. If you give even the slightest hint that you don’t like AI you’re seen as a Luddite and you’ll be put next in line for the upcoming layoff.
So we found something much worse than crypto.
You can opt-out of crypto, but you cannot opt-out of AI and have no choice but to participate.
I thought I was the only one that noticed this and it was driving me insane. Can’t believe the experience is so sluggish, makes me miss KDE so much which is ridiculous.
If it took 90 minutes + a Claude Code subscription then the most anyone else is going to be willing to pay for the same code is... ~90 minutes of wages + a Claude Code subscription.
Ofc the person earning those wages will be more skilled than most, but unless those skills are incredibly rare & unique, it's unlikely 90 minutes of their time will be worth $100k.
And ofc, the market value of this code could be higher, even much higher, the the cost to produce it, but for this to be the case, there needs to be some sort of moat, some sort of reason another similarly skilled person cannot just use Claude to whip up something similar in their 90 minutes.
It's open source scratching an itch. But 99.9% of coders wouldn't know what the library is for. Those that do don't use agents for coding (in my experience sample size 1).
The first paragraph is GP's human observation; the rest is an LLM sample output specifically chosen to illustrate the observation. It just wasn't explicitly framed that way.
>Being in a tight AI loop just wasn't part of the design of any existing programming languages.
I would dare to say that any Lisp (Common Lisp, Clojure, Racket, whatever) is perfect for a tight AI loop thanks to REPL-driven development. It's an interesting space to explore and I know that the Clojure community at least are trying to figure out something there.
reply