diff --git a/content/posts/rustclirenaissance.adoc b/content/posts/rustclirenaissance.adoc new file mode 100644 index 0000000..91108a0 --- /dev/null +++ b/content/posts/rustclirenaissance.adoc @@ -0,0 +1,87 @@ ++++ +title = "The modern CLI Renaissance, In Rust?" +date = 2024-03-04T12:20:02-06:00 +draft = true ++++ +:caution-caption: pass:[] +:important-caption: pass:[] +:note-caption: pass:[✏️] +:tip-caption: pass:[💡] +:warning-caption: pass:[] +:toc: +:toclevels: 6 + +// btop, 2021, c++ +// bat, 2018, rust +// helix, 2020, rust +// zoxide, 2020, rust +// starship, 2019, rust +// difftastic, 2018, rust +// git-delta, 2019, rust +// nushell, 2018, rust +// hyperfine, 2018, rust +// sd, 2018, rust +// tre, 2019, rust +// typst, 2019, rust +// yazi, 2024, rust +// fd, 2017, rust +// ripgrep, 2016, rust +// ast-grep, 2022, rust +// pueue, 2015, rust +// diskonaut, 2020, rust +// broot, 2018, rust +// just, 2016, rust +// zellij, 2020, rust +// scc, 2018, go +// fzf, 2013, go +// lazygit, 2018, go +// grex, 2019, rust +// micro, 2016, go +// oh-my-posh, 2019, go +// nnn, 2016, c +// qalculate, 2016, c++ +// eza/exa, 2014, rust +// lsd, 2018, rust +// neovim, 2015, c + +// cat, cd, rm, cp, man was included in the first version of unix, in 1971 +// ls specifically can trace its history to 1961 (https://tldp.org/LDP/LG/issue48/fischer.html) +// vi was made in 1976 +// sed in 1974 +// awk in 1985 +// bc in 1975 +// diff in 1974 +// make in 1976 +// vim in 1991 +// ssh in 1995 +// midnight commander in 1994 +// rust 1.0 in 2015 + +The terminal has been a staple of computer user interfaces since before computer monitors were available, +with some of the first computers offering an interactive mode in the late 1950's. +The 'modern' Linux terminal traces its linage to the very first version of Unix, in 1971. +Many utilities that a Linux user uses every day, +commands like `rm`, `cat`, `cd`, `cp`, `man` and a host of other core commands trace their initial versions to this first version of Unix. +Other tools are a bit newer, such as `sed` (1974), `diff` (1974) `bc` (1975), `make` (1976) or `vi` (1976). +There where a few more tools introduced in the 90's, such as `vim` (1991) and `ssh`, (1995), but you get the picture. +The majority of the foundational CLI tools on a Linux pc, even one installed yesterday, are older than Linux itself is. + +== Ok, so? + +Now, theres nothing wrong with this, the tools work fine still, but, +in the half-century since they were first written, +Terminals, users, and the broader linux ecosystem have all changed. +Terminals now have capacity to display more colours, Unicode symbols, and even inline images. +TODO: how have things changed? + +Additionally, and perhaps more importantly, our knowledge has expanded, +our knowledge of user interfaces, +of what works and what doesnt, +of what usecases are common and what usecases are niche, +and the value of documentation that is easy to find and digest. + +== The revival of the terminal + +In recent years, Ive noticed a resurgence in development of command line utilities. +Instead of just developing tools that dont exist, +Ive noticed that people are remaking, rethinking, tools that have existed since the early days of Unix.