My Stance on AI
Well, it’s about time I dusted off the figurative shelf that is my personal blog. And with it, comes a bit of a complaint as far as user feedback is concerned.
A few months ago I wrote a post over on LGC on how I managed to compress a 800+ MB game onto a CD. After deleting a few files that I deemed were unnecessary to have, I had consulted a LLM – in this case, Google Gemini – to explore further methods, since I was still over the 700 MB limit. A commenter quoted me on the Google Gemini part, and wrote this:
And it’s also where I stopped reading. This was an interesting idea, but you didn’t do it yourself, you asked an LLM to figure it out.
I know this is the Internet. But these sort of comments aggravate me. This isn’t really feedback. It’s just a random Joe out there expressing their frustration at me for using a LLM.
Believe Me, I Get It
I understand that AI has been met with a lot of controversy. It’s taken over people’s jobs. The Internet is littered with AI-generated artwork, music, GitHub repositories, YouTube commentaries, the whole nine yards. Some have resorted to it as a lazy man’s effort to do the work for them. It’s the reason why some projects reject AI-generated pull requests. AI is the reason why we’re in the RAMpocalypse.
That being said, AI can be useful in some ways, which I’ll get into. It’s not all bad.
What I Use it For
I look at it this way: LLMs have saved me a lot of time to do the things that I procrastinate with. For example, I don’t have the patience to sit down and learn how to code anything outside of Bash or Python. AI can do the coding for me, in just about any language that I want it to. If I want the performance benefits of C++, it can do that for me. If I want to have the performance while also having memory safety, it can do that for me in Rust. Kazeta+, KazetaDB, and InputPlumber GUI would not have existed had it not been for Gemini. If it weren’t for the Python script Gemini made for me to compress Mina the Hollower’s assets, I would never have been able to figure out how to keep the file size down so the game could fit on a CD. The Kazeta BIOS itself was made with Claude.
BattleShip – the unofficial PC port of Super Smash Bros. 64 – is another example of a project that would not exist without the use of AI. I had interviewed the developer, Jack Rickey, about this very matter. In it he shares the following:
Everyone is free to have their own perspective on AI. I believe that software should be free, open-source, and abundant. If something doesn’t exist and I want it to exist, then I’ll make it and use any tools available to me to do so.
And in case anyone thought he had no idea what he was doing, he continues:
For BattleShip specifically, a port of Smash 64 from a decomp had never been done before. All the architecture I had to make with data loading and processing had to be made from first principles, iterating for hours a day over the course of three months. The architecture is sound, the codebase is organized, there is no spaghetti code, and it was designed and bifurcated among modules to make it readable for other contributors.
He mentions that, despite the backlash from the vocal minority, the overall reception to BattleShip has been “great”, and those who initially dismissed the project started coming back once they realized the issues posted on GitHub were being addressed and fixed. In other words, they realized that even though the port was created through the assistance of AI, Jack knew what he was doing with the code, and where exactly in it he needed to address the issues.
To see some immediately get turned off by these projects, just because they see an “AI” or “LLM” or “vibe-coded” disclaimer somewhere in the README, is a bit frustrating.
What I Don’t Use it For
I can tell you what I don’t use AI for. I don’t use it in areas that I already have expertise in. For example, the READMEs in all of my GitHub repos are written by hand. All of the Wiki pages for Kazeta+, all of the patch notes for each new GitHub release, all of my posts here on The Outcaster’s Notebook, and all of my posts on LGC are written entirely by me. I will never use AI to write an article, or to write documentation, for me. To me, anyone that uses a LLM for that kind of stuff is, frankly, lazy. Not only that, but a person who reads the instructions from an AI-generated README and tries to follow them may come into problems, because the documentation isn’t always accurate.
Another area that I don’t use AI in is when I’m making my video tutorials. As introverted as I am, I push myself to get out of my comfort zone and actually use my mic to talk to the viewer. I don’t use AI to write the script for me, or to create an artificial voice that I could use in place of my own. I don’t use AI-generated thumbnails, pictures, or video sequences. Videos, scripts, and edits are entirely done by me, even if I might sound unenthusiastic or monotonous.
There Still Needs to be a Human
Several months ago, I wrote a post on what I did to improve the Kazeta experience with Kazeta+. Even though I do use AI for vibe-coding, I still have to pay careful attention to what the AI is feeding me:
There were definitely some infuriating moments working with the AI. Obviously, you can’t trust it word-for-word. Gemini might say to you, “Replace your existing logic with this:” and output some random code that it’s pulled out of its arse. Sometimes, it has no idea what it’s talking about if you aren’t specific enough with it, and if you try to run the code as-is, without commenting out your old block of code as a backup, you’re probably going to break your entire project. In some instances the AI will also stubbornly insist “This is the solution!” when clearly it is not. Doing a
rm Cargo.lockfollowed by re-building the project withcargo buildis not going to fix a dependency issue.
AI still needs a human overseeing it. You need to know what it’s doing. Otherwise, you’re going to end up in a mess of code, you have no idea what it’s doing, and you’re going to run into problems if you want to fix something. So, people going “Oh, this is AI-generated slop” – maybe, in some cases, it is. But if a person wants their software to actually work properly, they’re going to need to invest plenty of time testing the code and making sure that it works!
So, to wrap this up, my stance on AI is the following:
- I use it to write code for me, but the code still needs plenty of testing time on my part to make sure it works the way I want it to
- I don’t use it for content creation, writing, or documentation purposes
Cover image credit: zeeblo