on software choice

May 27, 2026

In software/linux projects, I notice myself getting hung up on trivialities like overthinking or over-analyzing design choices from the get-go and trying to account for all variables and to start off on a perfect foot.

Which is impossible.

A practical example of this is languages. What programming language should I code my project in? A question so trivial can become something you lose many nights of sleep over, and you end up never actually starting the project.

In answer to the question "What [music] software do you use?", Lena Raine responded saying:

"The answer to this question legitimately doesn’t matter. If you were to ask me “why do you use this”, the answers range between “I could afford it at the time”, “it worked”, and “I learned it first, so I stuck with it”. The circumstances that most people approach music with is that anything they can get their hands on and jam with will make something interesting. Just like sitting down at any piano, guitar, making an instrument out of wood and metal, people make music through any means possible. There are no prerequisites to making music, and what I use probably won’t work for you, because your situation is different."

I think its the same thing with software development. It's an art too, like music. And I think we all know that phase when something sparks in our head and we want to make an idea real. I think instead of overly doubting or questioning yourself before diving into something, you should just do it. And just grab whatever is availaible or ergonomic to you in the moment. If you already know a language and the project seems fit for it, then use it! If the language isnt fit, then use the closest thing that does. You can always switch up later. What you can't do is do the entire process in your head before you do it in real life.

What separates software development and music though is that software development has an implied standard of technical rigor. I think working around that is the real challenge. Because you do want to account for stylistic choices and their unintended consequences later on, and how they will snowball. I just think a real balance needs to be striked. It's a tightrope walk, for sure.

I suspect that we all might just need a break though. It feels like most of the time the mental effort is overblown and unecessary, and that after a certain point, the act of thinking itself becomes its own source of destruction and messy design choices. You sort of just need to account for 80% of things, and pick up the rest from there. I don't think you can dream up perfection and implement it. That's just foolish. You'll end up paralyzed and in trying to account for everything, you end up being an undifferentiated blob without an actual stance or choice.

You will have to make a choice. there will always be a tradeoff. What you make will have to stand for something, and by definition, standing for something means not standing for another thing.

I'm using software development as an example here, but this especially applies to software choice. Especially if you are in the tech space — you know how particular we can be about our software. Vim vs emacs vs neovim vs vscode, obsidian vs notion vs all the other note-taking apps, bash vs fish vs zsh, ubuntu vs arch vs fedora vs nixos vs all the other distros — I think you get the point.

And not just software development nor software choice but also lifestyle. Not everything has to be a DIY project, not everything has to be a non-trivial optimized decision. Sometimes you can do things inefficiently just because, and that's okay. I think we lose some essential part of ourselves the moment we get deeply immersed in technology. We cease to become normies and perhaps unconsciously get the wrong ideas about how decisions should be made, scrutinizing and being skeptical of anything that comes our way.