An argument for the command line
Before there was GUI (Graphical User Interface), computers displayed text, they got input as text, and gave text as output. Certainly GUI appealed to a lot of people and made them to use computers, but business that are multimillion dollar worth ones used command line, that is text interface terminals for their computing needs, and they were happy with it.
Today we are in a wave where we need to make computers idiot-proof, even a baby should be able to use it, the intellectual person is the last customer who we aim for. We programmers seems to think the world is filled with non-intellectuals and we must never write nice informative command line systems for the intellect, and that’s where lot of software problems start.
Command line is tough to use?
One misconception is command line is tough to use. To look at this months calendar this is the command I use on my computer:
$ cal
May 2023
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Now try to find on which day lies August 15th 1947, for me it took less than 5 seconds, what about you using an GUI?
$ cal aug 1947
August 1947
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Of course, you need to memorize the word cal
and read its documentation to use it, but my question is has the humanity got so stupid that shies away from reading things about tools it needs to use?
Though there are GUI programs, I wish there was command lines tools that would be simple and fast to use.
Programmers use command line
We programmers always use command line tools. The top programming languages are all text based languages and not visual one, though visual languages do exists, they are good for building apps fast initially, but they get bloated with complexity. The vast servers that run the internet run on GNU/Linux whose interface is the command line and do not have fancy Windows OS or Apple OS in it, those OSes are bloated with unneeded GUI. We programmers till to date trust text interfaces.
Very fast to develop command line applications
Command line tools can be developed very fast, one need not worry a lot about display logic, fonts, colors and blah blah. It’s just information in and information out. Since we are limiting the options a lot without display logic and all the complexities and permutations the comes along with it, we can concentrate on solving the business problem and develop the app than worry about styling glitter.
Train people
One thing with command line is, to use it, one has to train people, but once they are trained, they become super powerful, far powerful than people using GUI. To train people, you need to hire people who are ready to learn, and people who would like to understand your business and learn to use a tool to enhance it will definitely won’t be a stupid and would demand more money. May be businesses today want less paid large numbers of inefficient idiots, than productive intelligent high paid people. Maybe that’s what has killed command line business apps.
One question I would like to ask business people is, do you think business built relying on idiots will out last business built with people who would like to think and learn?
Information matters
Ultimately it’s information that matters for human development, tetris played on game boy is more exciting to me than tetris played on a touch screen phone. Gameboy just delivers information in monochrome and does not worry about the shininess of the app, does not worry about color of the blocks and the app animations are kept to a minimum.
In a logical situation its information and truth that matters than shininess, glitter and glamour. Command line apps gives you raw information without the need for the unnecessary stuff.
The age of voice
The age of voice I think will usher in command line development, voice is just information in which gets converted to text, this text is fed into a program that mostly outputs a text, this gets converted to voice and sent back. Developing apps that take in information and transform it to another piece of information will be refreshing for developers than to concentrate on nasty GUI’s.
Books are still there
Even though we have got movies, books are still there, they are easy to produce than movies, they deliver concise information to the reader. The story telling world seems to still cater the intellect though things can be done in much difficult visual way of movies, why not we app developers do the same?
In case of app development, developers and businesses treat their users as not intellectuals who like to see right information on their screen, but they treat people as kids who like to see shiny things on screen. Common info tech world, serve the intellect than serving people who like glitter.