Slaughtering holy cows
2024-02-15

slaughtering holy cows

	Holy cows. We all have them. The software we've been using for decades and see no reason to change because they're working perfectly fine. Most often there isn't any reason to move to the new shiny, you're just creating an unnecessary workload and potential for problems that were already solved with the existing solution. But sometimes.. sometimes you're just being stubborn.

Here's a list of software that I considered absolutely irreplaceable that I've now.. replaced. And I'm better off for it.

Zsh - nushell

	"Nu pipelines use structured data so you can safely select, filter, and sort the same way every time. Stop parsing strings and start solving problems."



And that's the primary reason. I've found myself becoming almost entirely data-centric in the last few years. While it might seem like a buzzword once you adapt your entire workflow changes. nushell allows you to directly access data and format the output so that's it's pipe'eable between applications.

The only real con to nushell is that it's still not available by default in many distributions packaging system. But it's getting there.

tmux - zellij

	"Zellij is a terminal workspace. It has the base functionality of a terminal multiplexer (similar to tmux or screen) but includes many built-in features that would allow users to extend it and create their own personalized environment."


Zellij is tmux, only with ALL of my default configurations applied by default. I'm serious. Want to see what my configuration file looks like for zellij?

pane_frames false

That's it. It could also be a command line argument of course. Cons? None. It's perfect (for me).

vim - helix

	"A post-modern text editor."


Now this was a massive one. Vi and then Vim was the center of my universe for 30 years. Helix allowed me two main benefits: no more plugins since everything I need is built-in and the Kakoune way of handling selections. It's deceptively simple, instead of doing cw to change a word, you do wc to first select then change the word. Sounds like it doesn't make that much of a difference? It does.

No cons. It's better than vim in every way.

bash - python

	"Python is a programming language that lets you work quickly and integrate systems more effectively."


Now this just isn't fair. I fully admit that. Python != bash. But after moving to nushell and using its scripting language I've also moved to straight up using python for all other shell scripting. Its data handling and more logical syntax and structure has just made life better than trying to remember how to do something in bash.

docker - podman

	"Manage containers, pods, and images with Podman. Seamlessly work with containers and Kubernetes from your local environment."


Podman is entirely compatible with docker which means migrating took me less than an hour for all systems. It allows you to run rootless which is a security benefit and also eases administration (even though docker wasn't really a problem to begin with). Ultimately I just prefer the daemonless approach.

openvpn - wireguard

	"WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN."


I never had any massive issues with openvpn. It worked fine for as long as I used it. But wireguard is sleeker, even easier to configure and is widely supported. There's no reason to use openvpn anymore unless you're forced to by external requirements.

debian - nixos

	"Nix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative and reliable systems."


Never thought the day would come but the benefits of nix actually outweighs the benefits of debian. I'm not going to go too deep into it as I'll be detailing my detour into a variety of linux distributions after a harddrive failure collapsed my workstation a while back. Spoiler alert; it was absolute pain.. until I found nix.

The main benefit is the declarative nature of nix and completely rebuildable nature of nixos. The one con is that you really, really won't feel familiar for a bit even if you've used linux since before slackware existed like I have (flex flex).

how is rust doing this?

	You might have noticed a trend with these suggestions, a lot of them are written in rust. Yes, I use rust, but I didn't pick these tools because of it. In fact it's a total coincidence, sometimes I noticed it after I began using the software.



Why is this? I'm not sure. I think, and this is complete speculation, it's because rust developers embrace new concepts and technology by default (since they've accepted rust). The RIIR (Rewrite It In Rust) has become a meme where zealous rust advocates incessantly badger other projects to rewrite perfectly functional software in rust. But we're not all like that. Promise. And when something does benefit from being rewritten in rust a lot of holy cows of the previous language are slaughtered, and brand new concepts embraced since it's being rewritten anyway.

Good stuff(tm).