Last night, celebrating my birthday, I went for a lovely meal at Cashmere Lounge in Khandallah, Wellington.
It's been a strange week, with a storm arriving Sunday night - the cold, southerly winds apparently peaked at around 200kph, I woke up Monday morning to slightly less winds and slightly less driving rain, and a recycling bin that had been blown into the middle of our driveway with all sorts of rubbish blown everywhere. That's never happened before, especially since we're mostly sheltered from the southerlies.
A bit later there's an e-mail from the golf course asking for volunteers for a working bee on Tuesday. Trees are down and they include photos showing the normally tiny creek is an expanse of water about 100m across, and the tunnel under the state highway is about chest deep in water. That'll be why the working bee is Tuesday: there's not much point trying to clean up anything until the water level gets down.
Tuesday I join my morning D&D game (Monday evening for the other players, but this is the world we live in now). It finishes too late for me to join the working bee, and I don't have the essential gumboots anyway, so I review some more packages in the Debian NEW queue. Looking out the window I can see a yacht has washed up on the rocks at the harbour entrance, reminding me of the time when I was a child and our yacht was moored on a lea shore and when the wind shifted overnight we had to get ourselves very wet defending it from the weather and getting it out of that to somewhere we could relax. I don't think I've seen one of those yachts lose their mooring before - that was definitely quite a storm!
In the evening we go to dinner. Cashmere Lounge is a good drive away, and a new place for us - actually our go-to, local, quality retaurant is out of action because their south-facing wall was blown in during that storm. They're not open on Tuesdays anyway, but now they're not open at all for a few weeks while they rebuild the restaurant. That was quite a storm, for sure!
So now it's Wednesday. In the morning I'm off to the local makerspace to renovate my sister's old chopping board. It goes well, and I can see how I'm going to finish it off so I head home.
Eventually I check my chats, seeing mention of a flamefest about use of AI for writing code. Unfortunately the code in question is my code, and so people want my head for using modern programming tools to write code.
I remember when people looked askance at me for using syntax highlighting GUI editor "real men use emacs", or something. I've always been a fan of using the latest tools that will make writing my code easier.
Back in the '80s when I was writing code on Pick, all that was available to me was a line editor, so I wrote my own full-screen editor. I had to write a termcap-like library for Pick, and I also ended up writing a csh-like shell.
In the '90s, writing code for Progress 4GL, I used all of the GUI features I could.
In the '00s, starting to write for Android I got stuck into using Eclipse and newer, fancier editors with rudimentary language understanding for a limited set of languages.
In the '10s I came across GUI editors I could use in my browser. Cricket was an amazing tool for editing files and I didn't even need to check the code out locally.
So here we are in the '20s, and we have LLMs that are starting to understand code well enough that they can write a program in line with my design. You bet I'm going to use it.
I'm very much reminded of the time about 20 years ago when a new programmer started at Catalyst. Very young, enthusiastic, and super-smart. I had a job I wanted done, so I talked through my requirement, asked him to write up a plan for how he would do that, and he came back with a plan. I pointed out a few small issues, but in general it was a very good plan, so he adjusted it a bit, we agreed it was correct now, and he went away and wrote the code.
That's what it is like working with a good AI coding agent, mostly, although it's a little better than that, because I know it won't get offended, or affected, if I dig in and help out as well. It loves writing tests, it writes great commit summaries and it mostly even updates the docs - though sometimes I have to remind it about that part!
I review and take responsibility for all of the code that is written. This is my code. I designed this system, describing it's functionality, describing it's operation, often the exact minutiae of it's handling of particular edge cases. Like many systems I have built in my 45-year career as a programmer it is built to fit a purpose that is quite specific and unusual. "Bespoke" is how we used to describe such software development, when we were selling Catalyst's services to do this, evoking the old-world luxury of a wood-panelled tailor's office on Savile Row.
This afternoon, I get back to my computer to more than a hundred messages. Another Debian "centithread", only this time it is centred on me, and the way that I approach modern software development. Thankfully these kinds of storms also blow over, and I'm certainly not going to join the "fun" of that email thread. Probably I won't even read it all - I do actually think I have better things to do with my time. Instead, I will be happy to talk about this at length at DebConf 26 in Santa Fe, Argentina, face to face - given how Debian works I doubt that I will get the opportunity to talk about much else now.
So to those who are storming about me using the latest tools in my work: I am not sorry. I do not apologise.