This analogy has layers that OP probably doesn't recognize.
The film industry loves cgi because none of the digital vfx houses are unionized and they can treat the artists like crap. It severely devalued a ton of skilled labor around miniature and set design.
Now, after 20 years of hard swing into cgi, people are starting to recognize just how much better movies from the practical era looked, and there is a push back towards it. Project Hail Mary was predominantly practical effects, for example. Stop motion animation is coming back, and theres a push back into hand cell animation.
> Project Hail Mary was predominantly practical effects
Don't drink the Kool Aid. The studios love to make this sort of claim — recent examples include F1: The Movie, Top Gun: Maverick, and Mission: Impossible – The Final Reckoning, and you'll see interviews where the main actors say it was all real — but it's just marketing.
Project Hail Mary leans heavily on CG. For example, while they did hire a puppeteer (he ended up voicing the alien!) to control a neat physical puppet on set, almost all of it was replaced with CG in post production, and only used for reference. Corridor Crew has a great breakdown [1]. They frequently provide a good counterpoint against fraudulent "no CG" claims.
While many of the things tou say are true, movies like PHM and other "predominantly practical" movies have so many effects that they put Marvel to shame.
> Those who refuse to use an LLM will fall behind because they won't be able to produce as much
Seems like a silly and needlessly aggressive take.
Fall behind what? Able to produce "as much" what? I've never been evaluated on volume in my life. Nor have co workers who were severely "behind" ever feared for their jobs.
Just about every professional coding job I've ever had has had programmers eager to code more, complaining about how much rigmarole there is around making changes, complaining about constant meetings and endless bureaucracy around change management and requirements. Meanwhile business mostly saw programmer velocity and output as a problem and a business risk, as they struggled to keep up with the rate of change and kept stepping on the brakes.
Like realistically even without LLMs I output probably around 10x as much code working alone, self-employed with zero meetings or bureaucracy, than I've ever done as a professional programmer. My output sometimes rivals that of entire teams' I've been part of, mostly because I get to just code to my heart's content.
> My output sometimes rivals that of entire teams' I've been part of
That's not very hard with many of the teams I've seen, with or without LLMs. Though the old adage of "If you want to go fast, go alone. If you want to go far, go together" still applies.
> My output sometimes rivals that of entire teams' I've been part of, mostly because I get to just code to my heart's content.
The fact is that often I code less than most of my peers. Because I prefer spending some time to design suitable data structures/algorithms for the problem at hand. I don't aim for perfection, just that it align with the business domain (and/or the interface) so that future works are proportional with the scope of change requests. This has reflected in small commits because the fundamental core of the business domain rarely changes (when they do, we have bigger problems than my writing speed).
So I've never seen the need to increase my writing speed, because there's never any need to do so. What I'd like to increase is the speed the Product team get back to me with answers to my questions. Because that's often the real bottleneck.
That's not what suitable data structures/algorithms mean. What you stated are mere helpers and still pertains to the realms of coding, not design.
Coding isn't and never was the issue. It is a tool and not the intent. Think about what would stand universally true whether you use Go, C, JavaScript, Assembly,... The organization of data (information), and the process of transforming it (computation).
Those do not depends on code. We already have basic ones like the list, the map, the stack, the queue, the binary tree, the graphs,... But for any business domain, you can create more specific ones. And like the basic one, they do not depends on code. The code depends on them.
So writing code faster does not make the design better.
> Fall behind what? Able to produce "as much" what?
Customer meaningful features that move the needle on the business.
I think this is strictly true. And not because LLMs can write code faster. I think it's true even if you're still writing most of your code by hand and using the LLM as an assistant.
My anecdotal but decades-long observation is that most of the time=cost of a project comes not from writing code, but from dealing with "issues". Weird bugs, surprising behaviors, spec ambiguities, library defects, mysterious test failures, etc. Stuff that requires intense debugging and building out a mental map of code that might not even be yours. LLMs excel at this kind of thing, freeing you up to spend most of your time working on business logic.
I think people are making a bad assumption that features = profit, and that we're going to be trapped in a red-queen race to move in place while shipping features at an astonishing rate. I don't think this is going to happen.
Before subscription services, you needed to add features because you had to justify to people why they should buy an upgrade. So yeah, it made sense to make as many features as possible to try to cast a wide net.
I think with software as a service, making features is not really the most important thing. Realistically, people buy software for what it does right now, not its future potential. Further, changing things out from underneath users tends to annoy them (pretty much EVERY time a service introduces a redesign, even if it's a good one, people initially hate it -- you're asking them to relearn a thing that was working perfectly fine).
Anyway, I think new software is going to win the same way it's always won, based on its utility, not based on shipping features at some sort of frantic rate.
And I am gradually coming to the conclusion that "needle" isn't even features. In a world where everyone has AI access, moving the needle in an existing product space can readily be done by whoever. The real game changers will be those who redefine their market segment entirely rendering existing offering completely out of customer demand. And the only way to migrate the business to the new model from the ground up in say four to six months will only economically be able to be done by AI.
My hobby AI projects feature wise match existing company offerings in about a week of turn around. But this alone is valueless. The new thing that didn't exist before 2026 will remain the hard moat. But these moats will dissolve as fast as OpenAI can scrape your public marketing. It's going to be like releasing Meccha Chameleon as a break out hit but a month later the clones on Roblox having greater player numbers. This is the turn around times we're going to have to live with in general for business pivots to the "next" business logic that makes sense in the market.
Closer to the AI world it's going to be as fast as the transition from prompt engineering and MCPs to loop engineering and harnesses. I'm pretty confident popular commentators will see "loops" as old hat by December by raw function of what speed of evolution we're dealing with here now.
Realistically, has the volume of code that can be produced ever been the bottleneck? In every job I’ve ever had, it was never that the devs couldn’t write enough code fast enough, it was everything else that slowed them down, mostly other people.
> Weird bugs, surprising behaviors, spec ambiguities, library defects, mysterious test failures, etc. Stuff that requires intense debugging and building out a mental map of code that might not even be yours
And those issues often appears because no one had the "time" to properly design a solution before rushing to code. Saving one hour of planning by spending weeks on debugging.
Yes, I dislike this kind of take so much. It keeps being repeated as a truthism and a way of putting down people that don't do what the speaker wants. It's fine to disagree, but there's no need to get such a threatening tone.
A lot of tech jobs seem to be only about sheer output volume, with quality (maintenability, availability, security, generally understanding what the thing is doing) not mattering much. In that case sure, LLM all the way and whatever happens happens. But not all jobs are like that.
My experience with regard to quality is quite the opposite.
With LLM at my disposal, I had the time- and effort-budget to expand test suites considerably, I was even able to attack a somewhat thorny question of reproducible builds on MSVC, which is not exactly friendly towards determinism.
These tasks would take me personally so much time that I would have to set them aside, at the cost of output quality.
Likewise - it's not just about generating production code faster; it's now feasible to create all kinds of experiments, test fixtures, visualizers, analyzers, and support software you never would have had time for before, which you can use to improve your process and create a better product.
I recently had to evaluate some data one of my coworkers had produced, to decide whether some process was going to be feasible. It would have taken probably a couple of weeks for me to dig through it all by hand, so he whipped up a quick little interactive web app that let me explore the data with all the connections and context visible, and I reviewed it much more quickly. A single-use application for a single user - what a luxury! - and it took less time to create than the time I saved by using it.
I will check in Monday morning on the result of an A/B test I set running over the weekend, comparing a reimplementation of a certain tool with its original. The test spins up AWS boxes, pulls code repos, compiles them, runs analysis, recovers from errors and maintains a retry queue, etc., etc., and ultimately collates the results and generates a report. I didn't write a line of this! I wouldn't have written anything nearly so sophisticated, and the results I'd have gotten would have been far less useful. But here we are: I tell the computer "make it so", and I get a really valuable test which runs itself while I enjoy my life, and we'll be able to switch to the new tool with confidence.
"it's now feasible to create all kinds of experiments, test fixtures, visualizers, analyzers, and support software you never would have had time for before, which you can use to improve your process and create a better product."
Yes, yes, yes, so much yes. Log analyzers, consistency checkers, performance evaluators, all sorts of hooks and helpers, precisely of the "single-use application for a single user - what a luxury!" sort, which made the entire development process so much more secure and comfortable. Most of the tedious moments (looking for a single bad value in a heap of logs etc.) went away.
The scaffolding I have now is a castle. The scaffolding I had a year ago was a log cabin. Nothing against log cabins in general, but castles are a lot harder to break into and have fewer holes for problems to sneak in.
Sure, but this is not at all uniform in how people use these tools any more than there was uniformity in how people balanced quality and speed before LLMs entered the picture. There was already a lot of variety in how some developers moved fast and broke things, others moved slow and fixed things, some would prototype new crazy ideas and others would spent time on the long tail of getting something from working adequately to being robust and polished.
This isn't to say that LLMs aren't impactful, but that there's an argument for viewing them less as being a fundamental shift in how our profession works and more as another tool we can use to pursue essentially the same goals more efficiently than before. Like any other tool that's worth having, they can do things our existing tools couldn't do as well, or else we wouldn't have added it to our toolbox, but you still need to be able to recognize when to use it and when not to (and potentially how to use it when you do).
I think that part of why these tools are so polarizing is that there was already some assymetry in how much longer it takes to clean up things than to create things that need to be cleaned up, so a new tool that makes everyone more productive has a lot of potential to exacerbate the existing imbalance. To make up some numbers for illustrative purposes, if someone introduced four new flaky tests in the time it took to fully diagnose and clean up one, and then LLMs came and made everybody twice as productive, now in the same amount of time someone might introduce eight flaky tests while you fixed two, so you're falling behind twice as fast. Unless the productivity gain disproportionately speeds up the people working on making things more robust and polished (which I find dubious; if anything I think the opposite seems more likely) or LLMs suddenly make everyone who didn't care about quality when rushing things out take it more seriously (which seems even more dubious), then LLMs don't improve the situation for people who already felt that the balance was slanted too heavily towards speed over quality.
This is very much an N=1 anecdote from a friend, but his manager has basically doubled velocity expectations for the team at his company over the last year. Everyone has to use Claude code because that's the only model they're allowed to use, and not using it means not hitting the arbitrary expectations.
Conversely, the company I am at has no such expectations, and we've got a legacy code base that LLMs aren't very handy in anyway.
we've got a legacy code base that LLMs aren't very handy in anyway
So do I. What I'm finding is that they are now.
I've spent the last week tracking down bugs using Fable that have gone undiagnosed for several years. And this is a damned obscure legacy code base that runs on a proprietary 8051 variant. Guaranteed to be nothing like it in-distribution.
I worked for a company that measures developer's output in number of commits, PRs created and approved, and Jira tickets per sprint. Management doesn't even insist on that the tickets have any kind of an effort estimate.
It can be pretty depressing, until you learn how to game the system - create tickets for yourself that are tiny amounts of work. I hear that it's getting harder to do that, because management is looking more carefully at tickets generated and it looks like they'll start having developers assign points to their tickets before the tickets are added to the sprint
It reminds me of people that get upset when other people aren't drinking as much as them at a party. It's like they need other people to consume the thing because they suspect that maybe their consumption will look a little problematic if other people aren't doing it to the same degree.
I think a lot of HN'ers are in denial. I was an LLM skeptic check my history if you like. At the beginning of 2026 LLMs shifted over the hump to as good or better than most devs and are continuing to get better. I don't think we've even begun to see how this is going to affect the industry. People in charge don't and never have cared about code quality, tech debt, maintainability. Now they will not only not care but cease to listen to devs that insist on it.
People on HN will drop what they think is their trump card. Ie The computer spitting out incorrect info. However, I've worked in banking finance where data was wrong and people in charge just shrugged when I showed them and said something like, accounting will catch it. And here's the worst thing. They were right.
It's marketing. The big AI companies know what they're doing and are trying to drive adoption with FOMO. Some people bought into the idea early on and feel self-important. Meanwhile, using AI is so easy that it's tantamount to pushing a button, because that's the whole point of it: to make things easy to do. You can pick it up in half an hour, so it's impossible to "fall behind," unless you're holding stock when the bubble inevitably crashes.
We have general expectations on the velocity an engineer should be able to work at. If it took someone 5 weeks to deliver the exact same feature another engineer could deliver in 1 week, that would be considered "falling behind" at most places. Would you disagree?
The notion of falling behind because you refuse to adopt an advance in the field seems both uncontroversial and not aggressive at all to me.
127. A technological advance that appears not to threaten freedom often turns out to threaten it very seriously later on. For example, consider motorized transport. A walking man formerly could go where he pleased, go at his own pace without observing any traffic regulations, and was independent of technological support-systems. When motor vehicles were introduced they appeared to increase man’s freedom. They took no freedom away from the walking man, no one had to have an automobile if he didn’t want one, and anyone who did choose to buy an automobile could travel much faster and farther than a walking man. But the introduction of motorized transport soon changed society in such a way as to restrict greatly man’s freedom of locomotion. When automobiles became numerous, it became necessary to regulate their use extensively. In a car, especially in densely populated areas, one cannot just go where one likes at one’s own pace one’s movement is governed by the flow of traffic and by various traffic laws. One is tied down by various obligations: license requirements, driver test, renewing registration, insurance, maintenance required for safety, monthly payments on purchase price. Moreover, the use of motorized transport is no longer optional. Since the introduction of motorized transport the arrangement of our cities has changed in such a way that the majority of people no longer live within walking distance of their place of employment, shopping areas and recreational opportunities, so that they HAVE TO depend on the automobile for transportation. Or else they must use public transportation, in which case they have even less control over their own movement than when driving a car. Even the walker’s freedom is now greatly restricted. In the city he continually has to stop to wait for traffic lights that are designed mainly to serve auto traffic. In the country, motor traffic makes it dangerous and unpleasant to walk along the highway. (Note this important point that we have just illustrated with the case of motorized transport: When a new item of technology is introduced as an option that an individual can accept or not as he chooses, it does not necessarily REMAIN optional. In many cases the new technology changes society in such a way that people eventually find themselves FORCED to use it.)
Yup, that is called progress. One freedom to live in a cave with his 6 spouses and hunting animals all day was indeed taken away. In exchange you don't need to hunt all day, you can go to groceries, you don't need six spouses and 20 kids, as kids death rate is not 80% but 0.001%.
One can, obviously, romanticize the times of cave live, that's fine with me, but I doubt that would be a common choice.
No, he is correct. LLMs have much larger working memories for the kind of details you work with in programming tasks. You are at an objective cognitive deficit by not taking advantage of this. Everybody knows what he means by left behind. When you program, you do so with a goal in mind, and you will not be able to reach that goal as quickly without LLMs. You will be outcompeted by those who use them, and this means that opportunities to contribute professionally, in open source, etc. will be closed to you.
I'm curious about what adaptation you have in mind.
You use LLMs to write specific functions? The person who uses it in an agent loop will leave you behind to die.
You use LLMs in an agent loop? The person who uses LLMs to supervise loops will leave you behind to die.
You use LLMS to supervise agent loops? The person who uses LLMs to determine product offering and automatically start supervision on producing the product will leave you behind to die.
You use LLMs to determine product offering and kick off the supervision? The person who uses LLMs to clone your product without the initial product research will leave you behind to die.
You use LLMs to clone products gaining traction? The person who runs a cluster 100x the size of yours will leave you behind to die.
I am trying to understand where you think you fit in, in this Brave New World.
You obviously think that you're adapting, but if you're correct, anything you do now can be replaced by an LLM in the near future.
The Claude file, documentation, and memories you leave in the project are part of the harness. Most of Claude's forgetfulness can be eliminated with strategic placement of documentation. After you've got that figured out, you'll have to compact the session long before it forgets because it starts getting sloppy and slow at high context. With your guidance it will basically keep its own harness updated for you as the project progresses.
And it also helps to give it better tools than grep and find to explore, because it can waste lots of tokens and pollute the context with the defaults.
The reality is that everyone will be replaced by a cheaper alternative someday, with LLMs or not. If you depend on LLMs more and more to do your work and the costs of keeping your tokens increases, your 'left behind' co-workers will still be fine.
This one does not require any death threats. It's a statement of where the world is going. Maybe you disagree. Come back to this thread in 3 year and see which POV was more correct. The
* "LLMs suck, are stupid, I hate them, and I'm not using them"
or
* "LLMs are the future and if you don't adapt you'll left behind"
I'm confident it's this 2nd option. Care to wager?
People might be using hyperbole: "You'll be left behind" = "you'll be out of a job" or "you'll be unemployable" or "You'll die" but they all mean the same thing.
This whole you need to "adapt" to LLMs thing is bonkers to me, because there's practically no skill in using an LLM. It took me a weekend to learn how to use a coding harness, and the skill pretty much generalizes to all coding harnesses. The things that make me potentially good at using a coding harness are my preexisting engineering skills. I'm sorry, but I think if you believe that being on the cutting edge of knowing how to prompt is some sort of magical skill that's going to protect you from economic hardship, you're delusional.
Most of the "cutting edge" stuff I've seen is basically trying to scale the amount of parallel work that can be done, without any consideration to how much that costs, how much waste is generated, or if the output is even useful. Most of my coding time is spent thinking through problems. Which is exactly how I spent my time prior to LLMs.
Exactly, it's pretty obvious, and definitely as you sail, not aggressive (someone melts a little too easily) The comment was naive to the point of denial.
If it is the future, people will actually have plenty of time to wait and start using it only later. There is no hurry and no reason to be early adopter crash test dummy. They can wait and stary using it at own pace
The "or die" part betrays insecurity and weakness. You need to scare prople into using it rihht now, because of some perceived threat.
> Writing tests used to be a pain. This is no longer the case. It is ok to request unit tests/CI tests for each PR. These have never been more important since large refactors are becoming increasingly common. Human and LLM review may miss stuff but good tests should catch breakages.
The default behavior is not necessarily good. You end up with tests that match the code, but you don’t necessarily end up with tests that test the behavior you care about. And then, if the LLM tries to decide whether the code is correct, it can conclude “it matches the test so it must be right” regardless of whether it’s actually right.
> Writing every line by hand is no longer the norm. Those who refuse to use an LLM will fall behind because they won't be able to produce as much
> It remains important to be able to read the code and understand the architecture. As a result, I reduce my velocity by iterating over my PR until it reaches the same level of quality I would have produced "by hand"
I do that too and when I do it I'm not sure anymore if I'm "producing as much more" than if I was doing it by hand. I need to spend time to read the code, break down the flow so that it clicks in my head and so that I'm 100% sure that I understand what is going on and what every line does. And then I still test it (executing it), because that's where you notice the edge cases anyways.
Once I understand it and test it, the part where I iterate or fix small quirks and hallucinations is the smallest part of the job and is irrelevant if i do it by myself or ask the LLM to make the change.
I'm still not convinced that I'm faster with an LLM at all, since I add this new bottleneck (the time spent understanding every line). If I do it by hand it already clicks in my head, so it's faster for me to test it, find unaddressed edge cases and then confidently ship it. Maybe the LLMs gains are not in this at all and writing every line by hand will still be the norm for a long time.
Still, LLMs make me insanely faster in: finding something in the codebase, recostructing a flow and understanding the architecture, triaging a bug (sometimes it just solves it with a prompt), writing and updating tests, reviewing changes for potential issues. These days I have almost always 2/3 agents running doing something of the above.
That saves me hours and you can pry an LLM from my dead hands, but I'm still not sold that it makes me faster at producing production grade code that I fully understand and follows my company architecture and standards.
Then sure, if I need to make a prototype or a small tool for myself or some novelty thing, an LLM can do it without me ever touching or reading the code. But I think that's not what the majority of software engineers are employed to do.
Some of my colleagues say they don't want to be "AI proofreaders", that they'd prefer to do something else. I can't really argue, they are entitled to their own desires of course. But I do enjoy the chat sessions with agents. It's like pair programming with superman.
Nothing about AI will stop people doing the work that brings them joy, be it stop motion, or hand knitting a jumper from yarn you made yourself from shearing your own sheep.
You just won't be able to get a job doing it. It will be a hobby, not a way to make a living.
> It is more ok to refuse to take dependencies now. It used to be the go-to solution to avoid writing anything moderately complex. As recently as this morning, I asked an LLM to write a Levenshtein distance function instead of adding a dependency to my project.
The trap here is that LLMs love to YOLO out reinvented wheels and that leads to a lot of verbosity and untested complexity. Levenshtein distance is one thing, but I've seen an LLM try to hand roll an ORM which obviously will lead to buggier code and a context window bloated with irrelevant noise. Better, as always, to let the ORM maintainer leverage LLMs for the more local issue.
It's probably best to learn about LLMs, and then don't use them most of the time. It's much harder to justify not even knowing how the new thing works, than to justify not using it because the old thing is better.
This is the path I'm on. I want to know enough about them to actually demonstrate their weaknesses when I choose to not use them for a given task. Upper management doesn't want to hear "because they suck" when they ask why. My company (and many others) just added a new "AI proficiency" metric to their hiring process, and I can take a hint.
The expectation is that someone has already done that with a dependency. If the code has just been sharted out by an LLM, it has by definition been reviewed or even understood by no one.
I'm sceptical of the idea that the majority of programmers are already having LLMs write the code. It reminds me of the general idea some years back among the programmer chattering classes that everyone is surely doing some level of unit-testing, whereas in the real world there were tons and tons of teams that did zero unit-testing ever.
I joined VFX at the start of the 2000s, I rode the evolution of VFX from special effects, to fully digital, and back again (well not quite, "practical" effects are rarely practical, just really good VFX.)
I left in the late 2010s, Lots of competition meant that wages were kept down, and hours fucking long. It was fun, I loved being at the intersection of Art, infrastructure and programming.
I fear for the future.
I hope that I am ok, because I have experience of high scale that is not really in the training corpus. I've also been in ML for a reasonably long time, so have more experience of getting the dipshit machine to do useful things.
But thats pretty thin gruel.
I am rapidly approaching middle age, which means that no fucker is going to employ me as an apprentice if I want to re-train. My techincal and artistic skills are basically replaced. They are the equivalent of Linotype expert. Technically impressive but utterly fucking pointless for a world where newspapers are dead and so is analog printing. In 40 years I could possibly make a thin living as an artisan. But I plan on being dead by then.
- Avoid using magic numbers and strings. There should be consts or even better enums.
- When working on a patch, you should other the test first. Watch the test fail. Then include the new code. And watch the test pass.
- Leverage early return and continue as much as possible to reduce code indentation.
- Only delete comments if they are obsolete. If you change code, make sure the comment above is still correct.
- Use enums instead of boolean for function parameters.
- Talk to me like an engineer. Don't be excessively verbose. Be down to the point.
- Don't use superlative. Stop praising me, give me the cold hard truth.
- Let the reader of the code breath. Add empty lines between logic block of code. Add a small to the point comment to explain what the block does.
- When you write unit tests, add a short comment at the beginning of the function and class to explain what they test and how they test it.
- Check commit message, if you proof read or write one, follow these 7 rules:
Rule 1: Separate the subject line from the body with a single blank line.
Rule 2: Limit the subject line to 50 characters (72 is the absolute hard limit).
Rule 3: Capitalize the first letter of the subject line.
Rule 4: Do not end the subject line with a period.
Rule 5: Use the imperative mood in the subject line (e.g., "Fix bug," "Add feature,"
not "Fixed" or "Adds"). Test formula: It must complete the sentence: "If applied,
this commit will [your subject line here]".
Rule 6: Wrap the body text manually at 72 characters to prevent Git formatting issues.
Rule 7: Use the body to explain what and why vs. how. Assume the code explains the how;
the message must explain the context and reasoning.
In comments don't use prepositions (that, it, those) e.g. "It serves those file migration methods". Instead say e.g. "This method is intended to serve methods x,y and z or any method that has set up a migration source and sink".
You can accomplish quite a lot with smaller local models on reasonably priced pro tier hardware (not cheap hardware, but very attainable hardware for anyone making average software engineer money). Qwen 3.6 27B and 35BA3, Gemma 28B, and so on are incredibly beneficial even if Anthropic and OpenAI produce better options.
Failing that, GLM 5.2 is open weights, trades blows with current frontier models and widely available on commodity inference providers. And you could run it yourself if you do actually have the resources.
Even with locally runnable small "open" models you are relying on scraps of others. They are much worse at the LLM game and you don't know when they stop releasing the weights.
How can you go the opposite direction? Instead of using LLMs to produce more code, can you produce less, maybe higher abstraction code?
If you're a hacker, which most of you are not (things have changed here over time), you will reject this.
You'll also recognize that the problem is not AI in general or LLMs in particular, but the proprietary entities that control the best models.
That's the part HN'ers seem to have the most trouble with. They protest AI qua AI, as if that's somehow going to help, when they should be fighting for independent development and universal access.
> when they should be fighting for independent development and universal access.
Because it’s literally not going to happen. The existence of LLMs is a function of how much capital you have. Frontier models require so many resources to train and run that they are functionally inaccessible to the average person.
That’s why capital loves them! It’s a resources play.
You’re also conveniently leaving out all of the other negative aspects of LLMs/GenAI with regards to the arts, open communication, etc..
I think this is a flawed analogy. In the past when we had a new way of doing something that obsoleted the old way, it replaced it because it was an obvious improvement. I mean, stop motion is cool, but obviously there are limitations.
The deal GenAI offers is: the result will be mediocre at best, on average it will be slop, but it will do it much faster. Ok, that's a fair value proposition in certain contexts. We've always had a need to prototype things fast, and the tradeoff with a prototype is always quality.
However, we're living in an age where we have WAY TOO MUCH in the way of information byproducts, even before AI. How many people do you meet that are like "God, I just wish I had more software in my life!" Most people don't want more software, they want less software that works better. They want more quality and less quantity. It's like this in almost everything digital now. I sign onto Netflix and I can't find anything to watch, even though there's more to watch than I could consume in a lifetime. I live in abundance but I don't want any of it.
GenAI offers us an abundance of stuff we don't want or need (lots of bad code, lots of bad writing, lots of bad illustrations, lots of bad videos) at a cost of stuff we do not have in abundance (energy, attention, natural resources, jobs). It strikes me as a bad trade: lets transform the stuff we need into stuff nobody wants, while decimating our culture in the process.
Anyway, FWIW I do agree with his point that the job has always been problem solving. I use LLMs to solve problems, I'm not extinct. But I'm not going to pretend that I think this is a net win.
My biggest gripe with AI is that I struggle to come up with even one real problem that it has solved in my daily life, and that of my family and friends.
Yes it might have made me a bit faster at some things I do for work. But it seems to me that we face so many challenges as a civilization, and AI doesn’t actively help with any of them? Unless you buy into the narrative that it will somehow usher in a golden age of abundance where everyone is taken care of and nobody needs to work anymore (utter BS in my opinion). The amount of capital flowing into it, that is then not available for other causes, is completely mind-boggling to me.
> My biggest gripe with AI is that I struggle to come up with even one real problem that it has solved in my daily life, and that of my family and friends.
I wish I could upvote this a thousand times, because this is exactly my experience as well. It's made a few things slightly more convenient, but convenience is not exactly a problem in my life! And yet, it's actively damaging a lot of things I care about in a way that I think is going to be extremely bad for society.
With the improvements that AI has made in just the last year, it should be obvious to anyone that code written by an AI will at some point stop being "AI slop" and be better than the majority of coders are able to put out. Reduced to its basics, all code is just characters put into a sequence. Similar to chess or Go, both of which, it was claimed at one point or another, would be impossible for a computer to beat a human, until they did (chess 1997, go 2016), so computers will eventually produce better quality code than even a team of humans is capable of.
A genuine question : If an AI can reliably write code better than most coders, do it quicker, and produce code that runs efficiently which has less, or at least no more, bugs than human written code, why on earth would a company not use an AI to write all their code for most purposes?
And if they did, why is it important for that code to be 'elegant' or even human readable if the bug checking is also done by AI? (as seems to be the direction we are moving in)
This is exactly right, but a lot of people have motivated reasoning about it. I can’t really blame them, the kind of shifts that AI is looking like it will bring are unprecedented, and usually when people claim big, world changing things will happen, they don’t, so most people are primed not to believe it.
However as you say, we already have the evidence about this one, and it would require some unknown wall to exist where AI could suddenly not improve further, and I’m just not seeing it. Most likely it will get more capable and cheaper as time goes on, and then every industry will be impacted the way software currently is.
I think for some people, it's partly that they think that, unlike physical work, work that involves thinking is somehow special, and humans are the only beings capable of it.
In the 40s, the argument was that computers will never think because they are made of matter, Turing rebutted this by saying that brains are made of matter and introduced The Turing Test, which was then replied to by Searle with his famous 'Chinese Room', which to my mind just made all consciousness suspect, even humans.
At every stage, though, computers have outpaced the predictions for their capabilities, and as you say, the unknown wall that blocks this march is yet to be seen.
Yes, also the whole motivated reasoning part, where people are quite reasonably terrified of losing their jobs and having no income and so deny the possibility.
I think we tend to downplay the potential positives though. We may come to a point where we look back at the concept of work and see it as some kind of indentured servitude; the idea that you have to spent the majority of your waking hours serving someone else just to be able to have food and shelter is naturally repugnant.
Sure, many of us are fortunate enough to have jobs we enjoy, but everyone I’m sure has memories of jobs they hated and perhaps couldn’t leave because they needed the money. I hope we end up in a world where this is seen as a relic of a barbaric past.
LLMs are statistical prediction machines, they're always going to produce the most "average" code because they reproduce what they're trained on. Average code is bad, and it's going to get a lot worse as people's skills degrade and the training set degrades.
If the code isn't readable to humans, there's no particular reason to think it's going to be magically readable by LLMs either.
This analogy has layers that OP probably doesn't recognize.
The film industry loves cgi because none of the digital vfx houses are unionized and they can treat the artists like crap. It severely devalued a ton of skilled labor around miniature and set design.
Now, after 20 years of hard swing into cgi, people are starting to recognize just how much better movies from the practical era looked, and there is a push back towards it. Project Hail Mary was predominantly practical effects, for example. Stop motion animation is coming back, and theres a push back into hand cell animation.
> Project Hail Mary was predominantly practical effects
Don't drink the Kool Aid. The studios love to make this sort of claim — recent examples include F1: The Movie, Top Gun: Maverick, and Mission: Impossible – The Final Reckoning, and you'll see interviews where the main actors say it was all real — but it's just marketing.
Project Hail Mary leans heavily on CG. For example, while they did hire a puppeteer (he ended up voicing the alien!) to control a neat physical puppet on set, almost all of it was replaced with CG in post production, and only used for reference. Corridor Crew has a great breakdown [1]. They frequently provide a good counterpoint against fraudulent "no CG" claims.
[1] https://youtu.be/l9zqIo8KtjI?is=e7-3Wz_mnMdl2Yp8
While many of the things tou say are true, movies like PHM and other "predominantly practical" movies have so many effects that they put Marvel to shame.
I highly recommend the 4-part essay series "'No CGI' is just invisible CGI" https://youtube.com/playlist?list=PLgdTaHO8FLEve_XFiRBEcOSkR...
I mostly like this article but
> Those who refuse to use an LLM will fall behind because they won't be able to produce as much
Seems like a silly and needlessly aggressive take.
Fall behind what? Able to produce "as much" what? I've never been evaluated on volume in my life. Nor have co workers who were severely "behind" ever feared for their jobs.
Just about every professional coding job I've ever had has had programmers eager to code more, complaining about how much rigmarole there is around making changes, complaining about constant meetings and endless bureaucracy around change management and requirements. Meanwhile business mostly saw programmer velocity and output as a problem and a business risk, as they struggled to keep up with the rate of change and kept stepping on the brakes.
Like realistically even without LLMs I output probably around 10x as much code working alone, self-employed with zero meetings or bureaucracy, than I've ever done as a professional programmer. My output sometimes rivals that of entire teams' I've been part of, mostly because I get to just code to my heart's content.
> My output sometimes rivals that of entire teams' I've been part of
That's not very hard with many of the teams I've seen, with or without LLMs. Though the old adage of "If you want to go fast, go alone. If you want to go far, go together" still applies.
> My output sometimes rivals that of entire teams' I've been part of, mostly because I get to just code to my heart's content.
The fact is that often I code less than most of my peers. Because I prefer spending some time to design suitable data structures/algorithms for the problem at hand. I don't aim for perfection, just that it align with the business domain (and/or the interface) so that future works are proportional with the scope of change requests. This has reflected in small commits because the fundamental core of the business domain rarely changes (when they do, we have bigger problems than my writing speed).
So I've never seen the need to increase my writing speed, because there's never any need to do so. What I'd like to increase is the speed the Product team get back to me with answers to my questions. Because that's often the real bottleneck.
> I prefer spending some time to design suitable data structures/algorithms for the problem at hand.
I'm doing this at LLM speed now.
I feel like I'm doing the work of two whole teams and designing rock-solid software.
Rust, strong types, enums, fantastic interfaces, brevity.
> Rust, strong types, enums, fantastic interfaces, brevity.
That's not what suitable data structures/algorithms mean. What you stated are mere helpers and still pertains to the realms of coding, not design.
Coding isn't and never was the issue. It is a tool and not the intent. Think about what would stand universally true whether you use Go, C, JavaScript, Assembly,... The organization of data (information), and the process of transforming it (computation).
Those do not depends on code. We already have basic ones like the list, the map, the stack, the queue, the binary tree, the graphs,... But for any business domain, you can create more specific ones. And like the basic one, they do not depends on code. The code depends on them.
So writing code faster does not make the design better.
> Fall behind what? Able to produce "as much" what?
Customer meaningful features that move the needle on the business.
I think this is strictly true. And not because LLMs can write code faster. I think it's true even if you're still writing most of your code by hand and using the LLM as an assistant.
My anecdotal but decades-long observation is that most of the time=cost of a project comes not from writing code, but from dealing with "issues". Weird bugs, surprising behaviors, spec ambiguities, library defects, mysterious test failures, etc. Stuff that requires intense debugging and building out a mental map of code that might not even be yours. LLMs excel at this kind of thing, freeing you up to spend most of your time working on business logic.
This has certainly been my experience.
I think people are making a bad assumption that features = profit, and that we're going to be trapped in a red-queen race to move in place while shipping features at an astonishing rate. I don't think this is going to happen.
Before subscription services, you needed to add features because you had to justify to people why they should buy an upgrade. So yeah, it made sense to make as many features as possible to try to cast a wide net.
I think with software as a service, making features is not really the most important thing. Realistically, people buy software for what it does right now, not its future potential. Further, changing things out from underneath users tends to annoy them (pretty much EVERY time a service introduces a redesign, even if it's a good one, people initially hate it -- you're asking them to relearn a thing that was working perfectly fine).
Anyway, I think new software is going to win the same way it's always won, based on its utility, not based on shipping features at some sort of frantic rate.
And I am gradually coming to the conclusion that "needle" isn't even features. In a world where everyone has AI access, moving the needle in an existing product space can readily be done by whoever. The real game changers will be those who redefine their market segment entirely rendering existing offering completely out of customer demand. And the only way to migrate the business to the new model from the ground up in say four to six months will only economically be able to be done by AI.
My hobby AI projects feature wise match existing company offerings in about a week of turn around. But this alone is valueless. The new thing that didn't exist before 2026 will remain the hard moat. But these moats will dissolve as fast as OpenAI can scrape your public marketing. It's going to be like releasing Meccha Chameleon as a break out hit but a month later the clones on Roblox having greater player numbers. This is the turn around times we're going to have to live with in general for business pivots to the "next" business logic that makes sense in the market.
Closer to the AI world it's going to be as fast as the transition from prompt engineering and MCPs to loop engineering and harnesses. I'm pretty confident popular commentators will see "loops" as old hat by December by raw function of what speed of evolution we're dealing with here now.
Realistically, has the volume of code that can be produced ever been the bottleneck? In every job I’ve ever had, it was never that the devs couldn’t write enough code fast enough, it was everything else that slowed them down, mostly other people.
> Weird bugs, surprising behaviors, spec ambiguities, library defects, mysterious test failures, etc. Stuff that requires intense debugging and building out a mental map of code that might not even be yours
And those issues often appears because no one had the "time" to properly design a solution before rushing to code. Saving one hour of planning by spending weeks on debugging.
Yes, I dislike this kind of take so much. It keeps being repeated as a truthism and a way of putting down people that don't do what the speaker wants. It's fine to disagree, but there's no need to get such a threatening tone.
A lot of tech jobs seem to be only about sheer output volume, with quality (maintenability, availability, security, generally understanding what the thing is doing) not mattering much. In that case sure, LLM all the way and whatever happens happens. But not all jobs are like that.
My experience with regard to quality is quite the opposite.
With LLM at my disposal, I had the time- and effort-budget to expand test suites considerably, I was even able to attack a somewhat thorny question of reproducible builds on MSVC, which is not exactly friendly towards determinism.
These tasks would take me personally so much time that I would have to set them aside, at the cost of output quality.
Likewise - it's not just about generating production code faster; it's now feasible to create all kinds of experiments, test fixtures, visualizers, analyzers, and support software you never would have had time for before, which you can use to improve your process and create a better product.
I recently had to evaluate some data one of my coworkers had produced, to decide whether some process was going to be feasible. It would have taken probably a couple of weeks for me to dig through it all by hand, so he whipped up a quick little interactive web app that let me explore the data with all the connections and context visible, and I reviewed it much more quickly. A single-use application for a single user - what a luxury! - and it took less time to create than the time I saved by using it.
I will check in Monday morning on the result of an A/B test I set running over the weekend, comparing a reimplementation of a certain tool with its original. The test spins up AWS boxes, pulls code repos, compiles them, runs analysis, recovers from errors and maintains a retry queue, etc., etc., and ultimately collates the results and generates a report. I didn't write a line of this! I wouldn't have written anything nearly so sophisticated, and the results I'd have gotten would have been far less useful. But here we are: I tell the computer "make it so", and I get a really valuable test which runs itself while I enjoy my life, and we'll be able to switch to the new tool with confidence.
"it's now feasible to create all kinds of experiments, test fixtures, visualizers, analyzers, and support software you never would have had time for before, which you can use to improve your process and create a better product."
Yes, yes, yes, so much yes. Log analyzers, consistency checkers, performance evaluators, all sorts of hooks and helpers, precisely of the "single-use application for a single user - what a luxury!" sort, which made the entire development process so much more secure and comfortable. Most of the tedious moments (looking for a single bad value in a heap of logs etc.) went away.
The scaffolding I have now is a castle. The scaffolding I had a year ago was a log cabin. Nothing against log cabins in general, but castles are a lot harder to break into and have fewer holes for problems to sneak in.
Sure, but this is not at all uniform in how people use these tools any more than there was uniformity in how people balanced quality and speed before LLMs entered the picture. There was already a lot of variety in how some developers moved fast and broke things, others moved slow and fixed things, some would prototype new crazy ideas and others would spent time on the long tail of getting something from working adequately to being robust and polished.
This isn't to say that LLMs aren't impactful, but that there's an argument for viewing them less as being a fundamental shift in how our profession works and more as another tool we can use to pursue essentially the same goals more efficiently than before. Like any other tool that's worth having, they can do things our existing tools couldn't do as well, or else we wouldn't have added it to our toolbox, but you still need to be able to recognize when to use it and when not to (and potentially how to use it when you do).
I think that part of why these tools are so polarizing is that there was already some assymetry in how much longer it takes to clean up things than to create things that need to be cleaned up, so a new tool that makes everyone more productive has a lot of potential to exacerbate the existing imbalance. To make up some numbers for illustrative purposes, if someone introduced four new flaky tests in the time it took to fully diagnose and clean up one, and then LLMs came and made everybody twice as productive, now in the same amount of time someone might introduce eight flaky tests while you fixed two, so you're falling behind twice as fast. Unless the productivity gain disproportionately speeds up the people working on making things more robust and polished (which I find dubious; if anything I think the opposite seems more likely) or LLMs suddenly make everyone who didn't care about quality when rushing things out take it more seriously (which seems even more dubious), then LLMs don't improve the situation for people who already felt that the balance was slanted too heavily towards speed over quality.
* Those who refuse to use a calculator over a slide-rule will fall behind because they won't be able to produce as much
* Those who refuse to use a spreadsheet over calculator and paper will fall behind because they won't be able to produce as much
* Those who refuse to use a truck over horse drawn wagon will fall behind because they won't be able to carry as much
Seems pretty common sense to me, rathern than aggressive.
This is very much an N=1 anecdote from a friend, but his manager has basically doubled velocity expectations for the team at his company over the last year. Everyone has to use Claude code because that's the only model they're allowed to use, and not using it means not hitting the arbitrary expectations.
Conversely, the company I am at has no such expectations, and we've got a legacy code base that LLMs aren't very handy in anyway.
we've got a legacy code base that LLMs aren't very handy in anyway
So do I. What I'm finding is that they are now.
I've spent the last week tracking down bugs using Fable that have gone undiagnosed for several years. And this is a damned obscure legacy code base that runs on a proprietary 8051 variant. Guaranteed to be nothing like it in-distribution.
Those who do not transform themselves into paperclip maximizers will become paperclips.
I worked for a company that measures developer's output in number of commits, PRs created and approved, and Jira tickets per sprint. Management doesn't even insist on that the tickets have any kind of an effort estimate.
It can be pretty depressing, until you learn how to game the system - create tickets for yourself that are tiny amounts of work. I hear that it's getting harder to do that, because management is looking more carefully at tickets generated and it looks like they'll start having developers assign points to their tickets before the tickets are added to the sprint
It reminds me of people that get upset when other people aren't drinking as much as them at a party. It's like they need other people to consume the thing because they suspect that maybe their consumption will look a little problematic if other people aren't doing it to the same degree.
Those times are passing and you'll sooner or later meet with new reality.
I think a lot of HN'ers are in denial. I was an LLM skeptic check my history if you like. At the beginning of 2026 LLMs shifted over the hump to as good or better than most devs and are continuing to get better. I don't think we've even begun to see how this is going to affect the industry. People in charge don't and never have cared about code quality, tech debt, maintainability. Now they will not only not care but cease to listen to devs that insist on it.
People on HN will drop what they think is their trump card. Ie The computer spitting out incorrect info. However, I've worked in banking finance where data was wrong and people in charge just shrugged when I showed them and said something like, accounting will catch it. And here's the worst thing. They were right.
It's marketing. The big AI companies know what they're doing and are trying to drive adoption with FOMO. Some people bought into the idea early on and feel self-important. Meanwhile, using AI is so easy that it's tantamount to pushing a button, because that's the whole point of it: to make things easy to do. You can pick it up in half an hour, so it's impossible to "fall behind," unless you're holding stock when the bubble inevitably crashes.
We have general expectations on the velocity an engineer should be able to work at. If it took someone 5 weeks to deliver the exact same feature another engineer could deliver in 1 week, that would be considered "falling behind" at most places. Would you disagree?
The notion of falling behind because you refuse to adopt an advance in the field seems both uncontroversial and not aggressive at all to me.
Yes I would disagree. I've never had a co-worker who was consistently producing output chastised in any way. No matter how far "behind" me they were.
It's extra weird because the Carmack quote immediately following seems to invalidate this very point!
Or at the very least: "It was never about the actual coding" and "coding more separates you from those who will fall behind" is classic kettel logic.
Yup, that is called progress. One freedom to live in a cave with his 6 spouses and hunting animals all day was indeed taken away. In exchange you don't need to hunt all day, you can go to groceries, you don't need six spouses and 20 kids, as kids death rate is not 80% but 0.001%.
One can, obviously, romanticize the times of cave live, that's fine with me, but I doubt that would be a common choice.
No, he is correct. LLMs have much larger working memories for the kind of details you work with in programming tasks. You are at an objective cognitive deficit by not taking advantage of this. Everybody knows what he means by left behind. When you program, you do so with a goal in mind, and you will not be able to reach that goal as quickly without LLMs. You will be outcompeted by those who use them, and this means that opportunities to contribute professionally, in open source, etc. will be closed to you.
This is the future. Adapt or die.
> This is the future. Adapt or die.
I'm curious about what adaptation you have in mind.
You use LLMs to write specific functions? The person who uses it in an agent loop will leave you behind to die.
You use LLMs in an agent loop? The person who uses LLMs to supervise loops will leave you behind to die.
You use LLMS to supervise agent loops? The person who uses LLMs to determine product offering and automatically start supervision on producing the product will leave you behind to die.
You use LLMs to determine product offering and kick off the supervision? The person who uses LLMs to clone your product without the initial product research will leave you behind to die.
You use LLMs to clone products gaining traction? The person who runs a cluster 100x the size of yours will leave you behind to die.
I am trying to understand where you think you fit in, in this Brave New World.
You obviously think that you're adapting, but if you're correct, anything you do now can be replaced by an LLM in the near future.
Just where were you going with "Adapt or die".
I use the 1M token opus claude for two days to build a dashboard and it forgets how to run the build script it wrote at the start of the project.
Man can it put together a react app lickety split, though
The Claude file, documentation, and memories you leave in the project are part of the harness. Most of Claude's forgetfulness can be eliminated with strategic placement of documentation. After you've got that figured out, you'll have to compact the session long before it forgets because it starts getting sloppy and slow at high context. With your guidance it will basically keep its own harness updated for you as the project progresses.
And it also helps to give it better tools than grep and find to explore, because it can waste lots of tokens and pollute the context with the defaults.
The reality is that everyone will be replaced by a cheaper alternative someday, with LLMs or not. If you depend on LLMs more and more to do your work and the costs of keeping your tokens increases, your 'left behind' co-workers will still be fine.
How many other technologies required death threats for adoption?
This one does not require any death threats. It's a statement of where the world is going. Maybe you disagree. Come back to this thread in 3 year and see which POV was more correct. The
* "LLMs suck, are stupid, I hate them, and I'm not using them"
or
* "LLMs are the future and if you don't adapt you'll left behind"
I'm confident it's this 2nd option. Care to wager?
People might be using hyperbole: "You'll be left behind" = "you'll be out of a job" or "you'll be unemployable" or "You'll die" but they all mean the same thing.
This whole you need to "adapt" to LLMs thing is bonkers to me, because there's practically no skill in using an LLM. It took me a weekend to learn how to use a coding harness, and the skill pretty much generalizes to all coding harnesses. The things that make me potentially good at using a coding harness are my preexisting engineering skills. I'm sorry, but I think if you believe that being on the cutting edge of knowing how to prompt is some sort of magical skill that's going to protect you from economic hardship, you're delusional.
Most of the "cutting edge" stuff I've seen is basically trying to scale the amount of parallel work that can be done, without any consideration to how much that costs, how much waste is generated, or if the output is even useful. Most of my coding time is spent thinking through problems. Which is exactly how I spent my time prior to LLMs.
Exactly, it's pretty obvious, and definitely as you sail, not aggressive (someone melts a little too easily) The comment was naive to the point of denial.
This is the future. Adapt or die.
If it is the future, people will actually have plenty of time to wait and start using it only later. There is no hurry and no reason to be early adopter crash test dummy. They can wait and stary using it at own pace
The "or die" part betrays insecurity and weakness. You need to scare prople into using it rihht now, because of some perceived threat.
> Writing tests used to be a pain. This is no longer the case. It is ok to request unit tests/CI tests for each PR. These have never been more important since large refactors are becoming increasingly common. Human and LLM review may miss stuff but good tests should catch breakages.
The default behavior is not necessarily good. You end up with tests that match the code, but you don’t necessarily end up with tests that test the behavior you care about. And then, if the LLM tries to decide whether the code is correct, it can conclude “it matches the test so it must be right” regardless of whether it’s actually right.
TDD can help but is not a panacea.
> Writing every line by hand is no longer the norm. Those who refuse to use an LLM will fall behind because they won't be able to produce as much
> It remains important to be able to read the code and understand the architecture. As a result, I reduce my velocity by iterating over my PR until it reaches the same level of quality I would have produced "by hand"
I do that too and when I do it I'm not sure anymore if I'm "producing as much more" than if I was doing it by hand. I need to spend time to read the code, break down the flow so that it clicks in my head and so that I'm 100% sure that I understand what is going on and what every line does. And then I still test it (executing it), because that's where you notice the edge cases anyways. Once I understand it and test it, the part where I iterate or fix small quirks and hallucinations is the smallest part of the job and is irrelevant if i do it by myself or ask the LLM to make the change.
I'm still not convinced that I'm faster with an LLM at all, since I add this new bottleneck (the time spent understanding every line). If I do it by hand it already clicks in my head, so it's faster for me to test it, find unaddressed edge cases and then confidently ship it. Maybe the LLMs gains are not in this at all and writing every line by hand will still be the norm for a long time.
Still, LLMs make me insanely faster in: finding something in the codebase, recostructing a flow and understanding the architecture, triaging a bug (sometimes it just solves it with a prompt), writing and updating tests, reviewing changes for potential issues. These days I have almost always 2/3 agents running doing something of the above. That saves me hours and you can pry an LLM from my dead hands, but I'm still not sold that it makes me faster at producing production grade code that I fully understand and follows my company architecture and standards.
Then sure, if I need to make a prototype or a small tool for myself or some novelty thing, an LLM can do it without me ever touching or reading the code. But I think that's not what the majority of software engineers are employed to do.
Did Tippett enjoy working on the Dinosaur Input Device as much as he did with his go-motion technique?
I see employability being discussed far more often than joy.
If your motivation was selling as many clothes as possible, then the industrial textile revolution was miraculous.
If you enjoyed knitting threads together, it was the crushing victory of mediocrity.
Some of my colleagues say they don't want to be "AI proofreaders", that they'd prefer to do something else. I can't really argue, they are entitled to their own desires of course. But I do enjoy the chat sessions with agents. It's like pair programming with superman.
Nothing about AI will stop people doing the work that brings them joy, be it stop motion, or hand knitting a jumper from yarn you made yourself from shearing your own sheep.
You just won't be able to get a job doing it. It will be a hobby, not a way to make a living.
> It is more ok to refuse to take dependencies now. It used to be the go-to solution to avoid writing anything moderately complex. As recently as this morning, I asked an LLM to write a Levenshtein distance function instead of adding a dependency to my project.
The trap here is that LLMs love to YOLO out reinvented wheels and that leads to a lot of verbosity and untested complexity. Levenshtein distance is one thing, but I've seen an LLM try to hand roll an ORM which obviously will lead to buggier code and a context window bloated with irrelevant noise. Better, as always, to let the ORM maintainer leverage LLMs for the more local issue.
It's probably best to learn about LLMs, and then don't use them most of the time. It's much harder to justify not even knowing how the new thing works, than to justify not using it because the old thing is better.
This is the path I'm on. I want to know enough about them to actually demonstrate their weaknesses when I choose to not use them for a given task. Upper management doesn't want to hear "because they suck" when they ask why. My company (and many others) just added a new "AI proficiency" metric to their hiring process, and I can take a hint.
> I asked an LLM to write a Levenshtein distance function instead of adding a dependency to my project.
Which you likely failed to review thoroughly, so may be subtly wrong.
How many dependencies do you review the source code of?
The expectation is that someone has already done that with a dependency. If the code has just been sharted out by an LLM, it has by definition been reviewed or even understood by no one.
Or put the dependency in the unit tests so it's not part of the code base but able to be compared to the canonical implementation.
On the negative side, the code may not work.
But on the positive side, no dependencies.
I'm sceptical of the idea that the majority of programmers are already having LLMs write the code. It reminds me of the general idea some years back among the programmer chattering classes that everyone is surely doing some level of unit-testing, whereas in the real world there were tons and tons of teams that did zero unit-testing ever.
>In 1993, Jurassic Park came out and revolutionized the use of CGI in films
I thought Terminator 2 did this. At least around where I lived everyone talked about T2 and questioned how they did this or that. JP? Not really.
I joined VFX at the start of the 2000s, I rode the evolution of VFX from special effects, to fully digital, and back again (well not quite, "practical" effects are rarely practical, just really good VFX.)
I left in the late 2010s, Lots of competition meant that wages were kept down, and hours fucking long. It was fun, I loved being at the intersection of Art, infrastructure and programming.
I fear for the future.
I hope that I am ok, because I have experience of high scale that is not really in the training corpus. I've also been in ML for a reasonably long time, so have more experience of getting the dipshit machine to do useful things.
But thats pretty thin gruel.
I am rapidly approaching middle age, which means that no fucker is going to employ me as an apprentice if I want to re-train. My techincal and artistic skills are basically replaced. They are the equivalent of Linotype expert. Technically impressive but utterly fucking pointless for a world where newspapers are dead and so is analog printing. In 40 years I could possibly make a thin living as an artisan. But I plan on being dead by then.
I don't want to curate my own AGENTS file. I'd rather just copy someone else's verbatim similar to code formatting style.
Fabien, care to share your whole file? I'll plug it into my NixOS machine.
- Always us {} after if, even on single lines.
- Avoid using magic numbers and strings. There should be consts or even better enums.
- When working on a patch, you should other the test first. Watch the test fail. Then include the new code. And watch the test pass.
- Leverage early return and continue as much as possible to reduce code indentation.
- Only delete comments if they are obsolete. If you change code, make sure the comment above is still correct.
- Use enums instead of boolean for function parameters.
- Talk to me like an engineer. Don't be excessively verbose. Be down to the point.
- Don't use superlative. Stop praising me, give me the cold hard truth.
- Let the reader of the code breath. Add empty lines between logic block of code. Add a small to the point comment to explain what the block does.
- When you write unit tests, add a short comment at the beginning of the function and class to explain what they test and how they test it.
- Check commit message, if you proof read or write one, follow these 7 rules:
Rule 1: Separate the subject line from the body with a single blank line.
Rule 2: Limit the subject line to 50 characters (72 is the absolute hard limit).
Rule 3: Capitalize the first letter of the subject line.
Rule 4: Do not end the subject line with a period.
Rule 5: Use the imperative mood in the subject line (e.g., "Fix bug," "Add feature," not "Fixed" or "Adds"). Test formula: It must complete the sentence: "If applied, this commit will [your subject line here]".
Rule 6: Wrap the body text manually at 72 characters to prevent Git formatting issues.
Rule 7: Use the body to explain what and why vs. how. Assume the code explains the how; the message must explain the context and reasoning.
In comments don't use prepositions (that, it, those) e.g. "It serves those file migration methods". Instead say e.g. "This method is intended to serve methods x,y and z or any method that has set up a migration source and sink".
"Ride the wave."
Or don't.
Most LLMs people are using to code are paywalled, and controlled by private, for-profit entities.
This is fundamentally different than the past, and diametrically opposed to the hacker.
If you're a hacker, which most of you are not (things have changed here over time), you will reject this.
You can accomplish quite a lot with smaller local models on reasonably priced pro tier hardware (not cheap hardware, but very attainable hardware for anyone making average software engineer money). Qwen 3.6 27B and 35BA3, Gemma 28B, and so on are incredibly beneficial even if Anthropic and OpenAI produce better options.
Failing that, GLM 5.2 is open weights, trades blows with current frontier models and widely available on commodity inference providers. And you could run it yourself if you do actually have the resources.
Even with locally runnable small "open" models you are relying on scraps of others. They are much worse at the LLM game and you don't know when they stop releasing the weights.
How can you go the opposite direction? Instead of using LLMs to produce more code, can you produce less, maybe higher abstraction code?
If you're a hacker, which most of you are not (things have changed here over time), you will reject this.
You'll also recognize that the problem is not AI in general or LLMs in particular, but the proprietary entities that control the best models.
That's the part HN'ers seem to have the most trouble with. They protest AI qua AI, as if that's somehow going to help, when they should be fighting for independent development and universal access.
> when they should be fighting for independent development and universal access.
Because it’s literally not going to happen. The existence of LLMs is a function of how much capital you have. Frontier models require so many resources to train and run that they are functionally inaccessible to the average person.
That’s why capital loves them! It’s a resources play.
You’re also conveniently leaving out all of the other negative aspects of LLMs/GenAI with regards to the arts, open communication, etc..
"they should be fighting for independent development and universal access". Well stated.
I see no sense in fighting for "independent development and universal access" of and to a fundamentally useless thing.
I only snark at those who try to mislabel that thing as something useful. Which it is not.
I see no sense in fighting for "independent development and universal access" of and to a fundamentally useless thing.
That's why they call us "hackers," and they call you something else.
I think this is a flawed analogy. In the past when we had a new way of doing something that obsoleted the old way, it replaced it because it was an obvious improvement. I mean, stop motion is cool, but obviously there are limitations.
The deal GenAI offers is: the result will be mediocre at best, on average it will be slop, but it will do it much faster. Ok, that's a fair value proposition in certain contexts. We've always had a need to prototype things fast, and the tradeoff with a prototype is always quality.
However, we're living in an age where we have WAY TOO MUCH in the way of information byproducts, even before AI. How many people do you meet that are like "God, I just wish I had more software in my life!" Most people don't want more software, they want less software that works better. They want more quality and less quantity. It's like this in almost everything digital now. I sign onto Netflix and I can't find anything to watch, even though there's more to watch than I could consume in a lifetime. I live in abundance but I don't want any of it.
GenAI offers us an abundance of stuff we don't want or need (lots of bad code, lots of bad writing, lots of bad illustrations, lots of bad videos) at a cost of stuff we do not have in abundance (energy, attention, natural resources, jobs). It strikes me as a bad trade: lets transform the stuff we need into stuff nobody wants, while decimating our culture in the process.
Anyway, FWIW I do agree with his point that the job has always been problem solving. I use LLMs to solve problems, I'm not extinct. But I'm not going to pretend that I think this is a net win.
My biggest gripe with AI is that I struggle to come up with even one real problem that it has solved in my daily life, and that of my family and friends.
Yes it might have made me a bit faster at some things I do for work. But it seems to me that we face so many challenges as a civilization, and AI doesn’t actively help with any of them? Unless you buy into the narrative that it will somehow usher in a golden age of abundance where everyone is taken care of and nobody needs to work anymore (utter BS in my opinion). The amount of capital flowing into it, that is then not available for other causes, is completely mind-boggling to me.
> My biggest gripe with AI is that I struggle to come up with even one real problem that it has solved in my daily life, and that of my family and friends.
I wish I could upvote this a thousand times, because this is exactly my experience as well. It's made a few things slightly more convenient, but convenience is not exactly a problem in my life! And yet, it's actively damaging a lot of things I care about in a way that I think is going to be extremely bad for society.
With the improvements that AI has made in just the last year, it should be obvious to anyone that code written by an AI will at some point stop being "AI slop" and be better than the majority of coders are able to put out. Reduced to its basics, all code is just characters put into a sequence. Similar to chess or Go, both of which, it was claimed at one point or another, would be impossible for a computer to beat a human, until they did (chess 1997, go 2016), so computers will eventually produce better quality code than even a team of humans is capable of.
A genuine question : If an AI can reliably write code better than most coders, do it quicker, and produce code that runs efficiently which has less, or at least no more, bugs than human written code, why on earth would a company not use an AI to write all their code for most purposes?
And if they did, why is it important for that code to be 'elegant' or even human readable if the bug checking is also done by AI? (as seems to be the direction we are moving in)
This is exactly right, but a lot of people have motivated reasoning about it. I can’t really blame them, the kind of shifts that AI is looking like it will bring are unprecedented, and usually when people claim big, world changing things will happen, they don’t, so most people are primed not to believe it.
However as you say, we already have the evidence about this one, and it would require some unknown wall to exist where AI could suddenly not improve further, and I’m just not seeing it. Most likely it will get more capable and cheaper as time goes on, and then every industry will be impacted the way software currently is.
I think for some people, it's partly that they think that, unlike physical work, work that involves thinking is somehow special, and humans are the only beings capable of it.
In the 40s, the argument was that computers will never think because they are made of matter, Turing rebutted this by saying that brains are made of matter and introduced The Turing Test, which was then replied to by Searle with his famous 'Chinese Room', which to my mind just made all consciousness suspect, even humans.
At every stage, though, computers have outpaced the predictions for their capabilities, and as you say, the unknown wall that blocks this march is yet to be seen.
Yes, also the whole motivated reasoning part, where people are quite reasonably terrified of losing their jobs and having no income and so deny the possibility.
I think we tend to downplay the potential positives though. We may come to a point where we look back at the concept of work and see it as some kind of indentured servitude; the idea that you have to spent the majority of your waking hours serving someone else just to be able to have food and shelter is naturally repugnant.
Sure, many of us are fortunate enough to have jobs we enjoy, but everyone I’m sure has memories of jobs they hated and perhaps couldn’t leave because they needed the money. I hope we end up in a world where this is seen as a relic of a barbaric past.
LLMs are statistical prediction machines, they're always going to produce the most "average" code because they reproduce what they're trained on. Average code is bad, and it's going to get a lot worse as people's skills degrade and the training set degrades.
If the code isn't readable to humans, there's no particular reason to think it's going to be magically readable by LLMs either.