6 ms·
The Return of the Command Line Interface
- trothamel 11y agoI kind of think that the various voice assistants (Google Now, Siri, and Cortana) provide a sort of alternative command line. At least with Google Now, I find it's only useful if I memorize a command sequence I know works ("Ok Google, Navigate to ____") rather than allowing it to figure out what I want. I sort of wish this voice command line was better documented, as it would make the tools more useful compared to a world where we try random sayings, and get disappointed when the software fails.
- digi_owl 11y agoAnd here i thought MSDOS watered down the CLI concept...
- pessimizer 11y agoI've been a little obsessed with that kind of a formal voice interaction for a long time, best illustrated for me with the Play For Today(/Tomorrow) episode "Shades": https://youtu.be/7oFhdQJxhmc?t=481 https://youtu.be/7oFhdQJxhmc?t=481 I love the way that there's formal-speak for machines that everyone just knows, and expert systems to help with complex requests.
- dllthomas 11y agoInteresting. For a while I've been wondering (in no particular depth) what a scripting language would look like if you designed it to be spoken.
- vegabook 11y agoBecause moving a pointer around and clicking on stuff is essentially quite a low-dimensional interaction. There are a bunch of things on screen and each is either clicked or not (okay, maybe hovered), at a fairly slow pace. The typical 87-key keyboard meanwhile gives you 87 on/offs right there and a good typist can be doing dozens of these per minute. Compare the speed with which a good vim user manipulates a document, with how you have to do it in Word. Of course, a graphical interface provides a much higher dimensional output device, but as an input medium with only a pointer, it's way behind the power of a well thought out command grammar.
- digi_owl 11y agoSome of the real old timers of computing referred to WIMP as the point and drool interface, iirc.
- endgame 11y agoCorrect: http://catb.org/jargon/html/P/point-and-drool-interface.html http://catb.org/jargon/html/P/point-and-drool-interface.html
- golergka 11y agoYou just perfectly described why I switched to VIM.
- teddyh 11y agoThis is why you should use a graphically aware and displayed program, using a keyboard input interface. Like Emacs.
- pinaceae 11y agobut using photoshop without a GUI kinda sucks, no?
- snogglethorpe 11y agoYeah, obviously which interface is "best" depends on a huge number of factors, context, task, user, etc, and there is no universally best choice. Even in the context of a graphics editor, though, where a GUI makes a lot of sense generally, I often find myself wishing for a way to actually specify operations using some language rather than using the GUI. For instance, I select a layer, and then want to move it exactly 50 pixels down, and then rotate it 45 deg and halve its intensity. Using the GUI for that is often a cumbersome, if straightforward series of steps that require a lot of busywork, and in many cases I have to very careful if I want precision (e.g. carefully looking at the edge guides to make sure I move the mouse exactly 50 pixels). For an experienced user, an equivalent textual command to do the same thing would probably be far quicker and more precise (assuming a halfway decent implementation). Really you often just want a system that's flexible enough to seamlessly integrate both types of interface[+], and let the user choose which is best for them and the specific task at hand, hopefully allowing the user to use the GUI at first (for ease), and learn equivalent textual commands as he gains more experience... Unfortunately that's not only more work to implement, but runs afoul of those usual villains in any human endeavour, religion (not "real" religion :) and tribalism... >< [+] Of course, there are actually more than just two choices. For instance there's a common split between "quick and simple" textual commands, like a typical unix shell, and "real language" textual commands, e.g. allowing commands to be specified in Lua or some other "real" language. Similarly GUIs can come in a wide variety of flavors.
- kayman 11y agoFor power users everywhere, command line was always there.
- teddyh 11y ago“In 1979, when I was working at IBM, I wrote an internal memo lambasting the Apple Lisa, which was Apple’s first attempt to adapt Xerox PARC technology, the graphical user interface, into a desktop PC. I was then working on the development of APL2, a nested array, algorithmic, symbolic language, and I was committed to the idea that what we were doing with computers was making languages that were better than natural languages for procedural thought. The idea was to do for whole ranges of human thinking what mathematics has been doing for thousands of years in the quantitative arrangement of knowledge, and to help people think in more precise and clear ways. What I saw in the Xerox PARC technology was the caveman interface, you point and you grunt. A massive winding down, regressing away from language, in order to address the technological nervousness of the user. Users wanted to be infantilized, to return to a pre-linguistic condition in the using of computers, and the Xerox PARC technology’s primary advantage was that it allowed users to address computers in a pre-linguistic way. This was to my mind a terribly socially retrograde thing to do, and I have not changed my mind about that.” — Eben Moglen, interview, 2000¹ ① http://www.cabinetmagazine.org/issues/1/i_moglen_1.php http://www.cabinetmagazine.org/issues/1/i_moglen_1.php
- digi_owl 11y agoInteresting to note that further down he talks about what i suspect was X11, and being able to use that to run something over there that presents the results over here. This in that a decade or so later we are basically reimplementing that using HTML+JS+CSS.
- agumonkey 11y agoInteresting fellow: ``` Moglen believes the idea of proprietary software is as ludicrous as having "proprietary mathematics" or "proprietary geometry." This would convert the subjects from "something you can learn" into "something you must buy", he has argued. ```
- meeper16 11y agoCommand line interface = My own garden Microsoft Bob'ifying software development = McDonalds The Ying: Complex systems require the ability to automate instructions and tasks, including low level and high level tasks and without being inhibited or insulated by the glory of a gui. The Yang: Automation promises to simplify complex systems and which sometimes results in GUIs.
- dTal 11y agoGood comment, but it's 'yin" :) (and while I'm at it they aren't capitalized either)
- espeed 11y agoWe're getting ready for the Pipem developer launch, which is an open platform for building text/voice/email "command line" interfaces to existing online services: http://pipem.io/ http://pipem.io/ Here's our Pipem pitch at Tech Wildcatters demo day this summer: https://www.youtube.com/watch?v=o_0DSmZhLGw https://www.youtube.com/watch?v=o_0DSmZhLGw
- noonespecial 11y ago$>echo $COOLJ "Don't call it a comeback, I been here for years"
- bigger_cheese 11y agoI find smart phone UI's really annoying. I'd love it if my phone behaved more like Unix. It would be great to be able to do stuff like grep the address book to extract contact details, edit a config file to change ring tone, manage alarms with cron use apt to update all apps etc.
- pinaceae 11y agowhile driving.
- wingerlang 11y agoYou are one of 0.0001% that would want that. The only thing that makes me annoyed on a smartphone is pretty much the switching between UI and typing things.
- bigger_cheese 11y agoMy main gripe is I really hate how many screens and presses I have to go through to set what should be simple options. I use my phone (2 to 3 year old Android) as my alarm clock. If I want to sleep in for an extra 20 mins tomorrow I need to. 1. Press clock button. 2. Press Alarm button 3. Deselect my current alarm to deactivate it 4. Press Add Alarm 5. Tap repeatedly on the "scroll wheels" to select correct time If the phone had something resembling a CLI you could just echo the newtime + Alarm into the scheduler. Another example I get a text message from someone who is not a contact. I want to save that number I have to open the message takes about 5 or six clicks to "copy" the number into address book. Why can't I drop to command prompt "echo Phone no. Name >> address book
- robwormald 11y agoI'm not a huge Siri user, but "Hey Siri, set my alarm for 8:50" works great and its something I use all the time, mostly because of what you're describing.
- wingerlang 11y agoI can't say for Android, but alarm is usually quite sucky on iOS as well. I've set it up to be recurring though, and I haven't had these annoying issues for months. If you're a developer and have the time and effort required, you could always root/jailbreak your phone and fix the issues you have for yourself. EDIT: it is also likely that people have already solved it, or made tools that can solve it. I know people are already running cronjobs on their iPhones, there's even an scheduling automation app and so on.
- BatFastard 11y agoCommand line interfaces are two edges swords. The purpose of a GUI is to make explicit what actions are available to the user. Command line interfaces use implicit knowledge. Implicit knowledge is more powerful in almost every way. Since it allows a much richer set of tools and the ability to combine tools, in a way that is not possible in a GUI. The issue with command line is that it requires significantly more investment of time and knowledge learning the implicit tools.
- ploxiln 11y agoAnd yet, command-line commands are much more explicit than a click or drag in a GUI, which depends on all the implicit state in the rest of the application. Really, in both cases, some things are implicit and other things are explicit, these aspects really don't set the two worlds apart. But trying to teach or instruct someone, it's much easier to communicate a specific command-line command, than explain where to click / drag (especially when GUIs are re-designed all the time).
- agumonkey 11y agoVery good point. Both of you. CLI have zero discoverability (even with good completion, you're greeted with a vacuum, for a newcomer that's very weird). GUI are far too stateful and coupled. Somehow ipython notebooks are a nice attempt at blending both. You have an easy linear visible state, yet you compose words.
- aexaey 11y agoA good double-tab auto-completion in a CLI gives explicit boundaries and flattens learning curve almost to the GUI level, while letting you retain full flexibility and expressive power of a CLI. This work wonders in systems where complete set of commands is (semi-)fixed, like Cisco IOS CLI. *nix CLI is somewhat behind on this front, unfortunately.
- deleted 11y ago[deleted]