Chuck Carroll


On Terminal-Based Programs and What's Optimal

Published: 2024-02-24

I recently made a post that that after a decade hiatus I've switched back to the GNOME deskotop. In it I made the the comment that "it's just not optimal to do everything in a terminal". Based on some nice feedback, I should have made the caveate that it's not optimal for me, and this comment primarily stemmed from frustrations with a particular program. However it got me thinking about how much it really is more optimal (personally) to use a terminal to accomplish certain computing tasks.

After switching desktop environments, I wanted to sanity check myself to make sure I wasn't falling for some unixporn meme or obsessing over trying to force all my computing tasks into a terminal (spending hours configuring and fiddling) so I decided try out some of the latest GUI programs that really showcases the best of GNOMEs design language. For example, I tried various RSS readers and music programs to see if they could replace what I've been using over the past 5 years. For RSS, I tried a few different programs but NewsFlash seemed to be the prettiest and most function. For music, I flopped back and forth between Rhythmbox and Lollypop. After a few weeks, I learned that nothing beats newsboat for RSS and cmus for music playback. Maybe it's just personal preference and familiarity, but I'm able to do things more effeciently. Additonally, although GNOMEs file manager is beautiful, functional, and has some great features, I do file management and various file operations much faster using ranger, a terminal-based file manager.

Although not as immediately intuitive, command line utilities typically have more functionality. According Neal Stephenson in his book In the Beginning was the Command Line..., he points out that GUI programs are simply metaphors for command line utilites. Stephenson is a famous science fiction author and I don't think this particular book is widely known, but it's short and interesting for those of us that like to nerd out on stuff like this. Written in 1999, he argues that the command line interface provides a more efficient and customizable way to work once the user attains a level of technical proficiency. Graphical user interfaces hide the underlying complexity from users and hinder them from learning and really understanding their systems.

Although there's a challenging learning curve, it's incredibly rewarding to learn how to do things in a terminal. However, "what's optimal" really comes down to technical knowledge, experience, personal preference, and a motivation to go deeper.

Thanks for reading. Feel free to send comments, questions, or recommendations to hey@chuck.is.