Endless Reflections
Over the course of a few days I made a simple piece of software called windle. The name is completely meaningless, chosen because I think it sounds cool. Windle is a tool for tagging images, and potentially other forms of media, and can be used to assemble a searchable library. It's similar to tumblr or pinterest, but without the social aspect. Most of the program lives in a single ruby script, which is short and barely documented. I like to collect all sorts of inspiring or curious pictures, links, and quotes, so my hope is that windle will be like a commonplace book or Zettelkasten, allowing me to track and synthesize ideas for when I want to create something.
A couple years ago I was into functional programming, and spent a lot of time learning Haskell, type theory, and even category theory. The level of abstraction that those topics introduced was mind-bending, and trying to advance deeper and deeper into theory was a fun and enriching challenge. I wrote some mediocre experimental programs in Haskell, but ultimately I didn't end up having a practical use for the language, or for category theory. It's a shame, because I have no reason to study anything that complex, even if it's interesting; I can't figure out a use for it. Those topics are too difficult for me to study just for the hell of it, at least once you get up to things like HoTT or the Yoneda Lemma, and it's frustrating to not have an "outlet"—that is, there's no meaningful purpose for things like Haskell, since I'm just a hobbyist who does nothing special. My most successful projects—the ones that I complete and actually end up using, like windle—are the ones that solve actual problems that I have, which tend to be simple.
What motivates other people to make software that's more complex and exciting than windle? Probably something to do with business/industry, in most cases. I also know some people who are really into video games and anime, so a lot of their projects come from that. There are also people like 100 rabbits, who are in a situation that comes with very unique constraints, so they have to come up with very novel solutions. All I really do is write, and collect music, art, and memes, and I'm already pretty comfortable with my current workflow. If I want to work on interesting software, I guess I ought to get a really weird hobby or live atop a mountain or something like that.