Published on

AI and Programming

Authors
  • avatar
    Name
    Tienshiao Ma
    Twitter

Yes, it has been a while. Maybe I'll post more and more regularly.

Generative AI is here and has had a significant impact on software development. I think it is clearly the next evolution of abstractions. Another step in the sequence of machine language, assembly language, low level languages, higher level languages, etc. I also think software development is also a field that is well suited as an early market for AI because source code tend to have a lot of patterns and we already have a lot of processes and controls in place to ensure quality (because us human programmers make a lot of mistakes). Processes like writing tests, peer review/code review, QA testing, etc.

There is a question of what the future will look like for programmers. On one hand if AI makes developers X percent more productive does that mean we'll need Y percent fewer developers? Or will there just be more software developed? Faster computers resulted in more software, not the same software from 30 years ago running faster. I don't think we've the maximum amount of software to be developed yet. But ultimately it is probably a little bit of both.

I can see the "more software" side pretty easily. I hear/read stories of people who may be somewhat technical but not programmers who can use ChatGPT or Claude to build something small to solve some small niche problem they have. I think that is amazing! Though that sort of programming probably doesn't add to the software development job market.

For more experienced devs that work with junior devs, write Jira user stories, and perform code review, I think working with AI is pretty similar. And if you rely on AI to write all of your code, that muscle in your brain will atrophy. Luckily I have plenty of opportunities to continue to write code. And not all code is equal. Some code is more valuable, more critical. Some code is more interesting. I can offload the less valuable, less critical, less interesting code to the robots.

And that has been great for my personal projects. Like many programmers, I have a GitHub graveyard of partially complete toys and experiments. Usually I've done most of the interesting programming and then gotten distracted by something else shiny, leaving an incomplete project with a list of mundane tasks remaining. Now I can have Claude Code help me work through them.

In recent months:

  • SweepSpotter - An app to help you track street sweeping days for your favorite locations. AI did the initial port of the backend from TypeScript to Go, and a lot of the website. The website was initially more of an afterthought (all apps kinda need some sort of webpage for the App Store), but has grown over time.
  • CubeCAD - A simple voxel based CAD webapp that allows my son to create models like he does in Minecraft that can be exported and 3D printed. I'd finish the core functionality many many months ago, but more recently had Claude finish up some small things, add some documentation, and fix some bugs. With Claude Code for web/mobile, I was able to read about an issue someone was having, ask Claude to investigate from my bed (giving Claude some of my guesses), and let it work on it by itself. In the morning I reviewed its branch (which I turned into a PR) and merged/deployed.
  • Real Estate website for my wife - Majority coded by Claude. Mostly finished earlier this month but not yet ready. Unfortunately we still have to manually collect all the content (details for the properties, images, videos, documents, etc).

I now find myself looking through my older repos to see how AI might help me finish that last mile. It's like my son finding an old toy that he hasn't played with in a while.