Using AI

I recently added a new page to the site about the CMS I developed, RamaSite.

AI coding screen

"I developed" sure misexplains what I actually did. I used Claude Code to create a CMS in PHP using the Laravel and Filament frameworks. What it doesn't mean is that I wrote the code myself. In fact, it doesn't mean that I wrote any of the code because...I didn't. What I did was spin up Claude Code inside VSCodium, and started telling it what I wanted to do. When I made it clear what I wanted, Claude Code wrote the actual PHP. It also did my GitHub setup for me. It did all the commits and versioning. It also wrote all the documentation (though I did manually take the screenshots).

Now, I started programming when I was 16 years old. Back in 1980, my dad brought home a TRS-80 Model I, one of the first personal computers available for home use. It had 16k of memory, and saving or loading programs was done via a cassette recorder used as a tape drive. I started programming in BASIC on that machine.

Many years later, I've programmed full time as a software developer for both Windows Desktop and web software. I've used Visual Basic/VBA, C#, PHP, JavaScript, and more. I've built WordPress customizations in PHP. I've created a full accounting system with SQL Server as the back-end and Windows desktop apps and web page front ends. I've used ColdFusion and MySQL as back-end databases for web front ends. I've programmed in RPG and COBOL, using punch cards for an IBM System/360. I've used a DEC PDP-11/34, using timesharing from dumb terminals. I've worked on Sun Solaris, Windows, Mac, and Linux PCs.

Basically, I've been at this for a long time.

For all that time, I was essentially an artisan. I lovingly crafted every line of code. I debugged it all. It was time-consuming, sometimes quite difficult, and often very tedious. But I could say that I did it. I did all of it.

RamaSite Logo

What I did with RamaSite was different. I wasn't an artisan. Craftsmanship doesn't seem to be what software development is in the age of AI. You aren't an artisan. With AI, you're an architect. Architects don't dig trenches and pour concrete for footings. They don't hammer up the frame, or spackle the drywall on the ceiling. They design the system in terms a general contractor can use to do all that work. Ideally, the resulting building faithfully replicates the architect's design.

When "programming" RamaSite, my job was to specify how I wanted pages to look. How images and files would be stored. How pages and posts would be authored. I had to define the settings needed to create site menus, or how different posts should be associated with different blogs (yes, RamaSite enables you to run multiple blogs on the same web site). My time was spent explaining what I wanted to be built, testing what Claude was building, seeing things that didn't work the way I wanted, and detailing what needed to be fixed.

The thing is, I don't think I could've done this without a lot of expertise in software development. I knew that I wanted to use SQLite as the back-end database, because I didn't want to worry about external database connections. I knew to use PHP, because most shared hosting runs Apache/cPanel with PHP as the default programming language, rather than nginx or node.js. I knew I wanted to use Laravel and Filament to use the existing frameworks to simplify the development. When things went wrong, or something didn't display the way I wanted, I knew what the problem was, and how to tell Claude to fix it.

If I was just the average bear, could I have vibe-coded this without knowing what I was doing? I dunno. I probably wouldn't have known where to start, or how to tell Claude to fix things that didn't work the way I wanted them to.

I run into something quite a lot when I use AI. If I start researching a topic I know about, I often find the AI telling me stuff that just...isn't true. The AI companies call that "hallucination", but it isn't really. It's just the Large Language Model sticking together words in a way that seems statistically probable. It's not that the AI is hallucinating or making things up, it's a simple matter of probability falling the wrong way, resulting in text that simply isn't true.

For instance, I've used AI to evaluate and suggest improvements for my Destiny 2 character build. Different AIs have had varying success in doing this. Gemini is too much a slave to its training data, giving answers about game metas that haven't been true for years. It says to use mods that no longer exist, or make changes to armor that don't model the current system of armor or weapons. I have to constantly correct it. Claude is also pretty "meh" at this task. Grok, on the other hand, does a far better job. Because it's biased towards web and social media searches, it's much more aware of the current meta, armor, and weapons systems used in the current game.

I've come to the conclusion that, if you're a domain expert, AI can be an amazing, half-genius, half-moron personal assistant. You can correct it, make it get back on track, and continue. But when you don't have expertise, I think it's at least slightly dangerous, if not actively harmful. At the end of the day, you never know if what the AI is telling you is true. If you don't have the expertise to recognize when it's gone off the rails, you have no way to know that it's given you information you can't trust.

It reminds me of the Gell-Mann Effect:

The Gell-Mann Effect, also called the Gell-Mann Amnesia Effect describes the phenomenon of an expert believing news articles on topics outside of their field of expertise even after acknowledging that articles written in the same publication that are within the expert's field of expertise are error-ridden and full of misunderstanding.

Back around 2005, I hand coded an ASP.NET CMS that I called .Blog (dot-blog). From start to finish, it took me about 4 months to get a stable version of it running, and another 2 months to add additional useful features that I wanted. I used it as the CMS that ran the Q and O blog for several years, until we shut it down.

RamaSite took a total of about 40 hours to get a stable version, with all the features I wanted, and ready to release. One week of work, as opposed to 6 months of work programming by hand in 2005. That's an enormous increase in productivity. In this context, AI has been an extraordinarily valuable tool. Claude even did all the work required to convert this web site to the RamaSite platform. But I believe that productivity is the result of my pre-existing expertise.

I am far less confident that, without expertise, AI can be as useful. In fact, I think it might be pretty harmful. What happens if people decide that AI is not an adjunct to expertise, but a replacement for it? I've had conversations with people who've essentially said, "Well, ChatGPT says that X is true," when I know that it is, in fact, not true.

I worry that people will forget the Gell-Mann Effect, and begin trusting what the AI tells them, without ever checking if what they're being told is true.