What AutoLISP Taught Me About Writing That No MFA Ever Did
Photo by Photo by Thorium on Unsplash on Unsplash
I never expected to learn AutoLISP. If you don't know what that is — and honestly, most people don't anymore — it's the scripting language built into AutoCAD, the drafting software that architects and engineers have been using since roughly the dawn of time. AutoLISP is old. It's a dialect of LISP, which is one of the oldest programming languages on Earth. It looks weird. It's all parentheses and cryptic commands like (setq) and (entget), and it reads like math decided to have a nervous breakdown.
I learned it because my brother-in-law runs a small surveying outfit outside Boise and needed someone to automate a repetitive drafting task. I said yes before I knew what I was agreeing to, which is honestly how most of my creative projects start.
The First Thing It Broke: My Idea of a 'Draft'
Here's the thing about writing a script: it either works or it doesn't. There's no 'close enough.' You run it, and either the drawing does the thing, or you get an error message and a blank stare from your monitor.
I hated this for about two weeks. As a writer, I live in the land of 'close enough.' My drafts are mush on purpose. I revise in the margins of margins. I can convince myself a paragraph is 'basically done' for six months.
But AutoLISP doesn't negotiate. And somewhere around week three, something shifted. I stopped seeing the binary as harsh and started seeing it as clarifying. The script either did the thing or it didn't — so I stopped romanticizing the in-between state. I started treating my prose the same way. Does the paragraph do the thing? Yes or no. Not 'is it beautiful.' Not 'does it sound like me.' Does it do the thing.
I know that sounds obvious. It took a forty-year-old CAD language to make it stick.
Debugging Is Just Editing With Better Manners
The process of fixing an AutoLISP routine is called debugging, and it's the most humbling activity I know outside of couples therapy. The computer tells you exactly where you're wrong. Line 42. Missing parenthesis. Variable not defined. No feelings spared.
But here's what surprised me: I never took it personally. When the error message said line 42 was broken, I didn't spiral into 'maybe I'm just not a programmer.' I just went to line 42 and fixed it.
Compare that to how I treat editorial feedback on my writing. A note that says 'this scene drags' used to feel like an indictment of my soul. Now, after months of AutoLISP, I read it like an error message: Scene 7 is broken. Go to Scene 7. Fix it. The feedback isn't about me. It's about the code.
I wish I'd learned this in my twenties. I would have saved myself a lot of dramatic walks around the block.
Small Tools, Built for One Job
The AutoLISP routine I eventually wrote for my brother-in-law does exactly one thing: it takes survey points from a file and drops them into a drawing with the right labels and layers. It's maybe 80 lines long. Nobody will ever admire it. It has no ambitions.
And it saves him about four hours a week.
That ratio — tiny effort, outsized usefulness — is something I now chase in my writing too. Not every piece needs to be a novel or a grand essay. Some of the most valuable things I've written are short, unglamorous, and solve exactly one problem for exactly one reader. A letter. A template. A two-paragraph explanation I've now sent eleven different times.
The fancy term is 'small tools.' The honest term is: make the useful thing, even if it's small.
When to Stop Fiddling
Every AutoLISP forum I lurked on (yes, they exist, and yes, they're delightful — mostly retired engineers in Florida and Minnesota) has the same recurring argument: when do you stop improving a routine that already works?
The veterans all say the same thing. If it works and it's fast enough, ship it. Perfect is the enemy of the deadline.
I've started applying a version of that to everything. The newsletter that's 90% right and goes out on time beats the one that's 99% right and goes out never. My brother-in-law's routine has a small bug in it — if you feed it a malformed point, it just skips it silently. Should I fix it? Probably. Has it mattered in two years? Not once. Ship it.
The Weird Takeaway
I went into AutoLISP thinking I was learning a side skill for a favor. I came out with a whole philosophy: be binary about your drafts, treat feedback like error messages, build small useful things, and ship when it works.
Also, I now have strong opinions about parentheses. But that's a different article.
If you're stuck in your own creative process — whatever your version of the blank page is — I'd genuinely suggest learning something totally outside your domain. Preferably something old, unfashionable, and practical. Something that doesn't care about your feelings. It turns out the fastest way to improve your art is to spend a few months doing something that isn't art at all.