started work on modern cli renaissance

This commit is contained in:
Gabe Venberg 2024-03-04 18:32:06 -06:00
parent f6136f5e3a
commit 48c42f11db

View file

@ -0,0 +1,87 @@
+++
title = "The modern CLI Renaissance, In Rust?"
date = 2024-03-04T12:20:02-06:00
draft = true
+++
:caution-caption: pass:[<span style="font-size: 2em">☠</span>]
:important-caption: pass:[<span style="font-size: 2em">❗</span>]
:note-caption: pass:[<span style="font-size: 2em">✏️</span>]
:tip-caption: pass:[<span style="font-size: 2em">💡</span>]
:warning-caption: pass:[<span style="font-size: 2em">⚠</span>]
: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.