Ask Slashdot: Have AI Coding Tools Killed the Joy of Programming? 87
Longtime Slashdot reader DaPhil writes: I taught myself to code at 12 years old in the 90s and I've always liked the back-and-forth with the runtime to achieve the right result. I recently got back from other roles to code again, and when starting a new project last year, I decided to give the new "AI assistants" a go.
My initial surprise at the quality and the speed you can achieve when using ChatGPT and/or Copilot when coding turned sour over the months, as I realized that all the joy I felt about trying to get the result I want -- slowly improving my code by (slowly) thinking, checking the results against the runtime, and finally achieving success -- is, well, gone. What I do now is type English sentences in increasingly desperate attempts to get ChatGPT to output what I want (or provide snippets to Copilot to get the right autocompletion), which -- as they are pretty much black boxes -- is frustrating and non-linear: it either "just works," or it doesn't. There is no measure of progress. In a way, having Copilot in the IDE was even worse, since it often disrupts my thinking when suggesting completions.
I've since disabled Copilot. Interestingly, I myself now feel somehow "disabled" without it in the IDE; however, the abstention has given me back the ability to sit back and think, and through that, the joy of programming. Still, it feels like I'm now somehow an ex-drug addict always on the verge of a relapse. I was wondering if any of you felt the same, or if I'm just... old.
My initial surprise at the quality and the speed you can achieve when using ChatGPT and/or Copilot when coding turned sour over the months, as I realized that all the joy I felt about trying to get the result I want -- slowly improving my code by (slowly) thinking, checking the results against the runtime, and finally achieving success -- is, well, gone. What I do now is type English sentences in increasingly desperate attempts to get ChatGPT to output what I want (or provide snippets to Copilot to get the right autocompletion), which -- as they are pretty much black boxes -- is frustrating and non-linear: it either "just works," or it doesn't. There is no measure of progress. In a way, having Copilot in the IDE was even worse, since it often disrupts my thinking when suggesting completions.
I've since disabled Copilot. Interestingly, I myself now feel somehow "disabled" without it in the IDE; however, the abstention has given me back the ability to sit back and think, and through that, the joy of programming. Still, it feels like I'm now somehow an ex-drug addict always on the verge of a relapse. I was wondering if any of you felt the same, or if I'm just... old.
The joy of programming is... (Score:5, Insightful)
...actually writing and debugging code, and having the time and resources to do it well.
Getting frustrated by undocumented and bizarre bugs in frameworks or libraries is not joy.
Cutting and pasting sample code into your project and accepting that it works poorly is not joy.
Trying to figure out how really old, bad, undocumented code works is not joy.
Being forced to ship buggy code because the manager insists on meeting a date is not joy.
It's hard to see how AI assistants can make it any worse
Re:The joy of programming is... (Score:5, Insightful)
Re: (Score:2)
Re: (Score:3)
Oh God is this true!!! I have been struggling to find that love again, but, I fear the 25 years in the industry battling all of the above has killed it.
You nailed it buddy
Re: (Score:2)
I recovered my passion by a back to the roots personal project. Learn Verilog, design a simple 16bit RISC CPU (16 bits makes it challenging to fit all you want into the instruction space) and design an assembler for it. Simulate in iverilog and Then use a FPGA to debug and test. With my small FPGA I have 16 bits of IO and this is enough info to debug the entire tool chain. Very challenging, very interesting.
Build a VGA card and start writing assembly things to test it. Building your own computer from Silico
Re: (Score:3, Interesting)
Getting frustrated by undocumented and bizarre bugs in frameworks or libraries is not joy
Figuring out these bugs and how to get around them can be. And, if it happens to be Open Source, fixing them for others can be.
Cutting and pasting sample code into your project and accepting that it works poorly is not joy
Agreed. So don't do that. Write it yourself.
Trying to figure out how really old, bad, undocumented code works is not joy.
I dunno, maybe it's just me, but I actually get a hoot out of it. And, y'know, sometimes that old, bad, undocumented code has some truths in it that I didn't know or think about.
Being forced to ship buggy code because the manager insists on meeting a date is not joy
Agreed, but I also enjoy getting a paycheck.
Re: (Score:2)
Agreed, but I also enjoy getting a paycheck.
I blame it on my housing, transportation, and culinary addiction.
Re: (Score:2)
Yes! Some of the most frustrating and ultimately rewarding work has been decoding programs, whether from machine language or sources, to figure out what they do, what they were supposed to do, and the simplest and least disruptive ways to fix them. There's real satisfaction in finding a bug in two hours that a team of your "betters" couldn't find in two weeks.
Re: The joy of programming is... (Score:3)
I actually enjoy most of what you wrote above. Learning. Making sense of things. Putting things right. Massive joy.
removed due to decades of lameness (Score:2)
The programming practice has been drifting towards lameness in spurts from the 1990s.
- Mainstream programming languages evolving by just collecting any cool feature from other languages for 20 years.
- Needing frameworks after frameworks built on tens of thousands of packages of uncertain quality and uncertain long term viability
- Using scripting languages for ever larger systems (JavaScript)
- Reducing software tools, dev tools, production software, platforms, and cloud resource production lifespans from 5+
Re: (Score:2)
Adding a couple more
- Having entry level developers coming in the door less motivated, less skilled, less open to learn, less adaptable and less able to concentrate
- Having less and less time and budget to produce solutions and maintain existing ones
Re: (Score:2)
To add:”I studies. Haines of history and attended a bootca p in Rails” does not qualify you as “entry level” been there, done that.
Re: (Score:2)
As someone still on the outside (Score:3)
Thanks for the insight.
The whole sign-up process put me off from trying it out in the first place. I had wondered how the chatbot interaction went when actually using it for coding.
Re: (Score:3)
And yes, I do enjoy programming as a hobby. So am not too interested in AI anyway.
Programming will soon be an obsolete skill (Score:3, Insightful)
Right now "programming" (such as it is) only still exists as a profession because as programmers we're the only folks who can really sanity check the AI's output, improve it where needed and/or know how to refine the input we give to the AI to get the desired code as output. Or do create code on our own when absolutely necessary because the AI just doesn't produce what is needed. But over time as we use AI more and more to create more and more of the code that we used to create ourselves, are our skills going to diminish to the point where we are totally reliant on the AI and are screwed when it doesn't work correctly? What about in a generation or two from now where the only "programmers" never really have any experience in actual programming?
Re:Programming will soon be an obsolete skill (Score:4, Insightful)
That is really nonsense. AI can only create simple code. Not all coding problems are simple. Sure, if you do nothing but simplistic "business logic", AI and then checking the results may do it. But personally, that is maybe 10% of all coding I have ever done. And for more advanced stull, AI does not cut it and you do not either if you relied in AI for the simple things.
Re: Programming will soon be an obsolete skill (Score:1)
Re: (Score:2, Insightful)
And for the foreseeable future. Do not believe the lies of people that want to sell you something...
Re: (Score:2)
No (Score:4, Interesting)
AI tools are just an attempt to circumvent copyright while also benefiting from copyright
Re: (Score:1)
What certifications can't you afford on a programmer salary?
It makes for a reasonable auto-complete (Score:4, Interesting)
Real programmers (Score:1)
Re: (Score:3)
As long as you do not insist on perfection (syntax checking is the task of the compiler), any programmer should be able to write reasonable code on a whiteboard.
Re: (Score:3)
My professor for C made us evaluate code on paper for our midterm and final, and for homework assignments I wrote code with a green terminal and compiled, linked it, and ran it from the command line. This was all pre-search engines. I remember another attitude from the time period, which was "if it was hard to write, it should be hard to understand", but I digress...
With that said, many years later I worked under an engineering lead that took the "real programmers only use text editors" attitude to an ext
Re: (Score:2)
I remember another attitude from the time period, which was "if it was hard to write, it should be hard to understand",
I heard that before, but I always thought it was a joke.
Re: (Score:2)
Real programmers only use text editors. I've interviewed a number of candidates who cannot write code on a whiteboard because it doesn't have google. Sorry but that's a fail.
This is interesting to me. There are languages where I'm used to text editors and having even context popups is annoying and gets in my way.
There are others where I get cranky when the auto complete in the IDE stops working because then I have to switch and lookup definitions given I've never bothered / had the need to remember shit.
Seems people will get used to anything and it isn't apparent to me which is ultimately more productive. Even things it is hard to understand how anyone could possibly find fau
Re:Real programmers (Score:4, Insightful)
Re: (Score:2)
You must craft requests that demonstrate you understand the problem extremely well and have a clear path to the solution. If, and only if, you can do this, can you get really high quality code from ChatGPT
That's all well and good until the sodding thing starts hallucinating API calls which don't exist. I love it when that happens.
That's why we demand truck drivers be good runners (Score:3, Interesting)
Real programmers only use text editors. I've interviewed a number of candidates who cannot write code on a whiteboard because it doesn't have google. Sorry but that's a fail.
It's the same reason that when you interview a truck driver, you ask him what his time was on the last marathon he ran. If we're going to hire a truck driver, we need to ensure he can do the job without his truck, right? Similarlyt's important to memorize every API and only use a text editor because when you're actually working you'll never have access to an IDE, linter, compiler, or Google, right?
Well you're smug in your satisfaction and I am sure in your mind, memorizing every API makes you more eff
Re: (Score:2)
In my last project I realized that real programmers use Logic Analyzers and program in Verilog!
Re: (Score:2)
In my last project I realized that real programmers use Logic Analyzers and program in Verilog!
Real programmers in the era when user interfaces were selectively illuminated pushbuttons and the lamps were tungsten filament, construct a test scenario and measurements to determine that device crashes were caused not by defective code as one rancid walkaround manager insisted, but rather by crosstalk from the initial current spike into a cold tungsten filament (physics) alongside inductive coupling from wiring harness construction (more physics).
Real programmers cut a contended signal trace under a micro
No, but I empathize. (Score:5, Interesting)
For example, I used to carefully name all my variables. Now it's almost pointless because the AI will overwrite my variable names and its suggestions aren't that bad. However, if I really wanted to customize variable names I could just tell it and do.
It does change coding from a slower iterative process to a more frenetic iteration mode.
But personally I don't see it as it "'just works', or it doesn't" because a lot of times it doesn't work and a series of iterations via the AI get it to the working condition. It's just faster to do it that way than from scratch. Also often the AI will use some method and I just tell it to use another method or to refactor in a certain way and it does. That said, custom coding can have advantages too.
I doubt it really has to do with being old, and the younger programmers might be worse off, as they may be more relying on the AI without the years of expereince that lets them comprehend what the AI is doing.
Young whippersnappers (Score:3)
I learned to code in the late 70s in straight hex (microcomputers were too small back then to come with compilers at 4K our system was expansive for the rime).
For us old timers, a lot of the joy was in knowing I did this myself. Even library subroutines reduce that, though they are unavoidable on modern systems. Nothing truly wrong with assistants or library references for something you can't do yourself.
Of course, a professional coder who needs to get a project done on time, that's different. Those of us who code for the pleasure of it are a dying breed.
Re: (Score:2)
I learned to code in the late 70s in straight hex (microcomputers were too small back then to come with compilers at 4K our system was expansive for the rime).
Straight hex? Luxury! [youtube.com] I had to flip switches on the front of the mainframe!
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
You could stick you head around and loo, at the switches! My mainframe was almost flush against the wall and I had to stick my hands in and toggle the switches by feel!
No (Score:2)
Because I enjoy result of programming, not the act of programming.
Re: (Score:2, Insightful)
A part of me doesn't believe you, but if what you say is true, that's sad. When you say "the result", are you referring to the paycheck? Because that would be ultra sad.
Re: (Score:2)
I meant the end product of my efforts. I enjoy the problem solving aspect, but the end result is the important bit. But so what if it's the paycheck?
Re: (Score:3, Insightful)
Ultimately it's your life and you live it how you want. I really am not one to tell anyone else how to live their life. If the paycheck is what makes you happy, but you don't enjoy what you do for a living, yet continue to do it, then kudos to you. I know I couldn't do it. But you confirmed what I suspected when you said "I enjoy the problem solving aspect" which is at odds with what you wrote in your original post "Because I enjoy result of programming, not the act of programming". The act of programm
Re: (Score:3)
The term problem solving is very broad. When I read this article and I hear about programmers who hate AI as a tool because it "takes away the joy of programming" I think of mathematicians who love doing math for the sake of doing math. The answer isn't really important to them. Basically algorithm nerds.....the people who write leetcode problems.
But my problem solving is more about figuring out practical problems. Like can I automate this process? So to that end, if I used an AI to produce all of the
Is AI writing click-bait headlines for lazy... (Score:2)
Are Human Coders Doomed in the Age of AI Programming?
Will AI Replace Developers by 2030?
Is ChatGPT the Beginning of the End for Software Engineers?
Do AI Coding Assistants Know Your Job Better Than You Do?
Should We Be Scared of AI That Writes Better Code Than Us?
Can AI Really Fix Every Bug—Or Is It Just Hype?
Are Traditional Coding Skills Now Obsolete Thanks to AI?
Will AI-Powered Tools Turn Everyone Into a Software Genius?
Is This the Death Knell for Learning Programming Language
Re: (Score:2)
Re: Is AI writing click-bait headlines for lazy... (Score:2)
I figured that there has to some sort of "law" (akin to Godwin's or Moore's, not an actual law obvs) that the answer to any question in a headline must be "no".
Voila: Betteridge's law of headlines
https://en.m.wikipedia.org/wik... [wikipedia.org]
I feel like today has regained some purpose.
Re: (Score:2)
Don't worry, soon AI will replace "journalists" then we'll have AI writing stories:
"Will next gen AI replace previous gen AI?" /s
feel free to enjoy coding on your own time (Score:2)
But also realize when you're at work you're going to deliver results. And you won't necessarily love everything about what you are paid to work on. You might not like the technical decisions. Or the priorities that management has pushed onto you. Or the way you have to do it. Or who you have to work with. Or the coding style your coworkers decided you must use. But at the end of the day you do the work, get things done, and deliver on time. Only to repeat the cycle every release. That's the job. Maybe you w
false sense of economy (Score:3)
The Gen AI pundits yell "Developers will be 10x faster using our widget!"
Rushed code, that a developer doesn't understand is a formula for disaster. Sure, repetitive tasks and finishing out a code section that's short is easy enough to comprehend but asking an AI "Copilot" tool to generate a block of code and then not being sure if that code actually works or not doesn't teach or improve the skills of the developer.
If you code can be generated by AI... (Score:3, Insightful)
You're probably not doing anything interesting anyways.
Makes sense... (Score:2)
I haven't tried out the tools like copilot, but that was my assumption. That they didn't offer ways to understand or verify what they spit out at you... they just gave you code, like a coworker throwing it over the wall for you to figure out and fix all by yourself.
Recognizing that at least part of your previous joy is gone was good/important. Time for more self reflection I think... to better understand how you enjoyed the work before, and to see if you can still get support or help from something like
It is supposed to be a supplement, not replacement (Score:1)
Re: (Score:1)
I can easily understand how it can turn into this. However, in this case, I think the tool is being used wrong. For example -- let's say you write blogs. If you only use AI to write blogs, then eventually you're probably not going to be a fan of writing anymore. And, your blogs are going to turn into garbage on a long enough timeline, as you can no longer discern what is garbage or not.
Additionally, I don't really think it's all that amazing -- there's plenty of s
Re: (Score:1)
Re: (Score:1)
Fixing other's buggy code is not joyful ... (Score:1)
Re: (Score:2)
Especially since AI is not going to help you to debug it.
It's kind of like working with a maniac programmer who quits the company and you have to figure out what the hell he was thinking when he wrote that.
Been there. Done that. And it can be fun, as long as people aren't breathing down your neck.
I disable it (Score:2)
I found the AI suggestions were wrong more than they were right and having them pop up was so distracting they slowed me down on balance. Maybe I'll try again in a year.
Has * killed the joy of doing it yourself? (Score:2)
AI coding vs. programming, mass electronics manufacturing vs. hobby electronics, LLM translators vs. learning a language, industrial scale agriculture vs. gardening...
No. Worst case it gives you a sense of accomplishment, best case you find a niche to specialize in and earn big bucks because barely anyone / anything else can what you can (cue the COBOL programmers). And then there is the whole 'build upon shoulders of giants' thing if you're really good, where you can do the fine-tuning and leave all the bo
Exactly right (Score:2)
You are right, and it's clear if you look at the bigger picture. Coding is obviously fun, and traditionally companies have offered money and the fun experience of coding in return for a useful product. That fun was part of the reason why software projects work decently well.
But there's no real reason for fun to be a prerequisite for a person to create good programs. If corporations can automate a sufficient critical mass of the task of programming away to machines, then it becomes more of a rote janitorial
The opposite (Score:2)
I'm enjoying programming far more using it than I was without it, particularly at the application layer (versus system/firmware where I normally inhabit). It can generate a lot of tedious boilerplate/framework code quickly, and while it rarely gets it exactly right, it gets close enough that I can quickly fix it and focus on what I set out to write.
I never turn on the features that let it suggest code or change my code, they're slow and often annoying. I ask it questions, it gives me answers. I copy/paste i
Umm no it hasnt (Score:3)
The joy always came from laboring and then the dopamine fix from seeing the end result. At least for me. That's totally possible with AI too .. the scale of what you can produce is increased especially if you know what you're doing.
Advanced tooling doesn't kill the joy (Score:4, Insightful)
People still enjoy woodworking, even though new tools have been introduced that make many tasks much simpler. Some people may like using their hands more and choose to eschew the modern tools. Others prefer using the modern tools. Both classes of people exist in the software development world as well. Some prefer the lower level languages. And some prefer the highest.
AI perhaps is currently the highest level interface for software development. On the opposite end you have assembly language. Both have pros and cons. There is no one tool or a solution that is a best fit for all developers and will bring them joy.
I have been developing software for over 30 years. I now use modern AI tools every day. And I don't think I have ever enjoyed programming more than I do now. I no longer have to worry about minutia. At that same time I recognize that some people enjoy that sort of thing.
The Zen of Coding (Score:2)
I'm using it for code review (Score:2)
Advait Sarkar (in CACM) noticed how bad LLMs are at anything creative, and instead suggested we use them for things they’re good at , predicting what humans would say. Especially if they are asked what a critic would say.
And it sort of works!
Rest of the article: https://leaflessca.wordpress.c... [wordpress.com]
The fun is solving puzzles (Score:2)
I learned to program on some funky decimal machines (IBM 1620, Univac SS 90) in machine language, CDC 6400 assembler, graduated to 8 bit assembler, M68K assembler, then C, a bunch of Java, Perl, and who knows what. The farther it got from machine code, the more the fun changed. That Univac SS 90 had a drum for main memory, and 1+1 addressing where every instruction included the address of the next instruction, and optimization could make it hum. The CDC 6400 had all sorts of different kinds of optimizati
Re: (Score:2)
Dusted off the compiler today and went to chatgpt (Score:1)
Programming is no longer programming (Score:2)
Re: (Score:2)
I like to think of myself as archmage, i.e. the one class that actually understands what they are doing. I get that there cannot be many of us.
No Joy in or with AI built code (Score:2)
I got to try several of the AI tools. Can they make code? Sure. Does their code sometimes have mistakes in it? Also Yes.
How does one go about finding the mistake, given they didn't write the code? That's painfully tedious. If someone else wrote the code, they might be able to explain.
I've had colleagues use the AI tools to make unit tests. They can do this too. Funny thing is, their unit tests never seem to find the bugs that the unit tests will detect if a human sits down and writes them by hand.
Programming joy has been decreasing for a while (Score:2)
For me, the turning point in the enshittification of the software industry was when HTML plus JavaScript became the de facto development environment.
Not only is it a stupid, artificial and constrained environment, but it was never really designed... it just accreted ideas as people shoved more and more things into it.
I started programming in 1982 and I started my professional software development career in 1990. I retired in 2023 and have absolutely no desire to get back into the industry.
I still, howev
No it hasn't. (Score:2)
I've been coding for 30+ years. I lost the joy of programming 15+ years ago fighting the ongoing battle of shitty documentation. AI has actually made things better because often the answer that isn't in the documentation is in the AI.
As a grizzled veteran... Not yet (Score:2)
I've been using a couple of different AIs integrated with various IDEs for about the past year.
They all, to a T, suck for actual solutions. Yes, they scarily generate code that has my style and naming conventions but for anything more than the most basic/common requests you get AI Hallucinations (a major failing in AI generation that they have to actually NAME IT and hold seminars on how to "fix" it... har har, It's not a bug, it's a feature!).
On the flip side, there's 2 areas where it's actually helped me
This all comes down to one thing (Score:2)
AI is your new pair-programmer (Score:2)
What I do now is type English sentences in increasingly desperate attempts to get ChatGPT to output what I want
That reminds me a lot of "pair programming", which I also hated... there's nothing more frustrating than having to sit on your hands while your junior co-worker laboriously bumbles his way through all the issues and gotchas that you figured out years ago, and the bits-per-second limitation of human speech become more and more apparent as you try to help them.
No, but AI proselytizing idiots have! (Score:2)
MS CoPilot was the worst. I asked it write m
Dumpster fire (Score:2)
We are only allowed to use Copilot at work. Itâ(TM)s a dumpster fire. The unit tests it writes are so naive they might as well just be âoeassert trueâ. Most of the time I have the line of code written before it suggests something. Half the time what it suggests is wrong. It gets in the way more than it helps.
A coworker tried ChatGPT on his home laptop for a problem we were working on. It had the right approach but didnâ(TM)t understand the data so it wouldnâ(TM)t work but at least i
Need to upgrade (Score:2)
the joy I felt about trying to get the result I want -- slowly improving my code by (slowly) thinking, checking the results against the runtime, and finally achieving success -- is, well, gone.
This isn't entirely how it should be. You should upgrade your skills.
Go to Leetcode and solve one problem a week (or one problem a day, whatever just do it consistently and regularly). Pretty soon the code will just flow from your fingers and you'll be more comfortable programming than a recent CS grad. It won't take long. And that's when it really gets fun.
AI is indispensible (Score:2)
Having been a software engineer since the 80s (I'm retired), now I build little robots for fun.
The amount of time I now spend trying to figure out a quirk in the IDE, complicated syntax or missing library documentation has dropped to a small fraction of what it was before the internet and especially in the last few years.
I've asked for code to test out a sensor or algorithm and many times it just works. It's not perfect but if you know how to write software but just don't have the experience for a specific
Errrmm, ... No?! (Score:2)
AI has no direct impact on my joy at programming. It has a solid impact on the economic viability of coding for money and that may kill part of it's joy, but that isn't the large part of the joy. If you're only in it for the money, you were doing the wrong job to begin with.
The joy is in being an architect. (Score:1)
AI has enabled me to design and code as I know I *should*, but often *don't* because of lack of time. Being forced to do something that I should not is the opposite of joy for me.
Take for example Test Driven Development. It takes quite some effort to write the tests and maintain them. So most of the time
Another layer. (Score:2)
LLMs look to me like just another layer of abstraction, another compiler that outputs code to be compiled. Prompts, framework, libraries, code, binary.
But this time it's non-deterministic and unpredictable. Imagine writing a program in C and then having to check the correctness of the binary (as machine code, not the functionality) after every compilation. And every compilation would yield a different binary for the same code. It's silly.
Best case scenario, using LLMs as a glorified search engine. But with