AI and the Future of Programming
So, who is Junie? Junie is an AI assistant built into my programming IDE, JetBrains PHPStorm. If you don’t know, an IDE (Integrated Development Environment) is a glorified programmer’s editor that also does lots of other stuff related to creating and managing software.
I wanted to share some of my experience with Junie and some general reflections about AI and programming. I have come to believe that AI can really benefit the programming process. However, all these declarations one hears that AI will make coding and coders obsolete are way overstated.
Junie hooks up to other large language models (Claude, Gemini, GPT…) to suggest coding options, answer questions, and even generate code. My experience with Junie gave me something of a window in to where things are going with software development and AI. My initial take-away is that an AI Assistant is helpful and fun to use if you play to its strengths. There are weaknesses as well.
At the risk of too much anthropomorphizing, I’ll say that it feels a little like having a knowledgeable colleague to whom you can ask questions and compare notes with. The most useful “use case” is when I don’t know some subtlety of syntax or some technical procedure in a given language or environment. Good example. I had a regular expression (a densely cryptic notation system for text parsing) that I have used for years to validate email addresses. Could you read this?
return /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email);
I asked Junie if it could be improved and “she” came up with:
return /^[\w+-]+(\.[\w+-]+)*@[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*(\.[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)*\.[a-zA-Z]{2,}$/.test(email);
Junie pointed out that my original version did not allow four-character endings like ‘.info’ and some other details that would disqualify some rare but legitimate email addresses. The email rules had changed since I wrote the original code. I tested this rigorously (I”d never accept anything from an AI without testing) and found Junie was right!
“She” is not always right. Not that Junie gives me outright erroneous code but “she” often fails to anticipate what I want and need. The code completion is sometimes helpful and right on the mark. But mostly, well, not. “She” helps me solve some thorny problems but occasionally I can solve a problem that Junie cannot. It isn’t that I am some towering programming genius, but you’d think that with all the vast coding LLMs she eats for breakfast, i wouldn’t be able to stump Junie.
This is a limited exposure to programming with AI but, from what I hear, it is not atypical. An AI assistant can significantly improve the productivity of a programmer but cannot replace the depth of human experience it takes to make useful and reliable software.
I’ll end this post by referring you to a stimulating podcast interview with Carl Brown of the “Internet of Bugs” YouTube channel.
The Truth About Software Development with Carl Brown
Listen (PocketCasts) | Listen (Apple)