I am currently coding my own small language model (SLM) system.
Basically I am coding some AI to chat to me and use it to demonstrate how AI actually works – and it should feel fantastic, or it would if all the IDEs were so unnecessarily complicated. I can’t believe I have to say this but:
UX has ruined coding.
What used to be a simple meditative act where I would fall into the gap, headphones on, music playing, coding away, has now become one big circus of noise and clutter which can be summed up brilliantly by the meme:
I went to someone else’s circus and saw my monkeys in there.
Which is a variation on the famous Polish idiom: Not my circus, not my monkeys.
The variation version made me laugh so much that I opened up Google Gemini, which said Hello Ruth, and asked it to generate me a picture for this blog, using a prompt, which alas I didn’t think to save to paste into here. I don’t save AI conversation. I think of all the data centres heating up the earth and don’t want to be responsible for my own permanent digital landfill. But it was something like:
I learnt to program on a VT100, and the last time I went to Bletchley Park, I saw the SGI Indy machine I used to code OpenGL on, in the museum. Blender is a nightmare and I have just deleted Pycharm off my machine because I cannot face the overload of the user interface. Draw that picture of me in the big top circus of coding.
It drew me as a man.
For those people who don’t spend their days staring at computers: OpenGL is a graphics programming language and Blender is a free PC version of 3D programming built on top of OpenGL with an integrated development environment (IDE) that has so many buttons, bells and whistles, I find it impossible to use. Pycharm is the latest and trendiest or perhaps it is no longer, I did start playing with it in January. Pycharm is an IDE for Python (programming language) and allows you to pull in lots of other stuff like Pytorch (an AI framework). It also has a plugin for AI agent coding – in that the AI tells you how to code. Alas like Blender, Pycharm gives me a headache. I now need to be an expert in both of their graphic-user interfaces (GUIs) and learn all their buttons – which presses all my buttons, before I can get down to coding and understanding what functionality in the libraries I need to be calling and what all the windows are displaying.
User experience (UX) was a term invented by Don Norman in 1993 when he moved from academia to Apple, which was in the doldrums at the time. Norman said that we had to get beyond usability (easy to use, easy to learn). He wanted to encapsulate the experience of when you buy something and you take it home and you love it and it just makes you feel good. But since then (watch the video in the link) the term UX has been horribly misused and people bang on about designing an experience. But all I see these days are loads more buttons on things and AI agents are being used as a plaster over the top of bad GUI design, obscuring the very experience I came to have.
Take Blender for instance, I know how to code OpenGL I just don’t know their really clicky button top-heavy GUI without a massive learning curve – it actively prevents me doing what I came to do. For me, it’s not usable nor a positive user experience.
Bad data, bad code
So! I looked at the man-pic Gemini had generated, ranted a bit in the Gemini prompt, got it to draw a woman (of which I will spare you the details), and then gave it a mini-lecture on diversity and inclusion and how it presents women Gemini said:
You are absolutely right. The reliance on stereotypes in early results is a clear sign that I, like all AI, require vastly more, and importantly, much more diverse training data.
Then, I deigned ungratefully to accept the picture as it would take me forever to draw anything like that, if ever. Nonetheless, I have a responsibility to say stick that in your human-in-the-loop pipe and smoke it, thank you.
AI flattening diversity is something which I talked about in my last blog. And, if it does that to pictures and representing us as a population – what does it do to our code? I have seen a lot of bad code online and in courses.
And then aside from terrible AI code. I am thinking about the big picture and I have to ask:
Whatever happened to coding?
I mean don’t get me wrong, I am not a vi or vim nut. I loved emacs, but Microsoft unfortunately crept into my life when I had to deliver a project on Windows and use Visual Studio and that’s when it all began – little boxes and clickie buttons and bloated interfaces. Grrr…
Over time, I gave up LaTeX, because people wanted my documentation in Word (omg) which I can never use properly because of the ‘simple’ interface which never gives me exactly what I want because I don’t know exactly which buttons to press as it’s not clear. I end up with an approximation of what I want and have always used the help to figure out the functionality, now I use AI.
And, then I was designing and wireframing websites with other people in DreamWeaver which seemed to let everyone rename their files with lots of dots in them – something previously only allowed in environment variables and the whole world stopped being precise. As I always say, we shape technology and vice-versa.
When coding, I like it when my brackets get matched and reserved words get finished for me. It saves me a lot of debugging time. But I just want to see what is going on rather having to learn lots of obscure buttons on a GUI which looks like the cockpit of a spaceship designed by someone who is high.
Every tool is desperate to show off its features, its integrations, its extensions, its AI assistants — all performing helpfulness instead of actually being helpful.
This is performative UX. And it has turned coding into a circus.
Me frustrated in the big tent of code circus 2026
So, today as I set up my project I am hankering for ye oldie days when I would set it up like this:
/project-name /src /include /lib /data /binMakefileREADME.txt
Then I would type in commands which made sense from the Makefile: make clean, make install, make, to rebuild the entire project from scratch. It was all the things we talk about when we talk about good UX cues. It was consistent, constrained, the mappings made sense, we got good feedback, and if there was a trade-off or a mapping to be made I was the person in charge. I had my internal locus of control.
I knew what it was doing and why. After, all like I like to say, as an undergraduate, I had to learn how to use sparse matrices to not use all the memory. Nowadays, Pycharm does not clean its house. It reinstantiates, reloads, reindexes, rescans and rebuilds everything all the time – it thrashes, it does not clean. All whilst driving around in a big flashing clown car, juggling and playing loud music.
And I hate it!
Because somewhere along the way, the tools stopped helping me code and started performing as if they did.
Vibe coding
In May, I watched a talk by Eiffel programming language and software engineer, Bertrand Meyer: Software Verification in the Age of Artificial Intelligence, hosted by the ACM. I know he feels the same way.
Meyer read out the famous viral tweet by Andrej Karpathy’s which started the AI vibe excitement :

