![]() |
Aardvark DailyThe world's longest-running online daily news and commentary publication, now in its 30th year. The opinion pieces presented here are not purported to be fact but reasonable effort is made to ensure accuracy.Content copyright © 1995 - 2025 to Bruce Simpson (aka Aardvark), the logo was kindly created for Aardvark Daily by the folks at aardvark.co.uk |
![]() Please visit the sponsor! |
We all have a friend that likes to help but who, despite the best of intentions, inevitably ends up wrecking things to the extent that you would be better off without his help.
Well I have such a friend and over the past week or so I have tried very hard to feed him with tasks that are within his ablities but I've finally decided that I'm better off without him.
I am nearing the end of a medium-sized software project which has been something of a learning experience for me as I've had quite the hiatus from cutting code for at least a couple of decades.
Getting to grips with the fine details of Python has meant that much of my time has been spent simply learning rather than productively generating lines of code.
That's been fine by me, learning is always fun and there's no extreme time imperative on the completion of the project -- although I certainly would like to wrap it up by Christmas.
At this stage I'm working on adding a few of the "final touches" to the software so I figured that my friend could lend a hand and speed up that process.
The friend, as I euphemistically refer to him, is actually AI, of course
Vibe-coding is the future, or so I'm told and early efforts seemed very promising. Indeed the Android app which forms part of this software system was cut entirely using vibe coding and it works.
That success is what encouraged me to apply the same vibe coding approach to filling in the final bits of my Python project. What could possibly go wrong?
First of all I had Google Gemini analyse what I'd written and that was interesting.
It pointed out that some of my code was "unconventional" and could perhaps be optimised for performance.
"Do it!" I said... and Gemini spun its little AI gears for a minute or so then came back with a list of recommended changes.
"Implement the recommended changes" I told it.
How cool is this? AI is going to rewrite bits of my code in such a way that my program will now run faster and more efficiently -- all with just a few tappity tap taps from me on the keyboard.
I should have known better. If something sounds too good to be true then it probably is... right?
When Gemini spat out its "improved" code I fired it up and...
A runtime error occured.
I fed that error back into Gemini and it apologised, explaining that "sometimes such errors occur when using Python and tkinter on some platforms" before confidently assuring me "I will modify the code to avoid the error".
Away it went again, applying the power of thousands of GPUs and trillions of tokens worth of accumulated AI data to the problem.
Once again it spat out an even newer and even improveder (new word!) version of the program and once again I fired it up, trembling with anticipation.
Oh no, another runtime error.
At this stage, the smarter amongst you will probably be able to predict what happened over the next hour or so. Yes, that's right, the AI continued to "improve" the code and "fix" the errors it had introduced but ultimately, to no avail.
Yes, it eventually did eliminate all the runtime errors but the resultant code simply did not work. It didn't even display anything on the screen and simply sat silently spinning its wheels in the background.
When I examined the code manually it was obvious that this AI "improved" code would never work as the original design intended. Swathes of the original code was gone and the entire implementation had been changed to the extent that it was almost unrecognisable.
I admit that the code I'd originally submitted to the AI was a little "unconventional" in some aspects but that's because the problem was one for which I could not see the "conventional" approach working very well. Indeed, perhaps I was right because AI had reverted the structure of the code to that more conventional model and it simply failed in the way that had led me to deviate somewhat from those conventions.
AI continued to assure me at every step that it was improving things and that the errors it was creating were due to "incompatibilities" and "cross platform differences" when in fact it seemed to totally lack an understanding of the impact those changes were having on the core functionality of the program itself.
In the end I just gave up and conceded that although my little AI friend is very cocky and sure of himself, he's actually quite useless if you're trying to do stuff that's a little "outside the box". I guess the AI knowledgebase is built from a huge array of code that follows all the conventions and textbook strategies for using Python. I spotted ways to use the language and libraries in ways that were still quite syntacticaly and functionally legitimate yet seldom found elsewhere. This confused my friend.
I guess I'll just carry on and implement the extra functionality myself using blood, sweat and tears like we used to do in the old (pre-AI) days.
And before anyone suggests that something like Claude Sonnet or ChatGPT may be better at vibe coding than Gemini I have seen similar horror stories from all the vibe-coding models and at least Gemini is free.
Carpe Diem folks!
![]() Please visit the sponsor! |
Here is a PERMANENT link to this column
Beware The Alternative Energy Scammers
The Great "Run Your Car On Water" Scam