Hacker News new | ask | show | jobs
by 9nGQluzmnq3M 2551 days ago
They don't say archaic, they say "learning to code is beyond the reach of most people", which seems like a fair statement.

My kids learned how to use touchscreens as babies. They learned how to manipulate GUIs around the time they entered school. But they still regard my terminal window as black magic, and I'm not sure how to even start explaining what's happening when I punch in commands.

That said, I agree the article is overstating the impact this will have: computers talking to computers has been a thing for a long time, they just use APIs (which are carefully crafted to be as umambiguous as possible) instead attempting to parse ambiguous human speech and pipe it into arbitrary web pages.

3 comments

> and I'm not sure how to even start explaining what's happening when I punch in commands.

Though perhaps not trivial, it seems easier than, say, explaining what you're doing when you fix/manipulate things on a car engine.

The terminal uses a form of language to give commands, and the result is the execution of the command and/or some sort of printed output.

`ls -lah` could be explained as 'a fast way of inputting' the equivalent of "Alexa, tell me in detail what files are in this directory". (Yes, you would have to explain something basic about files and directories, but that still seems reasonable.)

FWIW, I’ve given this talk to people unfamiliar to the terminal and they’ve been able to get the gist of how basic things work in under an hour.
That's because finding people unfamiliar with the terminal that are willing to spend an entire hour in front of a terminal learning how to use it is the hard part.
My original suggestion was envisioned as a 3–5 minute explanation.
The problem is that CLIs are undiscoverable. You either know what `ls` is or it's just a bunch of random letters. Your average user will never learn a new unforgiving language just to talk to their computer.

You can try to re-experience that frustration for yourself by playing an interactive fiction text adventure game. For example in http://adamcadre.ac/if/905.html, the first few things I tried were: "left", "go left", "move left", "map", "where am i", "help", "?", "tell me what I can type", "fuck you", "exit" (you've now exited the room and are in the living room)

Sounds like a lazily written cli, typing help in bash gives usefull information and also refers to info. So you get an overview of the available commands and a description of the basics with minimal effort.

Meanwhile I can play hide and seek with the tools I need in Gimp for hours.

Indeed. What if the cli had both natural language syntax, large alias/synonym matching, and command prediction (eg similar to Gmail's recent feature)? That might reduce the non-discoverability issue to about the same as most direct manipulation ui (where you have to look through menus for the "right" item to click on).
Mathematica has something akin to command prediction and it’s also a very nice way to learn the language.
>and I'm not sure how to even start explaining what's happening when I punch in commands.

When you see your kids do something with a GUI ask them to write down a list of instructions so that you can do it too. That list of instructions is basically what using a CLI is, it's just less discoverable.