A post and the corresponding HN discussion has given words to some observations and thoughts that I had recently on the software that I’ve used. The premise is this: computers have gotten much faster, but our experience of software has gotten worse.

There are many ways that software can suck. It could be slow, it could be unintuitive, it could change often, it could be too complex, it could have ads and so the list goes… But there is indeed a common solution to the common gripes of user-facing software: make it really focused on what needs to be done and keep driving home that one focus.

One of the best software that I’ve ever used on windows was SumatraPDF. It has 1 goal: to let you read PDFs. It opens fast, it scrolls smoothly, it gets the job done. The very anti-thesis of SumatraPDF is ironically from the creators of the PDF format, Adobe Reader. It takes an eternity to open, it has too many buttons, it has locked features, is constantly trying to upsell you to some Adobe subscription etc. It has many features, but near the bottom of the list of concerns is letting you read the PDF that you just opened. I feel that many programs are allowed to become such monstrosities because of misaligned goals and interests. Adobe will never give you a SumatraPDF simply because it will not get you to buy a new product. It has to be slow, annoying and possess ads so that you can be forced to get the next best thing. But who made SumatraPDF? 2 guys. And maybe a couple of maintainers. 1 Two men made a software that could beat the product of a multi-billion corporation. And this is the thing that really makes me excited about software. A man with a focused vision and some motivation can make all the difference.

Its been a long time since I last used SumatraPDF, but the same philosophy applies: can I use software that does one thing really well, in probably the simplest way to go about it? And in the land of free software, you can find many gems like SumatraPDF. A counterpart to SumatraPDF in the Linux land is zathura. Open a file with Zathura and it shows the PDF and thats it. It opens instantly, and you can jump to any page with Vim navigation keys. If a vista-era computer can open SumatraPDF, it feels like an embedded processor can run Zathura. Its even more simple and I love it. I started to challenge myself to see what I can remove from my system and to adapt my workflow to simpler and simpler tools.

One of the best applications that I use today is emacs org-mode. My academic life probably revolves around this text swiss-army knife. The ability to organize information in its outline system is incredibly powerful and yet so simple - its just a bunch of nested collapsible notes in a single text file. But because its just plain text, a file containing notes for years has not yet even exceeded an MB. (also version controlled by Git to track changes). It hardly consumes any RAM (I just checked for my current emacs instance with multiple org-mode buffers: 120MB). From this one lean application I am able to: write notes, organize information, write reports, write latex papers, make presentations (latex beamer), write and export my Hugo blog. It basically became my one-stop shop for information management. Oh, and it also has todo and agenda planning functionality. But Richard, emacs sounds like the opposite of a simple tool! But you know what emacs did? It single-handedly obsoleted the following programs in my life: onenote, google docs, office-suite software, latex editor, blog-maker software, and an event-planner software. A common text-driven interface that has millisecond latency, will never change for decades, but with enough power to do the job of all the software I just mentioned is nothing short of a miracle. And because of the Lindy effect 2, which states that the longer something exists, the longer its expected to last. I am reasonably sure that emacs will stand the corruption of time, and with it, my workflow is secure and unlikely to suffer major changes in the future.

The experience of software is determined largely by the workflows that we set up with the tools that we use. The tools we become dependent on grants the creators of those tools power over us. If we use poorly-designed software with abusive creator-user relationships, our experience will probably suck a lot. Being careful with the tools that I choose means that I can establish workflows with software that respects my experience. And everytime I use my machine (which by now is around 6 years since its manufacture date), I always find it fast and pleasant to use.

Let me add one more twist: web browsers are a necessary evil. Browsers are probably more complicated than OSes at this point but you cannot live in the modern era without interacting with the modern web. My rule for applications on the web is this: stick to the web for reading and multimedia consumption, but anything that requires its own application should have its own application. Take for example google docs. I really respect the use of google docs for its collaborative feature, but using it as an information management system is a disaster. If something exists as a web-application, there probably exists something better natively. The good news is that using Firefox on Linux on my half-decade old machine is still a relatively snappy experience (considering that I only mainly use a browser to read and only read). Somehow despite the sheer complexity of the browser, it still manages to remain performant and efficient at times. As of now Firefox is the most performant+functional browser on wayland Linux. But if I had a simpler tool to do the same thing I would most definitely switch.

I find it amazing that people can sometimes write software that reminds you that the computer that you thought was slow is actually surprisingly fast. These people did their homework and made software that somehow managed to squeeze out every last bit of performance available from the silicon. The elegant design of a simple program coupled with a deep understanding of the tech stack can yield programs that are truly timeless. It is this art form that continues to drive me to study more about computers and to one day be able to write software that show us that computers are indeed fast and useful, and that they can be much faster and way more useful than we think.