7 ms·
I guess we're all trying to figure out where we sit along the continuum from anti-AI Luddite to all-in. My main issue with vibe coding etc is I simply don't en
by stevage 1y ago
I guess we're all trying to figure out where we sit along the continuum from anti-AI Luddite to all-in.
My main issue with vibe coding etc is I simply don't enjoy it. Having a conversation with a computer to generate code that I don't entirely understand and then have to try to review is just not fun. It doesn't give me any of the same kind of intellectual satisfaction that I get out of actually writing code.
I'm happy to use Copilot to auto-complete, and ask a few questions of ChatGPT to solve a pointy TypeScript issue or debug something, but stepping back and letting Claude or something write whole modules for me just feels sloppy and unpleasant.
- Garlef 1y ago> Having a conversation with a computer to generate code that I don't entirely understand and then have to try to review is just not fun. Same for me. But maybe that's ultimately an UX issue? And maybe things will straighten out once we figure out how to REALLY do AI assisted software development. As an anology: Most people wouldn't want to dig through machine code/compiler output. At least not without proper tooling. So: Maybe once we have good tools to understand the output it might be fun again. (I guess this would include advances in structuring/architecting the output)
- bitwize 1y agoI think that AI assistance in coding will become enjoyable for me once the technology exists for AI to translate my brainwaves into text. Then I could think my code into computer, greatly speeding the OODA loop of programming. As it is, giving high-level directives to an LLM and debugging the output seems like a waste of my time and a hindrance to my learning process. But that's how professional coding will be done in the near future. 100% human written code will become like hand-writing a business letter in cursive: something people used to be taught in school, but no one actually does in the real world because it's too time-consuming. Ultimately, the business world only cares about productivity and what the stopwatch says is faster, not whether you enjoy or learn from the process.
- cratermoon 1y agoTim doesn't address this in his essay, so I'm going to harp on it: "AI will soon be able to...". That phrase is far too load-bearing. The part of AI hype that says, "sure, it's kinda janky now, but this is just the beginning" has been repeated for 3 years now, and everything has been just around the corner the entire time. It's the first step fallacy, saying that if we can build a really tall ladder now, surely we'll soon be able to build a ladder tall enough to reach the moon. The reality is that we've seen incremental and diminishing returns, and the promises haven't been met.
- tptacek 1y agoDiminishing returns? Am I reading right that you believe the last 6 months has been marked by a decrease in the capability of these systems?
- cratermoon 1y agoThat's not what diminishing returns means.
- tptacek 1y agoThat's true, but it's nearest bit of evidence at hand to how the "returns" could be "diminishing". I'm fine if someone wants to provide any other coherent claim as to how we're in a "diminishing returns" state with coding LLMs right now.
- cratermoon 1y agohttps://techcrunch.com/2024/11/20/ai-scaling-laws-are-showing-diminishing-returns-forcing-ai-labs-to-change-course/ https://techcrunch.com/2024/11/20/ai-scaling-laws-are-showin...
- tptacek 1y agoWhat's the implication of this story to someone who had started writing code with LLMs 6 months ago, and is today as well. How has their experience changed? Have the returns to that activity diminished?
- username223 1y ago> As an anology: Most people wouldn't want to dig through machine code/compiler output. At least not without proper tooling. My analogy is GUI builders from the late 90s that let you drag elements around, then generated a pile of code. They worked sometimes, but God help you if you wanted to do something the builder couldn't do, and had to edit the generated code. Looking at compiler output is actually more pleasant. You profile your code, find the hot spots, and see that something isn't getting inlined, vectorized, etc. At that point you can either convince the compiler to do what you want or rewrite it by hand, and the task is self-contained.
- layer8 1y agoThe compiler analogy doesn’t quite fit, because the essential difference is that source code is (mostly) deterministic and thus can be reasoned about (you can largely predict in detail what behavior code will exhibit even before writing it), which isn’t the case for LLM instructions. That’s a major factor why many developers don’t like AI coding, because every prompt becomes a non-reproducible, literally un-reasonable experiment.
- steveklabnik 1y agoI think the "largely" in there is interesting and load-bearing: a lot of people find compiler output quite surprising! But that doesn't mean that it's not a gradient, and LLM output may be meaningfully harder to reason about than compiler output, and that may matter.
- layer8 1y agoAssembly output may sometimes be surprising, but maintains the language semantics. The surprise comes from either misunderstanding the language semantics, or from performance aspects. Nevertheless, if you understand the language semantics correctly, the program behavior resulting from the output is deterministic and predictable. This is not true for LLMs.
- steveklabnik 1y agoI don't disagree on a factual level, I am just describing some people's subjective experiences: some language semantics can be very subtle, and miscompilation bugs are real. Determining if it is just an aggressive optimization or a real codegen bug can be difficult sometimes, that's all.
- layer8 1y agoTo some extent yes, but I don’t think that changes much about the distinction to AI coding I was making. The thing is that language misconceptions are fixable; the LLM unpredictability isn’t.
- pandler 1y agoIn addition to not enjoying it, I also don’t learn anything, and I think that makes it difficult to sustain anything in the middle of the spectrum between “I won’t even look at the code; vibes only” and advanced autocomplete. My experience has been that it’s difficult to mostly vibe with an agent, but still be an active participant in the codebase. That feels especially true when I’m using tools, frameworks, etc that I’m not already familiar with. The vibing part of the process simultaneously doesn’t provide me with any deeper understanding or experience to be able to help guide or troubleshoot. Same thing for maintaining existing skills.
- daxfohl 1y agoIt's like trying to learn math by reading vs by doing. If all you're doing is reading, it robs you of the depth of understanding you'd gain by solving things yourself. Going down wrong paths, backtracking, finally having that aha moment where things click, is the only way to truly understand something. Now, for all the executives who are trying to force-feed their engineering team to use AI for everything, this is the result. Your engineering staff becomes equivalent to a mathematician who has never actually done a math problem, just read a bunch of books and trusted what was there. Or a math tutor for your kid who "teaches" by doing your kid's homework for them. When things break and the shit hits the fan, is that the engineering department you want to have?
- zdragnar 1y agoI'm fairly certain that I lost a job opportunity because the manager interviewing me kept asking me variations of how I use AI when I code. Unless I'm stuck while experimenting with a new language or finding something in a library's documentation, I don't use AI at all. I just don't feel the need for it in my primary skill set because I've been doing it so long that it would take me longer to get AI to an acceptable answer than doing it myself. The idea seemed rather offensive to him, and I'm quite glad I didn't go to work there, or anywhere that using AI is an expectation rather than an option. I definitely don't see a team that relies on it heavily having fun in the long run. Everyone has time for new features, but nobody wants to dedicate time to rewriting old ones that are an unholy mess of bad assumptions and poorly understood.
- Kiro 1y agoI'm the opposite. I haven't had this much fun programming in years. I can quickly iterate, focus on the creative parts and it really helps with procrastination.
- timr 1y ago> My main issue with vibe coding etc is I simply don't enjoy it. Having a conversation with a computer to generate code that I don't entirely understand and then have to try to review is just not fun. It doesn't give me any of the same kind of intellectual satisfaction that I get out of actually writing code. I am the opposite. After a few decades of writing code, it wasn't "fun" to write yet another file parser or hook widget A to API B -- which is >99% of coding today. I moved into product management because while I still enjoy building things, it's much more satisfying/challenging to focus on the higher-level issues of making a product that solves a need. My professional life became writing specs, and reviewing code. It's therefore actually kind of fun to work with AI, because I can think technically, but I don't have to do the tedious parts that make me want to descend into a coma. I could care less if I'm writing a spec for a robot, or I'm writing a spec for a junior front-end engineer. They're both going to screw up, and I'm going to have to spend time explaining the problem again and again...at least the robot never complains and tries really hard to do exactly what I ask, instead of slacking off, doing something more intellectually appealing, getting mired in technical complexity, etc.
- kiitos 1y ago> After a few decades of writing code, it wasn't "fun" to write yet another file parser or hook widget A to API B -- which is >99% of coding today. If this is your experience of programming, then I feel for you, my dude, because that sucks. But it is definitely not my experience of programming. And so I absolutely reject your claim that this experience represents "99% of programming" -- that stuff is rote and annoying and automate-able and all that, no argument, but it's not what any senior-level engineer worth their salt is spending any of their time on!
- NewsaHackO 1y agoPeople who don’t do 1)API connecting, 2)Web design using popular frameworks or 3) requirements wrangling with business analysts have jobs that will not be taken over by AI anytime soon. I think 99% of jobs is pushing it, but I definitely think the vast majority of IT jobs fit into the above categories. Another benchmark would be how much of your job is closer to research work.
- doctoboggan 1y ago> and then have to try to review I think (at least by the original definition[0]) this is not vibe coding. You aren't supposed to be reviewing the code, just execute and pray. [0]: https://xcancel.com/karpathy/status/1886192184808149383 https://xcancel.com/karpathy/status/1886192184808149383
- potatolicious 1y agoYeah, I will say now that I've played with the AI coding tools more, it seems like there are two distinct use cases: 1 - Using coding tools in a context/language/framework you're already familiar with. This one I have been having a lot of fun with. I am in a good position to review the AI-generated code, and also examine its implementation plan to see if it's reasonable. I am also able to decompose tasks in a way that the AI is better at handling vs. giving it vague instructions that it then does poorly on. I feel more in control, and it feels like the AI is stripping away drudgery. For example, for a side project I've been using Claude Code with an iOS app, a domain I've spent many years in. It's a treat - it's able to compose a lot of boilerplate and do light integrations that I can easily write myself, but find annoying. 2 - Using coding tools in a context/language/framework you don't actually know. I know next to nothing about web frontend frameworks, but for various side projects wanted to stand up some simple web frontends, and this is where AI code tools have been a frustration. I don't know what exactly I want from the AI, because I don't know these frameworks. I am poorly equipped to review the code that it writes. When it fails (and it fails a lot) I have trouble diagnosing the underlying issues and fixing it myself - so I have to re-prompt the LLM with symptoms, leading to frustrating loops that feel like two cave-dwellers trying to figure out a crashed spaceship. I've been able to stand up a lot of stuff that I otherwise would never have been able to, but I'm 99% sure the code is utter shit, but I also am not in a position to really quantify or understand the shit in any way. I suppose if I were properly "vibe coding" I shouldn't care about the fact that the AI produced a katamari ball of code held together by bubble gum. But I do care. Anyway, for use case #1 I'm a big fan of these tools, but it's really not the "get out of learning your shit" card that it's sometimes hyped up to be.
- saratogacx 1y agoFor case 2, I've had a lot of luck starting with asking the LLM "I have experience in X, Y, and Z technologies, help me translate this project in those terms, list anything this code does that doesn't align with the typical use of the technologies they've chosen". This has given me a great "intro" to move me closer to being able to understand. Once I've done that and piked a few follow up questions, I feel much better in diving into the generated code.
- rowanseymour 1y agoThis was my experience until recently.. now I'm currently quite enjoying assigning small PRs to copilot and working through them via the GitHub PR interface. It's basically like managing a junior programmer but cheaper and faster. Yes that's not as much fun as writing code but there isn't time for me to write all the code myself.
- cloverich 1y agoCan you elaborate on the "assign PR's" bit? I use Cursor / ChatGPT extensively and am ready to dip into more of an issue / PR flow but not sure what people are doing here exactly. Specifically for side projects, I tend to think through high level features, then break it down into sub-items much like a PM. But I can easily take it a step further and give each sub issue technical direction, e.g. "Allow font customization: Refactor tailwind font configuration to use CSS variables. Expose those CSS variables via settings module, and add a section to the Preferences UI to let the user pick fonts for Y categories via dropdown; default to X Y Z font for A B C types of text". Usually I spend a few minutes discussing w/ ChatGPT first, e.g. "What are some typical idioms for font configuration in a typical web / desktop application". Once I get that idea solidified I'd normally start coding, but could just as easily hand this part off for simple-ish stuff and start ironing out he next feature. In the time I'd usually have planned the next 1-2 months of side project work (which happens, say, in 90 minute increments 2x a week), the Agent could knock out maybe half of them. For a project i'm familiar with, I expect I can comfortably review and comment on a PR with much less mental energy than it would take to re-open my code editor for my side project, after an entire day of coding for work + caring for my kids. Personally I'm pretty excited about this.
- rowanseymour 1y agoI have not had great experiences interacting directly with LLMs except when asking for a snippet of code that is generic and commonly done. Now with GitHub Copilot (you need a Pro Plus I think) I'm creating an issues, assigning to Copilot, and then having a back and forth on the PR with Copilot until it's right. Exactly as I would with a junior dev and honestly it's the first time I've felt like AI could make a noticeable difference to my productivity.
- gs17 1y ago> My main issue with vibe coding etc is I simply don't enjoy it. I almost enjoy it. It's kind of nice getting to feel like management for a second. But the moment it hits a bug it can't fix and you have to figure out its horrible mess of code any enjoyment is gone. It's really nice for "dumb" changes like renumbering things or very basic refactors.
- tptacek 1y agoWhen the agent spins out, why don't you just take the wheel and land the feature yourself? That's what I do. I'm having trouble integrating these two skeptical positions of "LLMs suck all the joy out of actually typing code into an editor" and "LLMs are bad because they sometimes force you to type code into an editor".
- tobr 1y agoI tried Cursor again recently. Starting with an empty folder, asking it to use very popular technologies that it surely must know a lot about (Typescript, Vite, Vue, and Tailwind). Should be a home run. It went south immediately. It was confused about the differences between Tailwind 3 and 4, leading to a broken setup. It wasn’t able to diagnose the problem but just got more confused even with patient help from me in guiding it. Worse, it was unable to apply basic file diffs or deletes reliably. In trying to diagnose whether this is a known issue with Cursor, it decided to search for bug reports - great idea, except it tried to search the codebase for it, which, I remind you, only contained code that it had written itself over the past half hour or so. What am I doing wrong? You read about people hyping up this technology - are they even using it? EDIT: I want to add that I did not go into this antagonistically. On the contrary, I was excited to have a use case that I thought must be a really good fit.
- windows2020 1y agoMy recent experience has been similar. I'm seeing that the people hyping this up aren't programmers. They believe the reason they can't create software is they don't know the syntax. They whip up a clearly malfunctioning and incomplete app with these new tools and are amazed at what they're created. The deficiencies will sort themselves out soon, they believe. And then programmers won't be needed at all.
- norir 1y agoMost people do not have the talent and/or discipline to become good programmers and resent those who do. This alone explains a lot of the current argument.
- gs17 1y ago> It was confused about the differences between Tailwind 3 and 4 I have the same issue with Svelte 4 vs 5. Adding some notes to the prompt to be used for that project helps sort of.
- tobr 1y ago
- 9d 1y agoConsidering the actual Vatican literally linked AI to the apocalypse, and did so in the most official capacity[1], I don't think avoiding AI has to be ludditism. [1] Antiqua et Nova p. 105, cf. Rev. 13:15
- 9d 1y agoFull link and relevant quote: https://www.vatican.va/roman_curia/congregations/cfaith/documents/rc_ddf_doc_20250128_antiqua-et-nova_en.html https://www.vatican.va/roman_curia/congregations/cfaith/docu... > Moreover, AI may prove even more seductive than traditional idols for, unlike idols that “have mouths but do not speak; eyes, but do not see; ears, but do not hear” (Ps. 115:5-6), AI can “speak,” or at least gives the illusion of doing so (cf. Rev. 13:15). It quotes Rev. 13:15 which says (RSVCE): > and it was allowed to give breath to the image of the beast so that the image of the beast should even speak, and to cause those who would not worship the image of the beast to be slain.
- ultimafan 1y agoThat was a very interesting read, thanks for linking it! I think the unfortunate reality of human innovation is that too many people consider that technological progress is always good for progresses sake. Too many people create new tools, tech, etc. without really stopping to take a moment and think or have a discussion on what the absolute worst case applications of their creation will be and how difficult it'd be to curtail that kind of behavior. Instead any potential (before creation) and actual (when it's released) human suffering is hand waved away as growing pains necessary for science to progress. Like those websites that search for people's online profiles based on image inputs sold by their creators as being used to find long lost friends or relatives when everyone really knows it's going to be swamped by people using it to doxx or stalk their victims, or AI photo generation models for "personal use" being used to deep fake nudes to embarrass and put down others. In many such cases the creators sleep easy at night with the justification that it's not THEIR fault people are misusing their platforms, they provided a neutral tool and are absolved of all responsibility. All the while they are making money or raking in clout fed by the real pain of real people. If everyone took the time to weigh the impact of what they're doing even half as diligently as that above article (doesn't even have to be from a religious perspective) the world would be a lot brighter for it.
- 9d 1y ago> It doesn't give me any of the same kind of intellectual satisfaction that I get out of actually writing code. Writing code is a really fun creative process: 1. Conceive an exciting and useful idea 2. Comprehend the idea fully from its top to its bottom 3. Translate the idea into specific instructions utilizing known mechanics 4. Find the beautiful middleground between instruction and abstraction 5. Write lots and lots of code! 6. Find where your conception was flawed and fix it as necessary. 7. Repeat steps 2-6 until the thing works just as you dreamed or you give up. It's maybe the most fun and exciting mixture of art and technology ever.
- 9d 1y agoI forgot to say the second part: Using AI is the same as code-review or being a PM: 1. Have an ideal abstraction 2. Reverse engineer an actual abstraction from code 3. Compare the two and see if they match up 4. If they don't, ask the author to change or fix it until it does 5. Repeat steps 2-4 until it does This is incredibly not fun, because it's not a creative process. You're essentially just an accountant or calculator at this point.
- xg15 1y ago> that I don't entirely understand That's the bigger issue in the whole LLM hype that irks me. The tacit assumption that actually understanding things is now obsolete, as long as the LLM delivers results. And if it doesn't we can always do yet another finetuning or try yet another magic prompt incantation to try and get it back on track. And that this is somehow progress. It feels like going back to pre-enlightenment times and collecting half-rationalized magic spells instead of having a solid theoretical framework that let's you reason about your systems.
- AnimalMuppet 1y agoWell... I'm torn here. There is a magic in understanding. There is a different magic in being able to use something that you don't understand. Libraries are an instance of this. (For that matter, so is driving a car.) The problem with LLMs is that you don't understand, and the stuff that it gives you that you don't understand isn't solid. (Yeah, not all libraries are solid, either. LLMs give you stuff that is less solid than that.) So LLMs give you a taste of the magic, but not much of the substance.
- _aavaa_ 1y ago> Luddite The luddites were not against progress or the technology itself. They were opposed to how it was used, for whose benefit, and for whose loss [0]. The AI-Luddite position isn’t ain’t AI, it’s (among other things anti mass copyright theft from creators to train something with the explicit goal of putting them out of a job, without compensation. All while producing an objectively inferior product but passing it off as a higher quality one. [0]: https://www.hachettebookgroup.com/titles/brian-merchant/blood-in-the-machine/9780316487740/ https://www.hachettebookgroup.com/titles/brian-merchant/bloo...
- throwawayk7h 1y agoPerhaps we're feeling too much pressure to pick an extreme stance. Can we firmly establish a middle-ground party? I feel like a lot of people here fit into a norm of "AI is very useful, but may upend many people's lives, and not currently suitable for every task" category. (There may be variations of course depending on how worried you are about FOOM.) We need a catchy name.
- tsumnia 1y agoSounds like me 20 years ago learning Java It's new tech. We're all "giraffes on roller skates" whenever we start something new. Find out where you can use in your life and use it. Where you can't or don't want to, don't. Try to not get deterred by analysis paralysis when there's something that doesn't make sense. In time, you'll get it.