Friday, July 18, 2025

AI Seeps In

     My boss recently had occasion to use a packaged microcontroller; I leapfrogged from BASIC Stamps (nice little widgets, as long as what you're doing is amenable to BASIC and you don't mind being looked on as a tricycle rider in a world of road bikes) to Raspberry Pi pocket-sized computers and he started with them, but this project needed the step in between: an Arduino.*

     Natively, you write stuff for Arduinos using a C-like language and I never learned C.  There are serious syntax differences between that family and BASIC, something like code-switching between German and Japanese: lots of people are fluent in both but knowing one isn't much help in learning the other.  The boss didn't know the Arduino version but he's got a little C.

     So he used AI.  I don't know which one, probably Microsoft's, which is all over at work these days.  And what the hell: it wrote his code.  But it was A) full of cruft† and B) kept leaving stuff out, which he had to ask it to fix, an iterative process that would probably have had me flipping the table over.  When the code did what it needed to do, he went back and cleaned it up, finding the process remarkably instructive in the ways in which the language differed from the similar ones he knew.

     On one level, that's okay.  It got the job done, and he came away knowing more than he had.

     On another, he lost out: he didn't solve the main problems with his own skull sweat; he didn't have to mentally crunch through the code before sticking it in the machine and waiting for it to crash or get stuck in a loop.  He hasn't internalized that language the way you'd do actually writing in it.

     Good enough is, in fact, plenty good enough; you can be "jack of all trades and master of none," and as long as you keep it all working, it counts.  But a lack of mastery means the next job that uses those specific skills will be a little harder, and the temptation to let AI do the heavy lifting will still be there.  What's the harm?  --The harm is, the critical skills needed to clean up the result require a degree of mastery and it's an ephemeral skill: the less you use it, the worse you'll be at it.  It worries me.

     Engineers of the late 1960s and 70s in my business had a tendency to commit "combat engineering:" hack it together, tape it up, make it good enough to get through the next day or the next hour, and leave it until the next time it failed.  The previous generation had tended to "build for the ages," putting stuff in on the assumption that it would be in place for the next twenty years, and the solid-state revolution had blown that model up like a hand grenade in a watch factory.  Now technical plants kept getting smaller and simpler, and you were either buried in generations of older junk or putting in shiny new all-in-one devices, and they'd slop it together and keep moving, because next week, something else would be replacing that stuff anyway.

     We darned near lost the ability to do good work.  Who cared?  What did it matter?  --And then things slowed down.  Budgets shrank.  Equipment became software-based, and the same physical platform might persist through a decade of upgrades.  Staffs got small, the business lost its luster, and--  Suddenly, those mountains of messiness and poor documentation weren't how you kept forward momentum, they were in the way.  We had to start over; we had to rethink how we did things.  Documentation started to matter again; you were going to be stuck with the stuff for quite some time, and have less people to repair or replace it when it went wrong.

     We're still digging out from under the legacy of what worked in the past.  AI promises to be a source of equally clumsy messes, if we're not very, very careful how we use it -- and an equal atrophy of skills that will be needed again later.
______________________
* I did the physical side of the project.  The Aurduino and its various "shields," piggyback boards for specialized functions, are mounted and held together using 2 mm nuts and bolts, about the diameter of a pencil lead.  It's annoying stuff to work with and I ended up buying a couple of little "grabbers," after realizing my old fingers weren't up to the task and needle-nose pliers had a disconcerting tendency to send nuts, bolts and washers flying across the room. It seems unnecessarily small.
 
† A surprisingly subtle term, somewhat context-dependent, but it alludes to unnecessarily complex or convoluted programming; or to code that's been heavily edited and modified and tinkered with; or to the accumulation of unneeded, leftover junk in hardware or software; or to going about a software task in an awkward, old-fashioned way; or to some combination of this.  Think "baroque" or "rococo," but with endless lines of arcane commands.



No comments: