It's probably fine—unless you care about self-improvement or taking pride in your work.
To be clear, when I write "using AI generated code" in this opinion, I'm referring to letting an AI write code for you—I'm not addressing the use of AI as a learning tool to gain better insight into programming languages and libraries in order to improve the code that you write yourself. (I have opinions on that too.) But if you ever use these tools by writing descriptive method names or comments indicating vague functionality, then allowing an AI to fill in the code, or if you're relying on an AI to learn and understand your own codebase so you don't have to, then I'm writing this at for you.
Reasons to Not Use AI Generated Code
You Rob Yourself of Learning Opportunities
In the early days of the internet, the pejorative "script kiddie" was coined for people who "hack" computer systems without understanding what they're doing or how they're accomplishing it. It's someone who downloads a tool or script that promises to crack a password, access someone else's computer, deface a website, or achieve some other nefarious purpose. Assuming the scripts work as advertised, the kiddies who run them fancy themselves real hackers.
You may think it's a stretch comparing developers who use AI generated code to script kiddies using pre-written hacking tools. I don't.
Serial script kiddies want to be big boy hackers, but they'll never accomplish that by running scripts. The real big boy hackers are the ones writing those scripts—the ones exploring, probing, and truly understanding the vulnerabilities being exploited. Serial AI coders may want to be big boy developers, but by letting predictive text engines write code for them they're hurting the chances of that ever happening. At least for now, the real big boy developers are the ones writing code that those predictive text engines are training on.
It seems self-evident that you can't improve at something without actually doing that thing. You won't improve at chess by not playing games. You won't become a better hockey player by sitting on the bench. You can't learn to play the piano by listening to your mom's Yanni albums—at some point you gotta play yourself. Obviously your skills as a developer will never progress if you don't write code.
Skills You Already Have May Atrophy
But what if you're already comfortable with your skill as a programmer? What if you just want AI to do the boring stuff?—Scaffold a new project, write a factorial
or mergeSort
function (why do people love getting AIs to write factorial and merge sort functions so much?), generate boilerplate—you know, the mundane tasks.
Maybe you think that's fine. After all, senior developers have been delegating tedium to juniors long before LLMs were a twinkle in Sam Altman's eye. What's the difference?
Firstly, junior programmers need more direction than an AI tool, and may also come to you for answers or advice. Helping them gives you the opportunity to reinforce your own skills, as well as develop new ones (mentoring, communication, how to grin and act pleasant despite your ever-mounting irritation and impatience).
Secondly, it's a basic fact in software development (and life in general) that if you don't do something for long enough, you're going to forget how to do it. If you've been in the industry a while, think back to the first programming language you learned. For me that was Pascal. I don't think I could write a single line in Pascal today that would be syntactically valid, let alone accomplish anything meaningful. Another exercise: Try programming for a day without syntax highlighting or auto-completion, and experience how pathetic you feel without them. If you're like me, you'll discover that those "assistants" have sapped much of your knowledge by eliminating the need to memorize even embarrassingly simple tasks. Imagine how pathetic you'd become if AI removed your need to write code entirely. If you stop writing your own code—even the boring bits—you're going to get rusty. You'll forget things. Coding the interesting bits will become harder for you because you'll lose the foundation that those more advanced skills are built upon.
Imagine an exercise equipment manufacturer releases a new "Artificial Strenth" product tomorrow, promising that you can "level up" your lifting and "crush your next workout" with their amazing new Exercise Assistant—a robot that lifts the weights for you. If you started relying on that product, what do you think would happen to your max bench over time? What will coding assistants do to your ability to write and reason about code over time?
You May Become Dependent on Your Own Eventual Replacement
Many of the AI coding assistants on the market (at the time I'm writing this) offer their products for free to students. You might think that's sweet of them—bless their kind hearts for taking it easy on those poor, financially-burdened kids. Wrong. If there's any time in a software developer's life when they should absolutely not be taking shortcuts, it's when they're first learning the ropes.
This is straight-up predatory behavior. Like religious cults indoctrinating straight out of the womb to ensure a constant influx of new members, the AI companies know that getting developers hooked before they've cracked open their first text editor guarantees a lifetime of recurring subscription revenue. I'm sure they see the writing on the wall when it comes to entrenched greybeards like me, who write absurdly long rants and draw silly comics about how much we loathe AI and the companies that shill it; so instead they look to future generations of developers, likely envisioning an army of AI-dependent code kiddies who couldn't echo "Hello World" without a lengthy chat session in which they instruct a bot to do it for them.
Earlier in this article I intimated that many of us are already dependent on our fancy development environments—syntax highlighting, auto-completion, code analysis, automatic refactoring. You might be wondering how AI differs from those. The answer is pretty easy: The former are tools with the ultimate goal of helping you to be more efficient and write better code; the latter is a tool with the ultimate goal of completely replacing you. AI tools aren't being aggressively marketed and eagerly received by our corporate overlords because they believe it will transform their employees into high-earning senior-level developers. No, they're drooling in anticipation because they see a future in which their high-earning senior-level developers have all been replaced by cheaper, entry-level, AI-fueled code kiddies. Or, better yet, replaced by AI entirely, once enough of us have shelled out subscription fees for the privilege of training those AIs to the point where we're no longer needed at all.
Brief Aside: Do You Even Own AI Generated Code?
I'm no lawyer, nor do I play one on TV, but I do subscribe to Hello Future Me on Nebula and have the distinct impression that there is, to put it mildly, some legal ambiguity around ownership when it comes to AI generated works. Right now the conversation is primarily around artistic works, but there's no reason to think it doesn't apply to code too. (Also, if you're a weirdo like me, you enjoy programming as a form of artistic expression anyways.)
If you generate a function with an AI that had LGPL-licensed code in its training data, must that generated function now also fall under the LGPL? Maybe you don't care about the LGPL because it has no teeth, but what if the training data included a non-free repo from an obscenely wealthy and litigious corporation with their own private army of highly-paid lawyers? What if they could prove you used that AI when building your competing product that's gotten a little too successful for its own good?
I honestly don't know the answers to these questions, but I also don't want to be the one footing the legal bills when it's time for the courts to answer them. Do you?
Your Code Will Not Be Respected
It's not correct to say that AI generated code will necessarily be bad. While that may be true to varying degrees given the tools available today, it's clear that this technology is here to stay and it's only going to improve.
What I can say with some certainty is that, if you use these tools, nobody outside of other AI code kiddies are likely to be impressed with you as a programmer. There is an art to software development—constructing a coherent and tight code base, coming up with elegant solutions to hard problems, and earning the respect of your peers should be sources of pride and joy for every programmer. Would you rather celebrate your own accomplishments, or those of the predictive text engine generating code for you? Perhaps I'm being silly; maybe this way of experiencing the process of programming puts me in the minority, like an old fuddy duddy complaining about how Batman doesn't dance anymore, but this is honestly the main reason why I personally will never integrate code-generating AIs into my development environment—even if that eventually makes me unemployable.
I don't want to commission some art and pretend to be the artist. I want to be the artist.
I understand the laundry scheduling application you're writing for the hospitality industry or whatever your day job is may never be on Fabien Sanglard's short-list for a deep dive into the elegance of your code, but is that really such a bad thing to aspire to? Doesn't taking pride in your work make it more enjoyable? How can you respect your own code or expect anyone else to respect it if you didn't even write it?
Reasons to Use AI Generated Code
You Are a Masochist Who Prefers Code Reviews to Coding
I was wrong earlier. This is the main reason why I will personally never integrate AI into my development environment. I love to write code. I very much do not love to read, review, and generate feedback on other people's code. I understand it's a good skill to develop and can be instrumental in helping to shape less experienced colleagues into more productive collaborators, but I still hate it.
The more code you let AI generate for you, the more you're shifting your job from coder to code reviewer. I dunno, maybe that's your jam. Some people are into the kinky shit—I won't judge.
You Don't Actually Want to be a Programmer
If you're someone who has no actual interest in learning to code, and instead see AI as more of a freelancer—telling it stuff like "make a kart racer game," and "that sucks, make it better"—then none of this really applies to you.
Truly, I believe this is the future that giant corporations are frothing at the mouth for. A world where their walled-garden ecosystems control not only the means of app distribution, but the means of app production as well. Got an idea for a new app? Just tell the App Store's AI what you want and it will excrete it straight onto your device, allowing big corpo to pocket a cool 100% of the subscription fees you and everyone else pony up for their new app—far preferable to the 30% that was their cut in the before-times, when those pesky app-developer middlemen kept insisting they provided some kind of value to the process.
Which brings me to my final reason you might want to use AI generated code.
You Believe We have Entered a New Post-Work Era, and Trust the Corporations to Shepherd Us Into It
In the unlikely event that you're already that deep into the Kool-Aid and you didn't bail on this article after the first couple paragraphs, then I don't really have much else to say to you. I'd recommend you go read Nineteen-Eighty-Four, Farenheit 451, or Snow Crash—you'll probably enjoy their visions of the future and gain something to look forward to.
To everyone else, thanks for reading. I'll undoubtedly have future opinionated rants and silly doodles about AI to share here (that's why I registered the domain), but for now there's no kind of schedule so don't hold your breath—instead maybe get an AI to hold its breath for you.