3 ms·
The command line isn't an abstraction: a particular shell is, sure. Directly inputting machine instructions is a form of a command line. At its most basic the c
by wfo 11y ago
The command line isn't an abstraction: a particular shell is, sure. Directly inputting machine instructions is a form of a command line. At its most basic the computer is executing an ordered sequence of commands and you need a way to tell it to execute the commands you wish. Machines run on a sequence of function-argument instructions -- this is fundamentally what the command line is. I suppose you could invent a GUI that lets you click on the opcodes and memory addresses you want to execute but that's bordering on silly. It's always going to be very awkward to capture fundamental computation with a GUI unless the way the machines work changes in a big way.
Every machine in existence has a command line interface. Some of them have GUIs built on top of that. Sounds pretty fundamental to me.
- tormeh 11y ago>Every machine in existence has a command line interface. No they don't. Embedded computers do not have command lines, for example. Embedded computers don't give a shit about text. Most computers do not accept commands at all. As for those who do, some don't accept it in text form, for example gaming consoles or punch-card antiquities. Command lines are the consequence of keyboards, and whenever you see a computer on which a keyboard cannot be attached or emulated (phones) then you're looking at a computer without a command line.
- wfo 11y agoOkay, a trivial and meaningless nitpick but a technically accurate one. Every general purpose computing machine that you can interact with and reprogram can be done by command line. Sometimes you have to plug another machine and use ITS command line to send communications to the original machine. I'll agree with you that microwaves do not have command line interfaces but calling them "computers" is quite a stretch.
- tormeh 11y agoNo, it's not a meaningless nitpick! Yes, general purpose computers need to be programmed, but the reason we do it with a command line is because we prefer keyboards for data entry. When we stop using keyboards we will stop using command lines, just as we've stopped using punch cards. Everything that's not manually and physically setting voltages on memory is an abstraction. It's important to note that the command line is more an UI than an abstraction, though. Where the command line is on the abstraction level depends on implementation. Which one UI we use depends on convenience.
- vacri 11y ago> Everything that's not manually and physically setting voltages on memory If you're going to be that pedantic, then you should go all the way and note that there are computers that have neither memory nor use electricity.
- wfo 11y agoWe prefer keyboards for data entry because keyboards are what enter the actual data we need to enter: we prefer typing text over the 'point and grunt' method of GUIs, where some interface takes our clicks and tries to intelligently convert them to command line instructions using context and guesswork. Once we've deleted the written word from human existence and no longer have need of text, have transcended proper known computational structure and can express computations soley by thought and avoid programming altogether certainly we will move beyond the command line. The command line remains the simplest, cleanest, most leak-free abstraction we have to interact with a computer effectively. I'll agree with you that it's possible there's a better one, but we've been trying for 40 years and haven't even come close -- all we've done is written some translations which let people enter command line instructions by pointing and clicking and having the machine guess how to interpret it instead of typing what they actually mean. I think it's the best we're ever going to get though I'm happy to leave room for optimism if you have any. In the meantime, those of us who have to get work done (I assume you are one of our cohort) will live in the real world and use it without complaint. The only reason the command line is complicated is because computers are complicated. If you want to use computers in a deep way you can't hide behind the GUI and run away from actually dealing with the machine forever.
- JoeAltmaier 11y agoI am honestly almost speechless at that. The command line is complicated, because people are terrible at designing console apps and parsers. They end up with two or three ways of expressing anything, and give little or no clue (usage? really?) as to what they mean or how they differ. Clean? I could agree with 'concise' but not clean. Some apps take multiple switches behind a single cue character (is it '/'? is it '-'? '--'? something else?) and some can only parse one at a time. Some take switches before text and filenames, some after, some have a mix. Command line apps are the sort that only a mother could love. They are ugly, opaque, have an enormous learning curve, and even experts tend to type them into files because they would hate to have to craft them all over again each time they need them. Macros; cheat sheets; scripts are all crutches to escape the tyranny of command lines.
- digi_owl 11y ago> I suppose you could invent a GUI that lets you click on the opcodes and memory addresses you want to execute but that's bordering on silly. Makes me think of the Altair 8800 front panel...