Skip to main content

"Beautiful Constraints"

I'm starting to think that programmers who dip into the homebrew, demoscene and retro communities and come out talking about the beauty of programming with constraints are getting it slightly wrong.

You want constraints? If you're in a programming or engineering profession, you already have them. Heck, if you're in any profession. But, I know programming/engineering professions best because I've been in them for like 20 years. Your constraints are: Horrible bosses, bad management decisions, a pathological Capitalistic enterprise, idiotic schedules, badly written existing code bases and technical debt, people at higher levels with political control that know a lot less than you, lack of creative or design control, etc.

You want constraints? Probably also throw in: Non-existing or ineffective build and test automation, annoying auto-formatters, syntax requirements, unhelpful code reviews and nagging code review requests with people circumventing the tests to get past poorly written tests and poorly written, poorly implemented presubmit checks.

Allegiance to internally developed projects, "commitments" to buzzwordy products and "cloud" junk with mountains of configs to wade through and tame are all constraints. Getting flack and pushback for developing anything novel or simple to try to tame them adds constraints. You want constraints, you say? You got'em! They're not even all "political" or "business" constraints. A lot of those are actual technical constraints.

The thing brogrammers are missing here is that it's not just about "beautiful constraints," it's about the technical challenge, the art and passion. Any one or all of the above. Yes, the constraints help, but it's only part of it: They help to form walls of a sandbox--cracked, splintered and penetrable walls. These walls, and the sandbox, are much different than the constraints that we face in our day to day. It's a kind of purity and spirit, and a real community.

Sure, come to challenge yourself or as a vacation from the mountains of APIs, layers and bullshit tech debt you usually have to deal with. But, pull up a chair and stay a while. You might see what else you can get with those breaks, and you might be able to bring that back to the industry, and maybe not write another bs API or Framework that someone else will be mandated and required to deal with, and maybe you can bring back a sense of working within an Architecture and Community, malleability and Spirit.

Comments

Popular posts from this blog

Nietzsche was a baller

Hansen Writing Ball This morning I switched on my monitor, noticed the LCD screens of my newly built mechanical keyboard--the Ergodox Infinity--go from "breathe" to a greeting with the qmk logo from its freshly flashed firmware, and then my monitor greeted me with its Emacs session from yesterday. Even though it was not my original intent when switching on and plugging in, I found that I couldn't resist continuing to type up the next logical part of a keymap I started working on for a different mechanical keying device: My long-finished but never customized RAMA m10. Ergodox Infinity (center) RAMA m10 (top right) As I finished joyfully typing the rest of LAYER1, on to LAYER2, it made me think of a story I once read about Nietzsche and his typewriter. I remember the striking thing about it, and probably the reason it occurred to me again in this moment, was how much Nietzsche wrote about using the typewriter and how he thought about how our tools and techni...

Cage of Reason

During the Haitian Revolution against the French, The Haitians sung the soldiers' songs in their language and tense. The soldiers could all see the irony; their own rebel songs, their ideology. We can't invoke this story with our captors, They never heard it. We sacrificed stories for verdicts. We can't invoke the words of the poet. We sacrificed him to the Market. We can’t invoke the wisdom of the old books, We sacrificed them to stammering and doubtful looks. We can't invoke the Church's righteousness or reliance. We sacrificed it to Science. We can’t invoke empathy, We sacrificed it to individual agency. We can’t invoke the deeds of the old King. We sacrificed him to perennial voting. We can't invoke legacy, We sacrificed it to, “Everything I have was earned by me.” We can’t invoke a God’s reprisal. We sacrificed him to blunt denial. We can’t invoke romance. We sacrificed it to an enlightened stance. We can't invoke the r...