Woodworking & Programming; IKEA & LLMs
Witnessing the proliferation of LLMs in programming through the lens of a hobby woodworker, with some (maybe informed) predictions about the future of the industry.
On Furniture
I don't think it would by hyperbolic to say that the programming industry right now is experiencing a once-in-a-lifetime transition brought on by LLMs. Many of us are finding our way in, maybe out, voluntarily, maybe involuntarily, around this new technology. What will the final synthesis will look like? I can’t say. But as I introduce more LLM usage in my own programming, I can't help but hear echoes of a similar transformation in my other hobby of woodworking.
"Woodworking" is a really general term. It could mean house carpentry, furniture making, boat building, among many other specializations. I would call myself a hobby furniture maker. Even within the realms of furniture making, there are, or perhaps I should say there used to be, many subspecializations: joiner, chair maker, wood turner, etc, that were all once specialized enough to require their own division of labour.1
Anyway, I live in an small apartment, and due to a lack of space I'm forced to practice a type of "constrained" woodworking that's probably pretty close to how the furniture makers of Olde worked. The most important constraint for me is the absence of power tools. Sawing, planing, joinery, all done by hand. All meticulous feedback loops of "is this cut running straight? No? Adjust this...", "Is this face of the board flat and square? No? Do X...", "Does this tenon fit nicely in this mortise? No? Try Y...". This is usually quite enjoyable! The work is harder, but you feel a greater sense of personal accomplishment and learning. You feel a serene dialectic between you, your tools, and your work. That's what I tell myself, at least.
Power tool by contrast, are loud and angry. They tend to command rather than suggest. Just getting close to them requires a bunch of PPE (Personal Protective Equipment). Look at them the wrong way and they'll maim you! What learning you do do feels very much within the realm of power tools. You learn the quirks of a certain model of machine, for example. It's a detached sort of learning; less about actually working the wood, and more about how to work the machines that work the wood.
Me and the missus getting ready to chop some wood...
I actually have an even scarier looking respirator.
But sometimes I encounter a job that would be too painful to do by hand, and so I'm forced to seek help from my motorized colleagues. Coming from a mostly hand tools way of working, the experience can be quite humbling.
Take a thickness planer, for example. Operating one is pretty straightforward. You feed a board into it and an angry spinning cutter head shaves off (more like decapitates) the higher bits of wood from the top. Do this a couple of times, while lowering the head every pass, and you'll be left with a board that's smooth on the top face and the same thickness throughout. Tada! The whole operation can take less than a minute and the only effort is moving the board in and out. The hand tools way of doing this would require a hand plane, a ruler, some judgment, and a lot a patience. It takes significantly more effort and time to do it this way. It is perhaps because of this increased effort, that hand tools also forces you to think about the actual material properties wood more: the direction of the grain, its moisture level, etc, in order to maximize the productivity of your muscle power. Machine power on the other hand, allows you to brute force your way through all these considerations.
A hobby thickness planer
Despite the spiritual deficiencies of using the thickness planer, the bottom line is that I can acquire a flat and smooth board for an order of magnitude less effort, and so I use it when I can.
I can only imagine what this sort of revelation could have felt like for people in the 1800s that made a living off this work. Suddenly, what was once considered "hard" is now "easy",
and thus what is considered "good craftsmanship" and "good furniture" changes by extension. Something viscerally changes in our little monkey brains when the calculus of effort gets
flipped like this, even more so when you feed your family from it.
Repeat this sort of revelation over hundreds of years, add some industrialization into the mix, maybe a couple world wars, some capitalism, some globalization, and you go from the pinnacle of furniture making being this:
to IKEA:
Yes, I think of IKEA as being the pinnacle of furniture today. Like I said, the societal definition of "good furniture" changed.
By the standards of yesterday, most IKEA wood furniture would be considered junk. Today though, I can get an IKEA LACK side table delivered next-day to my door for $10. That's pretty neat. Well, technically it's made out of "wood products", not wood, but it's close enough. The honeycomb interior and how it's flat-packed is pretty neat too, right? It's heavy machine industrialization that makes this possible. The innovations in material design, packaging, and automation to hit a price point, are important considerations today. For the people who make it, the definition of "good furniture" has gone beyond the traditional concrete definition of furniture. Even the definition of "furniture maker" has changed. Where are all the chairmakers? The joiners? Their labour has all been "industrialized". I actually don’t know anyone who makes furniture for a living.
We when look back to the past, we associate a sort of intricacy and delicateness with the pinnacle of furniture. I think, in say 100 years, when we look back on our present time, the simplicity and economy of IKEA-like furniture will take that place.
On Programming
I like to think of LLMs as power tools for programming. Maybe it's all the sawdust that's accumulated in my brain, but I can't help but think I'm putting my code through the metaphorical thickness planer when I ask an LLM to do something like refactor a CRUD app. The risk of maiming is more to the mind, though, rather than the body.
A programmer with LLM access will finish a feature faster than one without. Just like how a woodworker will finish a piece faster with a table saw than without. Even ignoring the actual act of programming, someone with LLM access and intent of understanding a complex codebase will be able to do so much faster than someone without an LLM. I don't think anyone at this point can deny these gains in productivity. Are these productivity gains infinite and all-encompassing? No, of course not. But it’s there.
Because of the gains in productivity, I'd like to make a couple of predictions about the future of the industry. I don't claim novelty on any of these ideas, it's just that they become more apparent if you believe the fate of commercial woodworking analogous to ours.
First, I expect a contraction of many of the more specialized forms of programming labour. Just like how there aren't any chairmakers around, anymore. I don't expect QA engineers, devops engineers, maybe even frontend engineers, to be a thing in the long run. They'll get folded into the general "software engineer" umbrella. You can probably think of a bunch of other similar roles. Obsolescence of various software roles isn't new, but it'll greatly speed up with LLMs, simply because the labour is so much cheaper.
Second, I think there will be a greater realization of these productivity gains in small and traditionally under-served markets. There are a bunch of smaller industries and domains that could benefit from
better software support, but aren't large enough to support a VC-backed team of equity-addled Ubermensch programmers (Sorry, Members of Technical Staffs) working for a year before they ship anything. LLMs allow much smaller teams to hit harder. Dare I say, this is a democratization of software? Perhaps in the same way the HÄGERNÄS dining set is a democratization of dignified dining for cash-strapped college students.
A
n
IKEA HÄGERNÄS dining set. You know the one.
Sure, the chairs are too small, the wood is full of knots,
and everything wracks after a month, but it beats eating
on the ground!
Third, software will get shittier. This one’s probably obvious. One thing I’ve noticed, perhaps due to the greater “intellectual” capacities of LLMs, is that they’re more willing to string a bunch of suboptimal solutions together to achieve an outcome, rather than simplifying the problem space. We generally consider this bad practice if done by a human. Eventually, the increased cognitive load encumbers our puny meat heads. The machine heads, though, and can handle a surprising amount of cognitive assault. It’s a sort of Parkinson’s Law, but for program complexity. This is just an example mechanism; I’m sure you can think of more.
This future of worse software also assumes everyone’s heavily using LLMs. I’m confident this will be the case. When I first started dipping my toes in woodworking, I took a class at OCAD (The Ontario College of Art and Design) called ‘Woodworking Fundamentals’. A pretty general name, right? Everything was power tools. It was assumed that any serious woodworking would naturally be done with power tools. A large chunk of the instruction time was spent talking about how to use them properly. I don’t think anyone had ever held a chisel by the end of the class. In programming land, the current crop of students matriculating out of higher education are doing so with the help of LLMs. My Alma mater, UofT, gives out Copilot subscriptions like candy. The expectation is that you’ll use LLMs, and so everyone does. These future junior programmers have a dependency on LLMs and would likely struggle in information-dense environments without them. 2
Fourth, a bifurcation of "programming for hobby" and "programming for profit". No one is stopping you from not using AI in your personal programming. Hand tool woodworking is alive and well for the weekend warrior. Not using it in a commercial setting, though, would be like not using power tools on a job site. You’ll be slower than everyone else, especially at the beginning of your career, and so you’ll eventually be muscled out by the machines. They might even call you names.
I'd wager this stings a lot more than many would like to admit. We programmers have traditionally derived status by having our labour be considered "highly paid" and "skilled". Even in the hobby context, we derived it by proximity of our work being vaguely similar to the jobs that paid the Big Bucks. It is this proximity, and the devaluation of our labour in the corporate context, that causes even people who swear they only program for fun to feel a bit disenfranchised. That’s how I felt.
The End
Reading through this essay again, I realize some of these predictions can come off as depressing. I think it’s important to try to see the positive in this transformation. IKEA furniture is cool in its own ways. I think we should try to find the cool things in LLM programming.
Who knows, maybe I'm wrong, too. All analogies eventually break down, and I’m probably stretching the woodworking analogy too far. Woodworking must exist in the 3-dimensional realm. It can only get so complex and require so much effort. The theories of the mind, on the other hand, can be abysmal. Maybe the overnight cathedrals of LLM generated code will come crashing down one day. In the rubble will emerge a true Art and Crafts movement as Morris intended. Part of me hopes, but if the analogy holds, History points to a different direction.
I'm not holding my breath. In fact, I'll have my respirator on. I hope you at least have one on hand.
The year is 2035. This is standard-issue corporate PPE.
We must all don our tinfoil hats to prevent brainrot from
long-term LLM exposure.
1. Rex Krueger has a fun video on this: https://youtu.be/Y9nX7Rvefns?si=0s4zqiPiFsno3Mht
2. The trials and tribulations of the modern student are neatly encapsulated in this soon-to-be historical artifact: Claude's Plan.