As I spend more time programming and interacting with programmable systems, I find it easier to view non-software things as if they were software. As everything starts looking more like software, I find myself subjecting non-software things to a software aesthetic. Programmer’s distaste is finding certain things ugly under this aesthetic.

Some kinds of tasks that trigger programmer’s distaste:

  • Tasks where the work would be reusable if only there was a way to save state.
  • Tasks that could be automated if only the involved subsystems had APIs.
  • Software services that process or store information, but prevent programmatic input or output (cough lock-in notes apps cough).
  • Tasks where the complexity is bad because the wrong data structure is used. (retrieving the matching tupperware lid when the tupperware lids are unsorted)

Wow, he’s on his high horse with this one. He must have a clean, organized workspace. And all his software must be super optimized. Unfortunately no :) On my better days I remember this and don’t complain about non-software things not being software.