Not cutting corners
Note: this is an essay I started writing after 11pm for my midnight publication deadline during Inkhaven. I can’t say I’m proud of it but I still am happy that I managed to publish it.
This morning, I set out to write an essay titled “Code is communication”. In the possible space of languages I wanted to argue, code (and math) is the most precise. Even published mathematical proofs frequently skips steps, sometimes needing retractions. Only theorem provers and code precisely describe deterministically what something will do.
Since I’ve been thinking about writing this essay for months, had collected a decent amount of notes and had developed a reasonable narrative structure I wanted to tell, surely publishing the essay couldn’t be so hard.
I wrote and revised. But the more I wrote the more holes I noticed holes in my argument. Code is only as precise a specification as the compiler that generates the assembly that runs. Should the assembly then be the most precise description of what that program does? What about the processor which interprets opcodes into micro-ops and sends them to hardware. The most precise description of the behavior can only be the Schrödinger equation describing the exact behavior of the universe. But we can’t know base reality because of Heisenberg uncertainty. I was starting to doubt that my thesis was true.
I was arguing that code can become it’s own specification (Hyrum’s Law), the central example I was using wasn’t even relevant to my claim, the code wasn’t the specifying anything, iOS isn’t even open source. Only the behavior of the operating system was.
iOS 16.5 fixed a bug in NSAttributedString’s
.baselineOffsetproperty that caused it to be applied twice for negative values. Though iOS 16.4’s behavior was “incorrect” according to iOS’s documentation, I nevertheless needed to keep the code that worked around this bug.
If I’m honest, I think I was trying to write the entire essay as post-hoc reasoning. The title “Code is communication” was alliteration that my brain had clung to as cute reassurance that LLMs generating more and more code from natural language wouldn’t make programming languages obsolete.
But it seemed too late to give up and write something else. I’d already spent the entire day thinking about and writing the essay. I was confident that I would be able to finish the essay because I’d been thinking about this far longer than Review: The 6% Club which I published yesterday, and was more sure of the idea itself.
I’m sad that I fell into the sunk cost fallacy, but I’m glad that I didn’t cut corners and force the essay to completion and publish a bad piece on my central thesis. Trying to right the essay still helped me think better.
I was really proud that till now I had managed to avoid publishing an essay that felt like “cheating”. I was hoping that I would be able to keep up my streak of only publishing non-slop essays.
I still want to strive to publish good essays, but I maybe need to reduce my ambition a little. I don’t thing reducing my ambition is cutting a corner. It’s more accurately calibrating to what I’m capable of. Hopefully, I can stop cutting the corner of getting ahead so I never need to be in this situation again.