I had a project I'm working on and I wasn't entirely sure of my logic in my own head, so I decided to throw it to AI for a "sanity check".
And it kind of confirmed I was going down the right path, and then highlighted pitfalls to look out for.
It did also offer some code. But, no, I'm not just copy and pasting that into my program. Not least because it doesn't produce code that follows my coding style, as well as that I don't want a "mystery bomb" in my code that, all of a sudden, explodes on some edge case that the AI didn't think of and I don't know why it's broken either, as I didn't write it.
Rather I'm working with the AI. Like, we're parsing some strings and it suggests that we need to count quotes and brackets, because the comma operators we're looking for must be "top level" and not inside strings or "sub-clauses" inside brackets.
The AI makes good points, issues warnings of little logical "gotchas" I might otherwise have missed but, mostly, it's just being able to talk over the logic with the AI. I tell it what I'm trying to do and the way I think the problem should be tackled, and it comes back with "good idea" or "ooh, there's a potential gotcha there, because what if [edge case] happens? So maybe the better way to do it would be to do what you're doing but keep track of this, this and this to account for the edge cases". And sometimes it just makes nice optimisation suggestions. Such as "if you match the conditions backwards, then we can early exit sooner, and that saves a heck of a lot of checks" or just "put all the results in a set, as that'll speed up access later, and there's no use in having duplicated results in this context".
Like, I'm not letting the AI actually write the code. And even if it were 100% trustworthy - which it ain't - then I still wouldn't be doing that, because I don't want to just have code. I'm a coder and I want to understand the solution and I actually want to create that solution myself - and I've been doing that for several decades before AI showed up, so I don't need it to solve any of these problems. I'll still be coding, for my own amusement, even if it eventually becomes impossible to earn a single cent doing so.
Like, musicians will still make songs, even if AI takes over the charts completely - because it was never about making money, it was about making music, and you just have to accept that you've got to sell your wares in a capitalist society to earn enough to eat, so you do paying gigs. But you're still doing it, even when you have an audience of one - yourself - and it's only ever for your own self-amusement.
But, also, I'm kind of enjoying having an AI assistant, though. Like I say, it's not the AI writing code for me. It's me and the AI having a chinwag about the problem and identifying the best algorithms and approaches to use. Then I tell the AI "thanks, lots to think about and code. I'll get back to you".
I'm enjoying it because it's like having a coding partner who can "sanity check" all of my mad thoughts and I think even if the AI came back with no useful suggestions, then the exercise would still work. It's that thing of "If you can explain the problem clearly, then you understand the problem". So making myself explain it to the AI is part of the process of getting the problem and solution straight in my own head that I can code it.
Because that's always really the problem. Working out what to do. Once I know, in my head, what the solution is, I don't have any problems actually coding it. I've done this long enough, that bit doesn't cause me issues. If my brain can comprehend it then I can code it.
The real problem is getting things straight in my head. Understanding the problem and coming up with a sound plan to actually fix the problem. And that's when having a chinwag with an AI about it all is actually great.
I guess, strictly, it's not real "vibe coding". But it's my version of it and it actually works well. I do think it's helping me along to discuss the bits I'm not quite getting until I do get it. And I guess it's also having that "psychiatrist effect" - just having someone to talk to, discuss things, helping me straighten out my ideas, give me some confirmation that I'm barking up the right tree in my approach. That's really where it's beneficial.
Kind of like, as I've suggested before, what the act of "praying" does for a believer. God is just a "free imaginary psychiatrist" and, yes, "Eliza" can respond with complete bollocks or even, in the case of God, absolutely nothing whatsoever. It kind of doesn't matter, because that's not what's really going on. It's about having that conversation with yourself, really. Saying it out loud makes you have to keep your thoughts straight. Explaining it to someone else is where you realise "oh, I actually don't really understand that bit, do I?". The AI can just sit there, like a bored wife, saying "yes, dear, whatever you say, dear" understanding nothing.
But it still helps to have someone - even a virtual simulated someone (which is actually more than you get when you're praying to a god) - to talk through your problems and solutions with.
AI Vibe Coding
AI Vibe Coding
"Words ought to be a little wild - for they are assaults of thought on the unthinking."
- John Maynard Keynes
- John Maynard Keynes
- Ratsoap
- Baaaaaaa!

- Posts: 6344
- Joined: Fri Dec 19, 2003 1:46 pm 0
- Location: Back in Edinburgh
- Contact:
Re: AI Vibe Coding
I've been using Github Copilot with Claude Sonnet 4 and I've found it's great for throwaway projects, creating prototypes from nothing, and little helper projects. It's quite interesting how it will implement features that you didn't ask for, and it makes creating apps really fun using the things the AI comes up with and expanding on them.
Letting it near a well established and complex codebase, it tends to start failing and getting things wrong, and it would be a foolish dev who just let it get on with it.
It's pretty good for writing unit tests as well, but you need to keep an eye on it, and check that it's actually asserting stuff correctly. Also when you give it the task of creating unit tests that pass, it will often as not starting changing the application code to meet the test assertion, so you've got to explicitly state, 'don't do that'.
I'm currently using it to create a tech debt tracker for our internal projects and have created something genuinely useful, albeit not mission critical.
For customer facing, and PII containing projects, it's still a no-no for me at this point. It's going to be interesting to see how things move forward, if it's plateauing now, then we just have a very nice productivity booster. If it continues then it could be a genuine game changer for the way coding jobs work.
Letting it near a well established and complex codebase, it tends to start failing and getting things wrong, and it would be a foolish dev who just let it get on with it.
It's pretty good for writing unit tests as well, but you need to keep an eye on it, and check that it's actually asserting stuff correctly. Also when you give it the task of creating unit tests that pass, it will often as not starting changing the application code to meet the test assertion, so you've got to explicitly state, 'don't do that'.
I'm currently using it to create a tech debt tracker for our internal projects and have created something genuinely useful, albeit not mission critical.
For customer facing, and PII containing projects, it's still a no-no for me at this point. It's going to be interesting to see how things move forward, if it's plateauing now, then we just have a very nice productivity booster. If it continues then it could be a genuine game changer for the way coding jobs work.
Because fucking marketing cunts would never call a spade anything other than a Deluxe Easi-Shift Earth Movement Solution.
