stottj / Command-Line

0 stars 0 forks source link

Research the history of the Command Line Interface (CLI) #1

Closed stottj closed 1 year ago

stottj commented 1 year ago

Ticket: Research the History of the Command Line Interface (CLI)

Summary

Research the historical development, key milestones, and notable figures in the Command Line Interface (CLI) evolution.

Description

Tasks

  1. Trace back to the initial concept of the CLI: Identify the first systems that used command-line interfaces.
  2. Identify key milestones:
    • Development of early shells like Bourne Shell, C Shell, etc.
    • Introduction of scripting capabilities
    • Open-source contributions
    • CLI-based utilities and tools (e.g., grep, awk, sed)
  3. Note important figures:
    • Who were the pioneers?
    • What organizations were pivotal?
  4. Highlight major shifts:
    • Transition from text-based to graphical interfaces and how CLI maintained relevance.
    • Evolution with cloud computing and DevOps culture.
  5. Examine current state:
    • Modern CLI tools and frameworks (e.g., PowerShell, Zsh)
    • CLI in cloud computing and microservices
  6. Compile information into a coherent report or presentation.

Acceptance Criteria

Priority

stottj commented 1 year ago

CLIs evolved from communications conducted over the teleprinter. Eventually the mechanical teleprinter was replaced by a keyboard and screen emulating the teleprinter, doing this allowed for additional functions such as cursor moving on the screen, local editing, etc. This was the birth of CLIs. CLIs at the start were then integrated by hardware but eventually all CLIs became software based.

Bourne Shell, created by Bourne and released in 1979 as part of V7 Unix release. It was intended to be a scripting language. It became famous when it was included in the The Unix Programming Environment book by Brian Kernighan and Rob Pike presenting the shell in tutorial form. Bourne shell allowed scripts to be used as fitlers, provided control flow and variables and input/output control.

C Shell, which was developed by Bill Joy, was put in use after Joy critized Bourne shell as being to unfriendly for users in the late 70s. C Shell was designed with users in mind, its interactive features and overall style made it easier and faster to use.

Bash is a free software replacement for the Bourne Shell created by Brian Fox in 1989. Bash improved upon it's successor by providing basic debugging and signal handling while still being able to run majority of Bourne scripts without modification.

grep (global /regular expression search/ and print) is used for searching plain-text data sets for lines that matcha specific expression. grep was first put in use in 1973 by Ken Thompson.

awk was developed by Aho, Weinberger, Kernighan in 1977 as a way to easily manipulate numbers and strings. It is used for text processing and often used as data extraction and reporting tool.

sed (stream editor) is used to parse and transform text. It was created in 1974 by McMahon. sed is used to only manipulate text so it is used this day and simple text parsing.

Key orginazations during the early days of CLI development were MIT computation Center for creating RUNCOM tool executing the first command scripts. Bell labs for enabling Unix Shell which then kicked off the different brands of shell developments of the 70/80s.

During the mid 80s and 90s, Apple and Windows saw the beginning of the Graphical User Interface. Even with the growing use of GUIs, CLIs were still in use for system admin, computer programming and batch processing.

With the current framework of the cloud CLI is still being used today. It is often used to create and manage piplines, branches, repositories. CLI has integrated with tools such as github, docker, azure.

tupleHunden commented 1 year ago

Looks good to me 👍🏻 Didn't realize that's what awk stood for, neat!