started work on modern cli renaissance
This commit is contained in:
		
							parent
							
								
									f6136f5e3a
								
							
						
					
					
						commit
						48c42f11db
					
				
					 1 changed files with 87 additions and 0 deletions
				
			
		
							
								
								
									
										87
									
								
								content/posts/rustclirenaissance.adoc
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								content/posts/rustclirenaissance.adoc
									
										
									
									
									
										Normal 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.
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue