29 ms·
The hidden cost of AI coding
- misiti3780 1y agoi dont know where you are working, but where I work i cant prompt 90% of my job away using cursor. in fact, I find all of these tools to be more and more useless and our codebase is growing and becoming more complex based on the current state of AI and the progress im witnessing on a month-by-month basis - my current prediction is there is zero chance AI agents are going to be coding and replacing me in the next few years. if i could short the startups claiming this, I would.
- tptacek 1y agoOne of the ways these tools are most useful for me is in extremely complex codebases.
- simonw 1y agoThis has become especially true for me in the past four months. The new long context reasoning models are shockingly good at digging through larger volumes of gnarly code. o3, o4-mini and Claude 3.7 Sonnet "thinking" all have 200,000 token context limits, and Gemini 2.5 Pro and Flash can do 1,000,000. As "reasoning" models they are much better suited to following the chain of a program to figure out the source of an obscure bug. Makes me wonder how many of the people who continue to argue that LLMs can't help with large existing codebases are missing that you need to selectively copy the right chunks of that code into the model to get good results.
- IshKebab 1y agoBut 1 million tokens is like 50k lines of code or something. That's only medium sized. How does that help with large complex codebases? What tools are you guys using? Are there none that can interactively probe the project in a way that a human would, e.g. use code intelligence to go-to-definition, find all references and so on?
- tptacek 1y agoThis to me is like every complaint I read when people generate code and the LLM spits out an error, or something stupid. It's a tool. You still have to understand software construction, and how to hold the tool. Our Rust fly-proxy tree is about 80k (cloc) lines of code; our Go flyd tree (a Go monorepo) is 300k. Generally, I'll prompt an LLM to deal with them in stages; a first pass, with some hints, on a general question like "find the code that does XYZ"; I'll review and read the code itself, then feed that back to the LLM with questions like "summarize all the functionality of this package and how it relates to other packages" or "trace the flow of an HTTP request through all the layers of this proxy". Generally, I'll take the results of those queries and have them saved in .txt files that I can reference in future prompts. I think sometimes developers are demanding something close to AGI from their tooling, something that would do exactly what they would do (only, in the span of about 15 seconds). I don't believe in AGI, and so I don't expect it from my tools; I just want them to do a better job of fielding arbitrary questions (or generating arbitrary code) than grep or eglot could.
- simonw 1y agoYeah, 50,000 lines sounds about right for 1m tokens. If your codebase is larger than that there are a few tricks. The first is to be selective about what you feed into the LLM: if you know the work you are doing is in a particular area of the codebase, just paste that bit in. The LLM can make reasonable guesses about things the code references that it can't see. An increasingly effective trick is to arm a tool-using LLM with a tool like ripgrep (effectively the "interactively probe the project in a way that a human would" idea you suggested). Claude Code and OpenAI Codex both use this trick. The smarter models are really good at deciding what to search for and evaluating the results. I've built tools that can run against Python code and extract just the class, function and method signatures and their docstrings - omitting the actual code. If you code is well designed and has reasonable documentation that could be enough for the LLM to understand it. https://github.com/simonw/symbex https://github.com/simonw/symbex is my CLI tool for that https://simonwillison.net/2025/Apr/23/llm-fragment-symbex/ https://simonwillison.net/2025/Apr/23/llm-fragment-symbex/ is a tool I released this morning that turns Symbex into a plugin for my LLM tool. I use my https://llm.datasette.io/ https://llm.datasette.io/ tool a lot, especially with its new fragments feature: https://simonwillison.net/2025/Apr/7/long-context-llm/ https://simonwillison.net/2025/Apr/7/long-context-llm/ This means I can feed in the exact code that the model needs in order to solve a problem. Here's a recent example: llm -m openai/o3 \ -f https://raw.githubusercontent.com/simonw/llm-hacker-news/refs/heads/main/llm_hacker_news.py \ -f https://raw.githubusercontent.com/simonw/tools/refs/heads/main/github-issue-to-markdown.html \ -s 'Write a new fragments plugin in Python that registers issue:org/repo/123 which fetches that issue number from the specified github repo and uses the same markdown logic as the HTML page to turn that into a fragment' From https://simonwillison.net/2025/Apr/20/llm-fragments-github/ https://simonwillison.net/2025/Apr/20/llm-fragments-github/ - I'm populating the context with the exact examples needed to solve the problem.
- earthnail 1y agoI have the same experience. It‘s basically a better StackOverflow, but just like with SO you have to be very careful about the replies, and also just like SO its utility diminishes as you get more proficient. As an example, just today I was trying to debug some weird WebSocket behaviour. None of the AI tools could help, not Cursor, not plain old ChatGPT with lots of prompting and careful phrasing of the problem. In fact every LLM I tried (Claude 3.7, GPT o4-mini-high, GPT 4.5) introduced errors into my debugging code. I’m not saying it will stay this way, just that it’s been my experience. I still love these tools though. It’s just that I really don’t trust the output, but as inspiration they are phenomenal. Most of the time I just use vanilla ChatGPT though; never had that much luck with Cursor.
- codr7 1y agoNo one was forcing you to use SO, in fact we made fun of people who did copy-paste/compile-coding.
- UncleEntity 1y agoYeah, they're currently horrible at debugging -- there seems to be blind spots they just can't get past so end up running in circles. A couple days ago I was looking for something to do so gave Claude a paper ("A parsing machine for PEGs") to ask it some questions and instead of answering me it spit out an almost complete implementation. Intrigued, I threw a couple more papers at it ("A Simple Graph-Based Intermediate Representation" && "A Text Pattern-Matching Tool based on Parsing Expression Grammars") where it fleshed out the implementation and, well... color me impressed. Now, the struggle begins as the thing has to be debugged. With the help of both Claude and Deepseek we got it compiling and passing 2 out of 3 tests which is where they both got stuck. Round and round we go until I, the human who's supposed to be doing no work, figured out that Claude hard coded some values (instead of coding a general solution for all input) which they both missed. In applying ever more and more complicated solutions (to a well solved problem in compiler design) Claude finally broke all debugging output and I don't understand the algorithms enough to go in and debug it myself. Of course I didn't use any sort of source code management so I could revert to a previous version before it was broken beyond all fixing... Honestly, I don't even consider this a failure. I learned a lot more on what they are capable of and now know that you have to give them problems in smaller sections where they don't have to figure out the complexities of how a few different algorithms interact with each other. With this new knowledge in hand I started on what I originally intended to do before I got distracted with Claude's code solution to a simple question. --edit-- Oh, the irony... After typing this out and making an espresso I figured out the problem Claude and Deepseek couldn't see. So much for the "superior" intelligence.
- simonw 1y agoDon't get distracted by claims that AI agents "replace programmers". Those are pure hype. I'm willing to bet that in a few years most of the developers you know will be using LLMs on a daily basis, and will be more productive because of it (having learned how to use it).
- misiti3780 1y agothis is already the case.
- iamleppert 1y agoThere's nothing stopping you from coding if you enjoy it. It's not like they have taken away your keyboard. I have found that AI frees me up to focus on the parts of coding I'm actually interested in, which is maybe 5-10% of the project. The rest is boiler plate, cargo-culted, Dockerfile, build system and bash environment variable passing circle of hell that I really could care less about. I care about certain things that I know will make the product better, and achieve its goals in a clever and satisfying way. Even when I'm stuck in hell, fighting the latest undocumented change in some obscure library or other grey-bearded creation, the LLM, although not always right, is there for me to talk to, when before I'd often have no one. It doesn't judge or sneer at you, or tell you to "RTFM". It's better than any human help, even if its not always right because its at least always more reliable and you don't have to bother some grey beard who probably hates you anyway.
- 2snakes 1y agoI read one characterization which is that LLMs don't give new information (except to the user learning) but they reorganize old information.
- barrenko 1y agoCustodians of human knowledge.
- docmechanic 1y agoThat’s only true if you tokenize words rather than characters. Character tokenization generates new content outside the training vocabulary.
- emaro 1y agoKind of, but character-based tokens make it a lot harder and more expensive to learn semantics.
- docmechanic 1y ago
- tptacek 1y agoAfter all, if we lose the joy in our craft, what exactly are we optimizing for? Solving problems for real people. Isn't the answer here kind of obvious? Our field has a whole ethos of open-source side projects people do for love and enjoyment. In the same way that you might spend your weekends in a basement woodworking shop without furnishing your entire house by hand, I think the craft of programming will be just fine.
- frollogaston 1y agoSame as when higher-level languages replaced assembly for a lot of use cases. And btw, at least in places I've worked, better traditional tooling would replace a lot more headcount than AI would.
- codr7 1y agoNot even close, those were all deterministic, this is probabilistic.
- tptacek 1y agoThe output of the LLM is probabilistic. The code you actually commit or merge is not.
- rozap 1y agoi'm just vibing though, maybe i merge, maybe i don't, based on the vibes
- jaggederest 1y agoThat sounds like a lot of work, better ask a LLM whether to merge.
- genewitch 1y agoIt does the PR for me, too
- SkyBelow 1y agoSo if I'm understanding this, there are two central arguments being made here. 1. AI Coding leads to a lack of flow. 2. A lack of flow leads to a lack of joy. Personally, I can't find myself agreeing with the first argument. Flow happens for me when I use AI. It wouldn't surprise me if this differed developer to developer. Or maybe it is the size of requests I'm making, as mine tend to be on the smaller size where I already have an idea of what I want to write but think the AI can spit it out faster. I also don't really view myself as prompt engineering; instead it feels more like a natural back and forth with the AI to refine the output I'm looking for. There are times it gets stubborn and resistant to change but that is generally a sign that I might want to reconsider using AI for that particular task.
- simonw 1y agoOne trend I've been finding interesting over the past year is that a lot of engineers I know who moved into engineering management are writing code again - because LLMs mean they can get something productive done in a couple of hours where previously it would have taken them a full day. Managers usually can't carve out a full day - but a couple of hours is manageable. See also this quote from Gergely Orosz: Despite being rusty with coding (I don't code every day these days): since starting to use Windsurf / Cursor with the recent increasingly capable models: I am SO back to being as fast in coding as when I was coding every day "in the zone" [...] When you are driving with a firm grip on the steering wheel - because you know exactly where you are going, and when to steer hard or gently - it is just SUCH a big boost. I have a bunch of side projects and APIs that I operate - but usually don't like to touch it because it's (my) legacy code. Not any more. I'm making large changes, quickly. These tools really feel like a massive multiplier for experienced devs - those of us who have it in our head exactly what we want to do and now the LLM tooling can move nearly as fast as my thoughts! From https://x.com/GergelyOrosz/status/1914863335457034422 https://x.com/GergelyOrosz/status/1914863335457034422
- smithclay 1y agoThis is also true of (technical) product managers from an engineering background. It's been amazing to spin up quick React prototypes during a lunch break of concepts and ideas for quick feedback and reactions.
- drooby 1y agoI've been singin' this song for years. We should return to Small Data. Hand picked, locally sourced, data. Data I can buy at a mom and pop shop. Data I can smell, data I can feel, data I can yearn for. Gone are those days.
- thunkle 1y agohttps://m.youtube.com/watch?v=eDr6_cMtfdA https://m.youtube.com/watch?v=eDr6_cMtfdA
- smj-edison 1y agoI'm guessing you're referencing KRAZAM? https://youtu.be/eDr6_cMtfdA https://youtu.be/eDr6_cMtfdA
- deleted 1y ago[deleted]
- kristjank 1y agoWhen we outsource the parts of programming that used to demand our complete focus and creativity, do we also outsource the opportunity for satisfaction? Can we find the same fulfillment in prompt engineering that we once found in problem-solving through code? Most of AI-generated programming content I use are comments/explanations for legacy code, closely followed by tailored "getting started" scripts and iterations on visualisation tasks (for shitty school assignments that want my pyplots to look nice). The rest requires an understanding, which AI can help you achieve faster (it's read many a book related to the topic, so it can recall information a lot like an experienced colleague may), but it can't confer capital K Knowledge or understanding upon you. Some of the tasks it performs are grueling, take a lot of time to do manually, and provide little mental stimulation. Some may be described as lobotomizing and (in my opinion) may mentally damage you in the "Jack Torrance typewriter" kinda way. It makes me able to work on the fun parts of my job which possess the qualities the article applauds.
- pdimitar 1y agoI don't know man, maybe prompt most of your work, eyeball it and verify it rigorously (which if you cannot do, you should absolutely never touch an LLM!), run a script to commit and push after 3 hours and then... work on whatever code makes you happy without using an LLM? Let's stop pretending or denying it: most of us would delegate our work code to somebody else or something else if we could. Still, prompting LLMs well requires eloquence and expressiveness that many programmers don't have. I have started deriving a lot of value from those LLMs I chose to interact with by specifying clear boundaries on what's the priority and what can wait for later and what should be completely ignored due to this or that objective (and a number of other parameters I am giving them). When you do that well, they are extremely useful.
- simonw 1y ago> "verify it rigorously (which if you cannot do, you should absolutely never touch an LLM!)" 100% this.
- williamstein 1y agoTotally. And yet rigorous proof is very difficult. Having done some mathematics involving nontrivial proofs, I respect even more how difficult rigor is.
- pdimitar 1y agoAh, I absolutely don't verify code in the mathematical sense of the word. More like utilize strong static typing (or hints / linters in weaker typed languages) and write a lot of tests. Nothing is truly 100% safe or free of bugs. What I meant with my comment up-thread was that I have enough experience to have a fairly quick and critical eye of code, and that has saved my skin many times.
- only-one1701 1y agoI like writing code more than reading it, personally.
- JeremyMorgan 1y agoOne of the things people often overlook don't talk about in this arguments is the manager's point of view and how it's contributing to the shakeups in this industry. As a developer I'm bullish on coding agents and GenAI tools, because they can save you time and can augment your abilities. I've experienced it, and I've seen it enough already. I love them, and want to see them continue to be used. I'm bearish on the idea that "vibe coding" can produce much of value, and people without any engineering background becoming wildly productive at building great software. I know I'm not alone. If you're a good problem solver who doesn't know how to code, this is your gateway. And you better learn what's happening with the code while you can to avoid creating a huge mess later on. Developers argue about the quality of "vibe coded" stuff. There are good arguments on both sides. At some point I think we all agree that AI will be able generate high quality software faster than a human, someday. But today is not that day. Many will try to convince you that it is. Within a few years we'll see massive problems from AI generated code, and it's for one simple reason: Managers and other Bureaucrats do not care about the quality of the software. Read it again if you have to. It's an uncomfortable idea, but it's true. They don't care about your flow. They don't care about how much you love to build quality things. They don't care if software is good or bad they care about closing tickets and creating features. Most of them don't care, and have never cared about the "craft". If you're a master mason crafting amazing brickwork, you're exactly the same as some amateur grabbing some bricks from home depot and slapping a wall together. A wall is a wall. That's how the majority of managers view software development today. By the time that shoddy wall crumbles they'll be at another company anyway so it's someone else's problem. When I talk about the software industry collapsing now, and in a few years we're mired with garbage software everywhere, this is why. These people in "leadership" are salivating at the idea of finally getting something for nothing. Paying a few interns to "vibe code" piles of software while they high five each other and laugh. It will crash. The bubble will pop. Developers: Keep your skills sharp and weather out the storm. In a few years you'll be in high demand once again. When those walls crumble, they will need people who what they're doing to repair it. Ask for fair compensation to do so. Even if I'm wrong about all of this I'm keeping my skills sharp. You should too. This isn't meant to be anti-management, but it's based on what I've seen. Thanks for coming to my TED talk. * And to the original point, In my experience the tools interrupt the "flow" but don't necessarily take the joy out of it. I cannot do suggestion/autocomplete because it breaks my flow. I love having a chat window with AI nearby when I get stuck or want to generate some boilerplate.
- ahamilton454 1y agoI’ve been struggling with a very similar feeling. I too am a manager now. Back in the day there was something very fulfilling about fully understanding and comprehending your solution. I find now with AI tools I don’t need to understand a lot. I find the job much less fulfilling. The funny thing is I agree with other comments, it is just kind of like a really good stack overflow. It can’t automate the whole job, not even close, and yet I find the tasks that it cannot automate are so much more boring (the ones I end up doing). I envy the people who say that AI tools free them up to focus on what they care about. I haven’t been able to achieve this building with ai, if anything it feels like my competence has decreased due to the tools. I’m fairly certain I know how to use the tools well, I just think that I don’t enjoy how the job has evolved.
- blueboo 1y agoThe old joy may be gone. But the new joy is there, if you're receptive to it
- codr7 1y agoAnd which joy is that? Short sighted profits?
- plsbenice34 1y agoInjecting malware via flaws in the shitty programs, maybe
- iugtmkbdfil834 1y agoI think.. based on recent events.. that some of the corporate inefficiencies are very poorly captured. Last year we had an insane project that was thrown at us before end of the year, because, basically, company had a tiff with the vendor and would rather have us spend our time in meetings trying to do what they are doing rather than pay vendor for that thing. From simple money spent perspective, one would think company's simple amoral compass would be a boon. AI coding is similar. We just had a minor issue with ai generated code that was clearly not vetted as closely as it should have been making output it generated over a couple of months not as accurate as it should be. Obviously, it had to be corrected, then vetted and so on, because there is always time to correct things... edit: What I am getting at is the old-fashioned, penny smart, but pound foolish.
- throwaway20174 1y agoThe catch is that when AI handles 95% or 99% of a task, people say great, don't need humans. 99% is great. But when that last 1% breaks and AI can’t fix it. That’s where you need the humans.
- codr7 1y agoBy then the price will have increased quite a bit; if you want me to fix your AI crap, you're going to pay until it hurts.
- bix6 1y ago“ Fast forward to today, and that joy of coding is decreasing rapidly. Well, I’m a manager these days, so there’s that…” This sounds a more likely reason for losing your joy if your passion is coding.
- codr7 1y agoI've tried getting different AIs to say something meaningful about code, never got anything of value back so far. They can't even manage tab-completion well enough to be worth the validation effort for me.
- p0w3n3d 1y agoYeah I wonder how do the code look after such professional AI development. I tried ChatGPT 1o to ask it about simple C function - what errors are there. It answered only after I directly asked about the aspects I was expecting it to tell about. It means that if I didn't know that the LLM wouldn't tell me...
- bitwize 1y agoEarlier this year, a hackernews started quizzing me about the size and scope of the projects I worked on professionally, with the implication that I couldn't really be working on anything large or complex -- that I couldn't really be doing serious development, without using a full-fat IDE like IntelliJ. I wasn't going to dox myself or my professional work just so he could reach a conclusion he's already arrived at. The point is, to this person, beyond a certain complexity threshold -- simple command-line tools, say -- an IDE was a must, otherwise you were just leaving productivity on the table. https://news.ycombinator.com/item?id=42511441 https://news.ycombinator.com/item?id=42511441 People are going to be making the same judgements about AI-assisted coding in the near future. Sure, you could code everything yourself for your own personal enrichment, or simply because it's fun. But that will be a pursuit for your own time. In the realm of business, it's a different story: you are either proompting, or you're effectively stealing money from your employer because you're making suboptimal use of the tools available. AI gets you to something working in production so much faster that you'd be remiss not to use it. After all, as Milt and Tim Bryce have shown, the hard work in business software is in requirements analysis and design; programming is just the last translation step.
- kcexn 1y agoMy professional career has mostly been in IT ops. I've worked for companies that do requirements analysis and design in-house, write up a huge spec, send the spec to an offshore development house, then simply acceptance test the software that is sent back. Companies know that the quality of the software they get back might be lower than if they hired the bestest, smartest developers in the world. But it doesn't matter because keeping the production cost of the asset low means that they can maximize long term profits. Writing good software is not the same as writing profitable software.
- lrvick 1y agoSo long as your experience and skill allows you to produce work of higher quality than average for your industry, then you will always have a job which is to review that average quality work, and surgically correct it when it is wrong. This has always been true in every craft, and it remains true for programmers in a post LLL world. Most training data is open source code written by novice to average programmers publishing their first attempts at things and thus LLMS are heavily biased to replicate the naive, slow, insecure code largely uninformed by experience. Honestly to most programmers early in their career right now, I would suggest spending more time reviewing code, and bugfixes, than writing code. Review is the skillset the industry needs most now. But you will need to be above average as a software reviewer to be employable. Go out into FOSSland and find a bunch of CVEs, or contribute perf/stability/compat fixes, proving you review and improve things better than existing automated tools. Trust me, there are bugs -everywhere- if you know how to look for them and proving you can find them is the resume you need now. The days of anyone that can rub two HTML tags together having a high paying job are over.
- nottorp 1y ago> LLMS are heavily biased to replicate the naive, slow, insecure code largely uninformed by experience The one time i pasted LLM code without reviewing it it belonged on accidentally quadratic. It was obvious at first read, but probably not for a beginner. The accidental complexity was hidden behind API calls that weren't wrong, just grossly inefficient. Problem might be, if you lose the "joy" and the "flow" you'll stop caring about things like that. And software is bloated enough already.
- kcexn 1y agoThe problem with FOSSland is that it is increasingly driven by commercial interests, not by volunteers. I don't know the last time I encountered a used (not random hobby projects) FOSS project that wasn't funded and supported by a company (with exceptions maybe only in the GNU software suite, but even then lots of authors there are making submissions using company email addresses). I think it's totally acceptable to not make open-source contributions to those projects unless someone is paying you to.
- Kiro 1y agoCan't relate at all. I've never had so much fun programming as I have now. All the boring and tedious parts are gone and I can finally focus on the code I love to write.
- auggierose 1y agoThe post focuses on flow, but depending on what you mean by it, it isn't necessarily a good thing. Trying to solve something almost too difficult usually gets you out of flow. You still need concentration, though. My main worry about AI is that people just keep using the garbage that exists instead of trying to produce something better, because AI takes away much of the pain of interacting with garbage. But most people are already perfectly fine using garbage, so probably not much will change here.
- bradley13 1y agoThe author is already an experienced programmer. Let me toss in an anecdote about the next generation of programmers. Vibe coding: also called playing pinball with the AI, hoping something useful comes out. I taught a lecture in my first-semester programming course yesterday. This is in a program for older students, mostly working while going back to school. Each time, a few students are selected to present their code for an exercise that I pick randomly from those they were assigned. This guy had fancy slides showing his code, but he was basically just reading the code off the page. So I ask him: “hey, that method you call, what exactly does it do?”. Um… So I ask "Ok, the result from that method is assigned to a variable. What kind of variable is it?" Note that this is Java, the data type is explicitly declared, so the answer is sitting there on his slide. Um… So I tear into him. You got this from ChatGPT. That’s fine, if you need the help, but you need to understand what you get. Otherwise you’ll never get a job in IT. His answer: “I already have a job in IT.” Fsck. There is your vibe coder. You really do not want them working on anything that you care about.
- walleeee 1y agoThis is one of the biggest dangers imo. While I agree with the OP about the deflation of joy in experienced programmers, the related but more consequential effect seems to be dissuading people from learning. A generational threat to collective competence and a disservice to students and teachers everywhere
- z_open 1y agoDoes your course not have exams or in-lab assignments? Should sort itself out. Honestly, I'm all for homework fading away as professors can't figure out how to prevent people from using AI. It used to be the case that certain kids could get away with not doing much because they were popular enough to get people to let them copy their assignments (at least for certain subjects). Eventually the system will realize they can't detect AI and everything has to be in-person.
- bradley13 1y agoSure, this guy is likely to fail the course. The point is: he is already working in the field. I don't know his exact job, but if it involves programming, or even scripting, he is faking his way with AI, not understanding what he's doing. That is frightening.
- jokoon 1y agoI asked chatgpt mini something about godot, and often it gives erroneous answers. So it causes developers to regularly fix what chatgpt is wrong about. Not great.
- ang_cire 1y agoThis comment section really shows the stark divide between people who love coding and thus hate AI, and people who hate coding and thus love AI. Honestly, I suspect the people who would prefer to have someone or something else do their coding, are probably the devs who are already outputting the worst code right now.
- aprxi 1y agoCant one enjoy both? After all, coding with AI in practice is still coding, just with a far higher intensity.
- ang_cire 1y agoIt is absolutely possible to enjoy both- I have used LLMs to generate code for ideas about alternate paths to take when I write my code- but prompt generation is not coding, and there are WAY too many people who claim to be coding when they have in fact done nothing of the sort. > a far higher intensity I'm not sure what this is supposed to mean. The code that I've gotten is riddled with mistakes and fabrications. If I were to use it directly, it would significantly slow my pace. Likewise, when I use LLMs to offer alternative methods to accomplish something, I have to take the time to sit down and understand what they're proposing, how to actually make it work, and whether that route(s) would be better than my original idea. That is a significant speed reduction. The only way I can imagine LLMs resulting in "far higher intensity" is if I was just yolo'ing the code into my program, and then doing frantic integration, correction, and bugfix work afterwards. Sure, that's "higher intensity", but that's just working harder and not smarter.
- m2024 1y ago[dead]
- bluefirebrand 1y agoIt is not coding the same way riding a bus is not driving You may get to the same destination, but it is not the same activity
- maelito 1y agoFunny that I found this article going to hacker news as a pause in my work : I had to chose between using Aider or my brain to code a small algorithmic task, sorting items of a list based on dependences between items written in a YAML file. Using Aider would probably solve the task in 5 minutes. Coding it in 30 minutes. The former choice would result in more time for other tasks or reading HN or having a hot beverage or walking in the sun. The second would challenge my rusting algorithmic skills and give me a better understanding of what I'm doing for the medium term. Hard choice. In any case, I have a good salary, even with the latter option I can decide to spend good times.
- admiralrohan 1y agoHave you encounter anything regarding tech debt when using AI? Don't see any mention regarding this in the post, which is the common objection people have regarding vibe coding.
- deleted 1y ago[deleted]
- ltr_ 1y agoin the meantime im having lots of fun coding and using AI, reinventing every wheel i can. 0 stress cos i don't do it for money :). I think a lot of people are having a tantrum because programing is not sexy anymore, its getting easier, the bar is lower now , the quality is awful and nobody cares. its like any other boring soul crushing job. also if you want to see the real cost (at least part of it) of AI coding or the whole fucked up IT industry, go to any mining town in the global south.
- pjmlp 1y ago> After all, if we lose the joy in our craft, what exactly are we optimizing for? For being one of the few lucky ones that gets to stay around taking care of the software factory robots, or designing them, while everyone else that used to work at the factory is now queueing somewhere else.
- jappgar 1y agoTo me THIS is the most stressful part of the whole thing. I like programming but I have other hobbies I find fulfilling, and nothing stops me from programming with a pen and paper. The bad vibes are not caused by lack of programming, they're caused by headsman sharpening his axe behind me. A few lucky programmers will be elevated to God status and we're all fighting for those spots now.
- pjmlp 1y agoFor me the most surprising part is the phase of wonder, from those that apparently never read anything in the history of industrial revolution, and think everyone will still have a place when we achieve Star Trek replicator level. Not everyone gets a seat at the starship.
- deleted 1y ago[deleted]
- TrackerFF 1y agoSome people love programming, for the sake of programming itself. They love the CS theory, they love the tooling, they love most everything about it. Other people see all that as an means to an end - and find no joy from the technical aspect of creating something. They're more interested in the end result / product, rather than the process itself. I think that if you're in group A, it can be difficult to understand group B. In vice versa. I'm a musician, so I love everything about creating music. From the theory, to the mastery of the instrument, the tens of thousands of hours I've poured into it...finally being able to play something I never thought I'd be able to, just by sheer willpower and practice. Coming up with melodies that feel something to me, or I can relate to something. On the other hand, I know people that want to jump straight to the end result. They have some melody or idea in their head, and they just want to generate some song that revolves around that idea. I don't really look down on those people, even though the snobs might argue that they're not "real musicians". I don't understand them, but that's not really something I have to understand either. So I think there are a lot of devs these days, that have been honing their skills and love for the craft for years, that don't understand why people just want things to be generated, with no effort.
- andybak 1y ago> Some people love programming > Other people see all that as an means to an end I think it's worth pointing out that most people are both these things at different times. There's things I care about and want a deep understanding of but there's plenty of tasks I want to just "go away". If I had an junior coder - I'd be delegating these. Instead I use AI when I can. There's also tasks where I want a jump start. I prefer fixing/improving code over writing from scratch so often a bad AI attempt is still valuable to me.
- celsius1414 1y agoYou likely don’t have a say in the matter, but you should have a junior developer. That’s where senior developers come from.
- scarface_74 1y ago
- finalhacker 1y agoWhen I coding, most of time was used to search docs over internet. My first language is not english, search over hundrud of pages is quiet slow. AI help me a lot, you don't need search, just ask AI, and it provide the answer directly. After using AI, I have more time used on coding, more fun.
- ang_cire 1y agoI am mostly pretty underwhelmed with LLMs' code, but this is a use-case that makes perfect sense to me, and seems like a net-positive: using them as a reference manual/ translator/ training aid. I just wish I saw more people doing this, rather than asking them to 'draw 80% of the owl'.
- douglaswlance 1y agoTyping isn't what makes programming fun. AI coding preserves flow more than legacy coding. You never have to go read documentation for an hour. You can continuously code.
- oars 1y agoThis is my experience as well.
- ChrisMarshallNY 1y agoI love that quote he led with. In my case, I couldn't agree more, with the premise of the article, but my life today, is centered around writing software the very best that I can; regardless of value or price. It's not very effective, if I were to be trying to make a profit. It's really hard to argue for something, if the something doesn't result in value, as perceived by others. For me, the value is the process. I often walk away from my work, once I have it up and shipping. I do like to take my work all the way through shipping, support, and maintenance, but find that my eye is always drawn towards new shores[0]. “A ship in harbor is safe, but that is not what ships are built for.” –John A. Shedd [0] https://littlegreenviper.com/miscellany/thats-not-what-ships-are-built-for/ https://littlegreenviper.com/miscellany/thats-not-what-ships...
- clbrmbr 1y agoI have actually had some really great flow evenings lately, the likes of which I have not enjoyed in many years, precisely because of AI-assisted coding. The trick is to break the task down in to components that are of moderate complexity so that the AI can handle them (Gemini 2.5 Pro one-shots), and keep your mind on the high-level design which today's AI cannot coordinate. What helps me is to think of it like I'm a kid again, learning to code full of ideas but without any pre-conceived notions. Rather than the Microsoft QuickBasic manual in my hands, I've got Gemini & Claude Code. I would be gleefully coding up a storm of games, websites, dubious webcrawlers, robots, and lord knows what else. Plenty of flow to be had.
- melvinroest 1y agoThis is the way. I feel like a kid too again. It's way more fun actually. As a kid I got too frustrated for not being able to install my WAMP stack.
- cushychicken 1y agoI’m right there with you on this. Thanks for the comment. You articulated how I feel about this situation very well.
- sebstefan 1y agoAdded joy for me as well mostly by giving me the relevant API calls I need straight away, from publically available documentation, instead of having to read docs myself. "How do I do X in Y" And if something's not obvious I can always fetch the specifics of any particular calls. But at least I didn't have to find the name of that call in the first place.
- deleted 1y ago[deleted]
- wolvesechoes 1y agoI always wonder what kind of projects are we talking about. I am currently writing a compiler and simulation engine for differential-algebraic equations. I tried few models, hoping they would help me, but they could not provide any help with small details nor with bigger building blocks. I guess if you code stuff that had been coded a lot in public repos, it is fine, otherwise AI does not help in any way. Actually, I think I wasted more time trying to make it produce the output I wish for than it took me to do this myself.
- williamcotton 1y agoI had a lot of joy making an experimental DSL with a web server runtime using primarily LLM tools. Then I shared it on HN and was subject to literal harassment.
- VoodooJuJu 1y ago[dead]
- deleted 1y ago[deleted]
- ramesh31 1y ago>"...the one thing that currently worries me most about using AI for software development: lack of joy." I struggled with this at first too. But it just becomes another kind of joy. Think of it like jogging versus riding a motorcycle. Jogging is fun, people enjoy it, and they always will. But flying down a canyon road at 90MPH and racing through twists and turns is... way more fun. Once you've learned how to do it. But there's a gap there in which it stops being fun until you do.
- NotBoolean 1y agoThat’s an interesting analogy but I do disagree with it. I would say that programming without an AI is like riding a motorcycle. You’re in complete control and it’s down to your skill to get you we’re your going. While using AI is like taking a train. You got to plan the route but you’re just along for the ride. Which I think lines up to the article. If you want to get somewhere easily and fast, take a train. But that does take away the joy of the journey.
- sega_sai 1y agoAs a scientist, I actually greatly enjoy the AI assisted coding because it can help with the boring/tedious side of coding. I.e. I occasionally have some new ideas/algorithms to try, and previously I did not have enough time to explore them out, because there was just too much boring code to be written. Now this part is essentially solved, and I can more easily focus on key algorithms/new ideas.
- erelong 1y agoFlow Management Flow comes when challenge meets skill Too much skill and too little challenge creates boredom; too little skill and too much challenge creates anxiety AI has reduced the challenge needed for achieving your goal, creating boredom Remedy: find greater challenges?
- apercu 1y agoI would argue that the vast majority of challenges I have had in my (very long) tech career were not technical challenges anyway, rather they were "people" problems (e.g., extracting the actual requirements and maintaining scope stability).
- fredophile 1y agoI will start by saying I don't have much experience with the latest AI coding tools. From what I've seen using them would lead to more boredom. I like solving problems. I don't like doing code reviews. I wouldn't trust any AI generated code at this stage without reviewing it. If I could swap that around so I write code and AI gives me a reasonable code review and catches my mistakes I'd be much more interested.
- utkarsh858 1y agoI always thought about the problem of AI taking jobs, that even if there are new jobs created to replace the older ones, it will come at a cost of decrease in satisfaction of overall populace. The more people in general get disconnect from nature/physical world/reality. via layers of abstraction the more discontent they will become. These layers can be: 1) Automatics in agriculture. 2) Industries. 3) Electronics 4) Software 5) and now AI Each higher layer depends on lower ones for its functioning without the need to worry about specifics and provides a framework for higher abstraction to work on. The more we move up in hierarchy the more disconnected we become from the physical world. To support this I observed that villagers in general are more jolly and content than city dwellers. In metropolis specially I saw that people are more rude, anxious and always agitated, while villagers are welcoming and peaceful. Another good example is that of an artist finding it boring to guide AI even though he loves making paintings himself/herself.
- CopyOnWrite 1y agoMost comments here surprise me: I am using Githubs Copilot / ChatGPT 4.0 at work with a code base which is mostly implements a basic CRUD service... and outside of small/trivial example (where the generated code is mostly okay), prompting is more often than not a total waste of time. Now, I wonder if I am just totally unable to write/refine good prompts for the LLM (as it works for smaller samples, I hope I am not too far off) or what could explain the huge discrepancy of experience. (Just for the record: I would totally not mind if the LLM writes the code for the stuff I have to do at work.) To clarify my questions: - Who here uses LLMs to generate code for bigger projects at work? (>= 20k lines of code) - If you use LLMs for bigger projects: Do you need to change your prompting strategy to get good results? - What programming languages are you using in your code bases? - Are there other people here who experience that LLMs are no help for non trivial problems?
- douglasisshiny 1y agoI'm in the same boat. I've largely stopped using these tools other than asking questions about a language that I'm less familiar with or a complex type in typescript for which it can be helpful (sometimes). Otherwise, I felt like I was just wasting my time and becoming lazier/worse as a developer. I do wonder whether LLMs have hit a wall and we're in a hype cycle.
- CopyOnWrite 1y agoYes, I have the same feeling about the wall/hype cycle. Most of my time is understanding code and formulating a plan to change code w/o breaking anything... even if LLMs would generate 100% perfect code on the first try, it would not help in a big way. One thing I forgot to mention is asking LLMs questions from within the IDE instead of doing a web search... this works quite nice, but again, it is not a crazy productivity boost.
- 7589447636 1y ago> Now, I wonder if I am just totally unable to write/refine good prompts for the LLM (as it works for smaller samples, I hope I am not too far off) or what could explain the huge discrepancy of experience. Programming language / stack plays plays a big role, I presume.
- luxurytent 1y ago> Fast forward to today, and that joy of coding is decreasing rapidly. Well, I’m a manager these days, so there’s that… But even when I do get technical, I usually just open Cursor and prompt my way out of 90% of it. It’s way more productive, but more passive as well. Dude's an engineering manager who codes maybe 5% of the time and his joy is decreasing. AI is not the problem, it's being an engineering manager.
- ragle 1y agoMy experience has been almost the opposite. Typing isn't the fun part of it for me. It's a necessary evil to realize a solution. The fun part of being an engineer for me is figuring out how it all should work and fit together. Once that's done - I already basically have all of the code for the solution in my head - I've just got to get it out through my fingers and slog through all the little ways it isn't quite right, doesn't satisfy x or y best practice, needs to be reshaped to accommodate some legacy thing it has to integrate that is utterly uninteresting to me, etc. In the old model, I'd enjoy the first few hours or days of working on something as I was designing it in my mind, figuring out how it was all going to work. Then would come the boring part. Toiling for days or weeks to actually get all the code just so and closing that long-tail gap from 90% done (and all interesting problems solved) to 100% done (and all frustrating minutia resolved). AI has dramatically reduced the amount of time the unsatisfying latter part of a given effort lasts for me. As someone with high-functioning ADD, I'm able to stay in the "stimulation zone" of _thinking_ about the hard / enjoyable part of the problem and let AI do (50-70%, depending on domain / accuracy) of the "typing toil". Really good prompts that specify _exactly_ what I want (in technical terms) are important and I still have to re-shape, clean up, correct things - but it's vastly different than it was before AI. I'm seeing on the horizon an ability to materialize solutions as quickly as I can think / articulate - and that to me is very exciting. I will say that I am ruthlessly pragmatic in my approach to development, focusing on the most direct solution to meet the need. For those that obsesses over beautiful, elegant code - personalizing their work as a reflection of their soul / identity or whatever, I can see how AI would suck all the joy from the process. Engineering vs. art, basically. AI art sucks and I expect that's as true for code as it is for anything else.
- shishy 1y agoThere is craft in business, in product, and in engineering. A lot of these discussions focus on craft in engineering and there's lots of merit there regarding AI tools and how they change that process, but I've found that folks who enjoy both the product side of things and the engineering side of things are thriving while those who were very engineering focused understandably feel apprehensive. I will say, in my day job, which is often at startups, I have to focus more on the business / product side just given the phase of the company. So, I get joy from engineering craft in side projects or other things I work on in my own time to scratch the itch.
- recroad 1y agoI’m the opposite. Tabbing through boilerplate increases my flow.
- jbs789 1y agoI found myself recently making decent superficial progress only to introduce a bug and had a system crash (unusual bc it’s python) bc I didn’t really understand how the package worked (bc I bypassed the docs for the AI examples). It did end up working out ok - I then went into the weeds and realised the AI has given me two examples that worked in isolation but not together - inconsistent API calls essentially. I do like understanding what I’m doing as much or more than getting it done, bc it always comes back to you, sooner or later.
- elliotbnvl 1y agoWould you be happier and feel more flow if you were typing in assembly? What about hand-punching cards? To me this reads more as nostalgia than a genuine concern. Tools are always increasing in abstraction, but there’s no reason you can’t achieve flow with new tools. Learning to prompt is the new learning to type.
- chw9e 1y agoThe things I'm usually tabbing through in cursor are not the things that make me feel a lot of enjoyment in your work. The things that are most enjoyable are usually the system level design aspects, the refactorings to make things work better. These you can brainstorm with AI, but cannot delegate to AI today. The rest is glorified boilerplate that I find usually saps me of my energy, not gives me energy. I'm a fan of anything that can help me skip over that and get to the more enjoyable work.
- randcraw 1y agoThis article resonates with me like no other has in years. I very recently retired after 40 years writing software because my role had evolved into a production-driven limbo. For the past decade I have scavenged and copied other peoples' code into bland cookie cutter utilities that fed, trained, ran, and summarized data mining ops. It has required not one whit of creative expression or 'flow', making my life's work as dis-engaging as that of... well... the most bland job you can imagine. AI had nothing to do with my own loss of engagement, though certainly it won't cure what ailed me. In fact, AI promises to do to all of software development what the mechanized data mining process did to my sense of creative self-expression. It will squeeze all the fun out of it, reducing the joy of coding (and its design) to plug-and-chug, rinse, repeat. IMHO the threat of AI to computer programming is not the loss of jobs. It's the loss of personal passionate engagement in the craft.
- kcexn 1y agoI've just finished a PhD in (specialised) topics around computer performance. And I have a similar feeling about the stagnant state of innovation in computer and software engineering over the last 15 years or so. The vast majority of research is funded or incentivized in some way by the big internet companies. The big internet companies have a very narrow scope of problems that they are commercially interested in. They also have so much power and money that getting people to listen to diverse ideas and opinions is incredibly difficult, both commercially and academically because everyone somehow has to cater what they do to be in line with internet company practices. And of course, the internet companies have found ways to industrialize their core competencies of data warehousing and analytics so that every year, fewer inputs (staff, hardware, software, data) are needed to achieve the same outputs. I think that people are experiencing a loss of independence, and creative thinking. Not a loss of passion for the craft.
- devmor 1y agoI think a lot of this discussion is moot - it all devolves into the same arguments rehashed between people who like using AI and people who do not. What we really need are more studies on the productivity and skill outcomes of using AI tools. Microsoft did one, with results that were very negative towards AI tools [1]. I would like to see more (and much larger cohort) studies along this line, whether they validate Microsoft's conclusions or oppose them. Personally I do not find AI coding tools to be useful at all - but I have not put extensive time into developing a "skillset" to use them optimally. Mainly because I believe, similar to what the study by MS found, that they are detrimental to my critical reasoning skills. If this turns out to be wrong, I would not mind evaluating changing course on that decision - but we need more data. 1. https://www.microsoft.com/en-us/research/wp-content/uploads/2025/01/lee_2025_ai_critical_thinking_survey.pdf https://www.microsoft.com/en-us/research/wp-content/uploads/...
- kordlessagain 1y agoHonestly, most of the "real engineer" rhetoric is exhausting. Here's the thing: the people most obsessed with software craftsmanship, pattern orthodoxy, and layered complexity often create some of the most brittle, hostile, constantly mutating systems imaginable. You may be able to build abstractions, but if you're shipping stuff that users have to re-learn every quarter because someone needed to justify a promotion via another UI revamp or tech stack rewrite, you're not designing well. You're just changing loudly. Also, stop gatekeeping AI tooling like it’s cheating. We’re not in a craft guild. The software landscape is full of shovelware and half-baked “best practices” that change more often than a JavaScript framework’s logo. I'm not here to honor the tradition of suffering through YAML hell or memorizing the 400 ways to configure a build pipeline. I’m here to make something work well, fast, and that includes leveraging AI like the power tool it is. So yeah, you can keep polishing the turd pile of over-engineered “real” systems. The rest of us will be using AI to build, test, and ship faster than your weekly stand-up even finishes.
- kcexn 1y agoThere was a time when "engineer" was a respected term reserved for a profession. Engineers were highly paid because they're brought onto projects that are high-complexity and high-value. Companies are hoping not to pay for engineering work more than once. Some countries still treat the title "Engineer" as a protected title. Though I often now see it prefixed with professional or accredited or something so that people know they aren't an "engineer" they're an "Engineer". I think most people who write software who think of the work they're doing as "real engineering" are like the draftsmen who draw up floor plans for local government approvals in civil engineering offices. If you're doing it over and over again, it's probably not engineering, it's probably just regular skilled Labor.
- jimbobimbo 1y agoIt's 9am in the morning. I login to my workstation and muddle my way through the huge enterprise code base which doesn't fit into any model context window for the AI tool to be useful (and even if it did, we can't use any random model due to compliance and proprietary and whatnot). I have thousands deadlines which are suddenly coming due and a bunch of code which is broken because some poor soul under the same pressure put something that "works" in. And it worked, until it didn't, and now it's my turn in the barrel. Is this the joy? I'm not complaining, I'm doing it for the good money.
- Aeolun 1y ago> if a person’s body or mind is stretched to its limits in a voluntary effort to accomplish something difficult and worthwhile.” — Mihaly Csikszentmihalyi Like pronouncing your surname? Holy hell. Ok, I needed to get that off my chest, will go back to reading the article now.
- rerdavies 1y agoI'm a veteran professional programmer with 40+ years of experience. So far, I'm finding coding with an AI to be pure sweetness and light. I cannot imagine why you cannot find flow using an AI assistant. I am definitely somebody who finds bliss in programming; and in my experience, AI assistants increase my bliss. My ideas are expressed in code much more efficiently. I spend less time in miserable documentation sets. I find myself fearlessly adding functionality that I would not have added if I weren't using an AI. And I have not a shadow of a doubt that my productivity has gone up dramatically. If anything, I find that AI assistants keep me in flow sate, particularly in cases where I would previously have had to wade through pages of ancient crusty Unix API documentation. Maybe you should try a different AI. I found the ChatGPT AIs totally unhelpful, and counter-productive; but would recommend Claude Sonnet 3.7 without hesitation. I'm still working my way through other AIs. Others may be better at present, but so far I haven't found any that are dramatically better. It's hard to keep up with the furious pace of innovation. It might also take a while to find your fu. I found the benefits to using an AI pretty much immediately; but I'm still discovering new and interesting ways to use my AI assistant.
- tpoacher 1y agoA related thought, just leaving this here. There's something great about old technology (though obviously one must be aware of survivorship bias when citing such technology), despite the fact that, logically speaking, new technology should have obviously been better. Perhaps it's some variant of Jevons' paradox. The better / more efficient things get, the more of an impetus there is to use them in truly crappy ways. And this is how I'm starting to feel about programming with vs without an AI: you can either program manually to create truly creative, functional, elegant stuff, or use AI to produce garbage more efficiently. There just doesn't seem to be an in-between category, at least in terms of demand. In case you haven't seen this video of a toaster from the 60s before, you're in for a treat: https://www.youtube.com/watch?v=1OfxlSG6q5Y https://www.youtube.com/watch?v=1OfxlSG6q5Y I'm also reminded of Edsger Dijkstra's quote on elegance: https://platosmirror.com/edsger-dijkstra-elegance-is-not-a-dispensable-luxury-but-a-factor-that-decides-between-success-and-failure/ https://platosmirror.com/edsger-dijkstra-elegance-is-not-a-d...
- stuaxo 1y agoTo make things good, still takes a bunch of work - though I don't know if it's all the satisfying work.