Many years ago, I used the Enlightenment window manager on my Linux desktop. I was not a programmer then1, but I thought Enlightenment was really cool, and I spent hours reading through its documentation and wishing I knew how to contribute to its codebase. One piece of code was responsible for dealing with X11’s various quirks to create an empty window, and its introductory description was:
I can’t find any reference to this phrase on the web today, so there’s a good chance I’m misremembering. Still, various permutations of the phrase stick in my head today. For instance, I often find myself thinking:
There has been a push towards declarative domain-specific languages away from Turing-complete programs, but whenever I spend serious time with those declarative DSLs I find myself wishing for more expressiveness. Just let me write code, dammit! Three examples:
Terraform suffers from DSL rigidity much more than Ansible does. It has no escape hatches like Ansible’s plugins or command actions; if the limited
for_eachconstruct doesn’t meet your needs, you have to generate your Terraform from a more expressive language. The Cloud Development Kit which exists to allow writing Terraform in Turing-complete languages makes me question the entire project. Terraform wraps the cloud platform REST APIs in its own DSL, but then we wrap the Terraform DSL in a more expressive SDK – why do we need Terraform in there?
I suppose Alex’s version is more professional. Here is a bit more context:
But my version is punchier. Just let me write code, dammit!
That old version of me would be very proud of the 2023 version, who has become a competent and prolific programmer, though I think somewhat disappointed that I still haven’t contributed to any desktop Linux software projects. ↩︎