While I'm in the middle of considering migrating this blog to a different CMS or even a static site generator, I was linked an article by a friend. You can go and read it yourself here, but I thought that it's a part of a greater pattern that I've noticed, so I figured that I might as well write up a quick post on it:
Basically, what happened was that some AI art (whether you need quotes around that or not is probably debatable, but I'm keeping it simple here) was used in the merch for the Terraria game and it almost immediately got a bunch of backlash. Eventually, the company not only delisted the shirt in question from the store, but also went ahead and refunded all of the purchases of it. There's also a Reddit thread that goes into more detail, but they also banned AI in contracts going forwards.
My immediate reaction as a software developer is along the lines of: "Huh, that seems like a pretty extreme reaction."
Frankly, the backlash feels a little bit puzzling, from where I stand. For example, look at the verbiage used in the Reddit thread:
Clearly, this is not acceptable - and while we have never instructed anyone to use AI for anything (nor would we), we also never explicitly banned it in things like contracts and the like. We just assumed it was an unwritten rule that everyone understood.
and
Our merch partner has updated external/freelance artist contracts to explicitly forbid the use of AI in product design to match those guidelines. This formalizes the previously unwritten rule. All past/current and future artists working with our partner will be required to sign this.
That's not just the company taking a stance, but many of the upvoted comments seem to show similar, very negative sentiments towards AI:
Especially because initially the developers didn't even notice that AI was used at all and seemingly didn't have an issue with what they were seeing back then:
This was reviewed - as all merch items are - before release and we missed it as well (so that’s on us and we sincerely apologize - clearly catching AI in pixel art is a skill we need to enhance)
If it looked good and was initially accepted as good, then why would the fact that it's made by AI suddenly become a problem? That's exactly what's so puzzling: as a software developer, if I see a bunch of code and it works (alongside concerns like readability and maintainability), then it's considered good. It doesn't matter if something was written by a developer, whether they did it in Notepad++ or an IDE, whether they had autocomplete like IntelliSense or even some AI assistant like GitHub Copilot. To take the point further, even if the code is generated from a DB schema or an OpenAPI specification. Actually, in many cases that might be preferable to someone writing everything manually, because if the specification changes the code can be easily regenerated again.
That sort of generation, using any tools available including AI based tools almost feels preferable, especially when dealing with any sort of boilerplate, or something that's already been solved dozens of times before and you just need to find the already existing solution. AI can save you some time or at least let you find what you need for your exact query, vs having to open the first 10 StackOverflow links and realize that none of them are exactly what you need and that you'll need to adapt the offered solutions there for what you're trying to do. Of course, you still need to check whether anything that the AI generates makes sense, so you still should understand all of it, or better yet, write tests - which you probably should have been doing in the first place, but it just feels like a tool to get things done more quickly and improve your productivity on common tasks and types of work (e.g. most of webdev) vs those that don't use them.
Saying that you're not supposed to use those tools would be a bit like the elitism of using Vim instead of a fully fledged IDE when the latter will give you all sorts of useful functionality for most enterprise projects. Don't get me wrong, Vim is great, but not when you adopt a cargo cult approach of arguing for it in the face of decent arguments (e.g. integration with frameworks, refactoring support, run profiles that can be shared across teams etc.), which you could mostly get done with Vim, but that would have a steeper learning curve and therefore slower onboarding vs most people just using one of the JetBrains IDEs or Visual Studio Code.
You could argue that you're not supposed to use these tools because they don't encourage you to learn everything, but at the same time they are exactly what might decrease the effort to get something done to a degree where you're no longer stuck in the zone of proximal development but can actually get things done without spending 2 days digging for resources online but instead letting AI tell you what's missing to make your side hustle work:
In software development, you often learn by doing and failure along the way is almost inevitable multiple times since something finally does work the way you want it to. I think every developer has been there, changing configuration from one setup that should work to another that should work, neither of them actually working, until discovering a third one that finally does the work. An AI that hallucinates something is functionally no different from copying stuff from StackOverflow: if you don't understand one you wouldn't understand the other and an AI hallucination isn't functionally that different from someone posting straight up wrong answers on the site.
AI making up APIs or methods that don't exist will be annoying and frustrating, but at least an AI won't close your legitimate question as a duplicated because they erroneously couldn't tell the difference, or someone solving the issue but not sharing their wisdom:
And, frankly, tools like Cursor or Aider feel like just an iteration upon tools like "create-react-project" with a different underlying technology and the exception that they can help you mostly correctly on a variety of different tasks.
What's more, a lot of the code that you write is based on stuff that others have written: from the kernel of the OS that you use, to language runtimes (e.g. JVM or CLR), to the libraries or frameworks that you might use to accomplish things (e.g. React and ASP.NET Core), as well as any number of integrations. Everything from formatting dates to making payments will probably be just gluing together bits of code that other people have written and often your job will be just making sure that it all fits together with your codebase, while a lot of it will probably come almost verbatim from any of the aforementioned sources.
While inflammatory, this sort of meme starts to make sense, when you accept that there's a bit of a disconnect going on:
At the same time, while it's funny to point out from the sidelines, it feels like we need a bit more context and empathy to talk about art, because in many ways it actually feels quite different from programming. What applies to programming doesn't feel like it applies to art and therefore the attitudes that might be valid here aren't valid over there.
When programming, writing the code and making sure that it works is just a part of the overall equation. Before that, you have requirements gathering and after that there's a bunch of configuration, testing, deployments and other day 2 concerns like monitoring and tracing, to figure out how to make the overall solution keep working and improve it in the future. Software developers aren't paid to just write code, as much as they are to manage a bunch of frustrating problems and find solutions, with code just making up a significant part of the overall equation. That's why, historically, a lot of the low code or no code platforms end up not quite measuring up, be it because of the Pareto principle or wanting the software to adopt to their workflows instead of vice versa - which leads to a lot of attempting to get a square peg into a round hole.
Art isn't quite like that. Sure, if you're making some art for a franchise, you need it to match the overall style and design, like how a certain character should look etc. but once you finish making an art piece, you're done. Sure, you might need a lot of various formats and sizes for it, similarly to how video games have higher quality assets for marketing and such and then have optimized versions of those assets to actually be used within a game engine, but if the problem someone wants to solve is not having some art to put on a t-shirt and their choices are between paying 5$ for some AI generation that will be done in minutes or 200$ to an artist, which will take time, it's not surprising that they'll choose the easier option.
What's more, the artists often feel like the rug has been pulled from underneath their feet, since those AI models that are used for generating art have been trained on a huge amount of input data, oftentimes taken without permission or care about intellectual property - because if there wasn't legislation regarding that, nobody really cared about the ethics of the matter, as long as they could productize the technology. It's basically someone taking something you've made and using it for their own needs, possibly in direct competition to what you're working on. It doesn't happen that much in software for a variety of reasons (good luck reading any of the code I've written), but it's surprisingly easy with art. Anyone can go on Civitai and have something to put on a t-shirt, poster, in a game, on a website or anywhere else.
This AI generated art often won't be ethical and often won't be as good (hands and anatomy are especially tricky for now) as something made by a qualified artist, but at the same time, it has a baseline of consistently being better of something that an unskilled person could make. For example, could I make something like this?
Or maybe this:
How many years of practice would I need to create something like this myself, from scratch, even with good digital tools and some references:
Sure, once you zoom in closer, things might fall apart, but if I was running an e-commerce shop, didn't care about ethical implications of any of this and just wanted to make some money, do you think there'd be a lot holding me back here? Plus, it didn't take days to create, just a bunch of powerful GPUs and a few good models, as well as refining the pieces and messing around with prompts a bunch. It's not super easy, but is way easier than me learning art for 5 years and still creating something that looks worse and cannot compete. Or rather, not compete for the price and the time it would take to create.
This is exactly why both artists and writers as well are now quite upset, because while the results of trying to replace them are quite mixed, this definitely puts their livelihoods at risk. We might end up with something similar to the situation around food, where many will just eat fast food because it's approachable, while a quality meal might be both more expensive and time consuming. The problem being that right now we have a lot of professional cooks that are suddenly about to go out of a job, because heating up an already prepared burger isn't something that they'll be employed for.
That said, why should someone pay me to create them a website, if they can just go to Squarespace to make something pretty damn good? Why should I develop or even self-host my own CMS, if I can just go on WordPress and have them do all of the heavy lifting for me, in exchange for some money? To take the argument a step further, why pay someone who lives in America >100K USD a year, if you can outsource to India and afford multiple developers there who are still good enough (even assuming cultural differences, time zones and possibly language barrier aspects) to sit in a chair and type out some Java?
Sure, as I said, there might be issues around the code itself, but those are gradually getting solved. The tools like Cursor or Aider, as well as JetBrains AI are likely to bring the skill floor down a bit. You won't need to be passionate about software development in the slightest to get things done and get paid for it. It doesn't matter that someone might not know all of the intricacies of how to setup TLS for their app, if AI throws a decent enough configuration at them from a prompt.
Not only that, but we already have a lot of cloud platforms, basically anything you can imagine: SaaS, IaaS, PaaS, basically even SaaSS - Service as a Software Substitute. I still remember a project where a developer was supposed to be the person who'd manage the configuration for the GlassFish application server... until we replaced it with embedded Tomcat as a part of a Spring Boot deployment and that person had nothing else to do in the project. Why pay a DBA if you use a managed database? Why pay a sysadmin if you just press buttons in a web interface that deploy your containers?
Skilled people might be useful to have to avoid occasionally messing up, but that's the thing - almost nobody wants excellence anymore. They want something that is good enough, because the chances of messing up are relatively low and the impact of doing so is rarely huge (plus, it can still happen regardless of what tools or approaches are used). If paying a developer costs 10x more than just taking an off the shelf e-commerce solution, many will rightfully choose the latter approach, even if it won't quite do what they want.
Similarly, those who don't use these AI tools or the best tools money can buy, whatever they might be, are putting themselves at a disadvantage. That's like me using a worse IDE because it's free, when the paid alternative will have features to save me an hour every day. Maybe not if I'd be doing something bleeding edge, but I reckon that the work that the majority of folks do (myself included) is quite run of the mill, just a variation of something that has been solved before, that needs to be adapted for a specific use case.
It's hard to say what the future holds.
Art surely won't disappear and will probably still stick around because it's a creative endeavor, but will be cheapened by these AI tools, in a sense becoming more liberal and available to everyone who doesn't mind the ethical qualms. I can tell you for a fact that there are AI models out there that already attempt to replicate the unique styles of specific artists - if you want more works in their style but they haven't put out anything new yet, you can go and make it happen yourself. Understandably, it will have a negative impact on them being able to earn money.
Something similar might happen to writers and any number of other industries. What's more, these tools might take over sneakily as well, like very few people will openly come out and hate on something like Grammarly even if the underlying tech is quite similar. I'm yet to see anyone organizing large scale protests against MS Edge adding a text editor that tries its best to autocomplete what you might want to say:
When you think about it, it's not that far off from also letting you summarize long documents or compose an e-mail for you:
And with how Apple Intelligence seems to becoming a thing, in addition to many computers starting to introduce chips for accelerating typical AI workloads, I don't think the technology itself is likely to disappear anytime soon, the backlash to make that happen simply isn't there.
I don't think programmers are immune either. We won't disappear either, but we're the most oblivious to the fact that we're at risk, since currently it's pretty smooth sailing: since we're paid to solve problems and usually nobody cares that much about how the code is written, only that it's there and works. Yet, the reasons why we're employed are a lot of engineering problems and it's likely that sooner or later at least a significant group of those will be resolved and automated away. The salaries might decrease and we might turn more blue collar, working at the widget factory.
In closing, it feels like these technologies could let us produce a bunch of value and make lots of things easier (see how many typos you spot in this post), but what's more likely is that people using them won't benefit much from many of them. The system just isn't set up that way. Artists just feel the most pain at the present moment.