Stop asking your students to write command line UIs
How often have you used a UI like this?
/==========================\
| 1. List files |
| 2. Show the current time |
| 3. Show Top |
| 4. Quit |
\==========================/
Enter your selection:
Even if you are a banker, travel agent or a medical doctor I would
argue never. These groups are unfortunate enough to still
have to use arcane command line interfaces to do unspeakably complex things
like recording last week's hours or reserve a ticket to your home town. But
none of these systems are razor thin wrappers for simple shell tools - they
are that way because they are really hard to replace. And more importantly,
no employer is ever going to ask anyone to make a menu based command line
UI for their shell script.
It just doesn't happen anymore. It is not a valuable skill. ASCII art is
recreation, not work. So the time spent fiddling with echo
and
read
is wasted, and could be put to better use.
There are many generally applicable skills you can teach shell newbies:
-
The Unix philosophy: writing programs that do one thing, that work with other programs, and
that handle text streams. An hour of cobbling together a pipeline of
grep
,cut
and a light sprinkling ofsed
can save days or weeks of data processing which might take a week to write in Python or six months in a spreadsheet. -
On the flip side, they should know the
limitations of the shell. Why
while read
is several orders of magnitude slower than other language equivalents. Why writing secure shell scripts is basically impossible. Or why big shell scripts are a maintenance nightmare compared to other languages. - Which tools are available to do what. There are so many useful tools you could probably spend a week full time just touching briefly on each of them. Check out for example BusyBox for a set of generally available tools.
- Where to look for answers and how to ask good questions.
No webmentions were found.