At the bit where it says ‘I don’t read the diffs anymore‘, Meyer said: Good luck with that then!
I laughed so hard. But then Meyer went on to categorise coding types in a way I think is so helpful:
- Acute – safety and security.
- Business – banking and corporations.
- Casual – Viber-man up there.
I use this brilliant example now, quoting Meyer, in my talks demystifying AI to explain what is really happening in coding and what is happening in the ‘real world’ not the AI is taking over world of the media.
One of the questions I get asked a lot is: Will AI take over all coding jobs?
No!
Humans have to remain at the centre of software.
And, UX has its place too along with the major guidelines of human-computer interaction. And, also – it is not one size fits all. When we design for everybody, we design for nobody. We don’t want discoverability and excitement when a pilot is flying our aeroplanes. We don’t want them leaning over going:
I love my new cockpit. What does this button do? Ooooh sorry folks about our fifty foot drop.
We also don’t want AI controlling our planes or cars no unless we know exactly what it is doing and how and why.
But in the spirit of exploration, I am coding up some AI, I am going to see some vibe coding in action and produce hopefully something really cool in the process and learn a lot! I am so excited.
So, I have deleted PyCharm and Anaconda (as that interface wasn’t doing it for me when performing sentiment analysis and it did confuse my girls a bit when I taught them python). I have set up my new laptop which has all RYZEN AI, NVIDIA hardware stuff going on – which embarrassingly, caused my Zoom to go laggy and blocky, so I had to untweak my tweaks, which I really shouldn’t have been doing in the first place without knowing what I am doing.
And with new lessons learnt, I have decided to go with VS Code – though it is Microsoft whom I have not forgiven for making learning how to code in the Minecraft game, absolutely no fun. But, with my new snazzy laptop and the fact I can hopefully easily install all the libraries I need from Hugging Face (a big umbrella of various AI libraries) I am going to dive in and begin!
So, I guess this is the first in a series of me getting my AI coding vibe on – but I will be checking the diffs! Just kidding AI is getting nowhere near my vibe. It along with discoverability can sit in the back and I will ask them when I need something.
I can’t wait to begin.