Forgot your password?
typodupeerror
GUI Software IT

The Case Against GUIs, Revisited 720

Posted by timothy
from the what-part-of-ls-thor-don't-you-understand? dept.
snydeq writes "Deep End's Paul Venezia advocates the importance of the command line, in light of the increasing use of GUIs in today's technologies, as well as the increasing perception among admins that proponents of the CLI are dragging computing back to the 'dark ages of the C:\ prompt."
This discussion has been archived. No new comments can be posted.

The Case Against GUIs, Revisited

Comments Filter:
  • I use Linux specifically for the powerful Bash-fu.
    • by twollamalove (935519) on Tuesday April 05, 2011 @07:12PM (#35726200)
      Yes, but to master same functionality using windows batch files it takes a lifetime of discipline
      • by kikito (971480) on Tuesday April 05, 2011 @07:49PM (#35726750) Homepage

        And masochism

      • Re:First post (Score:5, Interesting)

        by sortius_nod (1080919) on Tuesday April 05, 2011 @08:01PM (#35726918) Homepage

        Batch files are easy. The only people I've found to have trouble with any sort of scripting are people who grew up only using GUIs.

        That being said, I grew up on old Macs and only started using windows at 15 when I got my first job in a computer shop. Not having used a CLI previously I dove straight into it and learnt all I could.

        The problem with the whole user/CLI disconnection is that there is a perception among certification/uni degree holders that once you finish your qualification you don't need to learn anything further. I saw this happen to many people who graduated with my fiance, they learnt Windows, learnt how to use the GUIs for admin, and nothing more.

        To be honest, I blame complacency and the fear of intellectualism for the decline in the CLI. It seems to be "cool" to be stupid in developed nations, intellectualism and learning are almost feared. Maybe it's due to editorials damming intellectualism, maybe it's to do with politicians damming intellectualism. I'm not quite sure, whatever the cause it's one of the worst things to happen to humanity.

        • Re:First post (Score:5, Insightful)

          by Caerdwyn (829058) on Tuesday April 05, 2011 @08:54PM (#35727518) Journal

          By your own admission you've devoted half a lifetime or more to developing computer skills. Should everybody have to do that? Are people who don't devote half a lifetime specifically to computing skills "stupid' and "fearful"?

          This is just a form of elitism. I'm not even going to call it intellectual elitism, as preferring CLIs is no more a demonstration of superiority or intellect than preferring GUIs is a demonstration of inferiority or stupidity.

          • Re:First post (Score:5, Insightful)

            by msauve (701917) on Tuesday April 05, 2011 @09:09PM (#35727674)
            "By your own admission you've devoted half a lifetime or more to developing computer skills. Should everybody have to do that? Are people who don't devote half a lifetime specifically to computing skills "stupid' and "fearful"?"

            Yes, and yes, if their career is administering computers (or computer networks, which is what the article is about).
          • To prefer CLI is not elitism; anyone who has used it extensively knows that there are things that you can do better, faster, and more precisely using CLI. That is its benefit-- for those core technologies that are hanging around, learning CLI is a way of improving your efficiency.

            The benefit of GUI, however, is that if you implement a new technology or service on your network, you dont have to spend years mastering the intricacies of the command line. The GUI lets you start using the product quicker.

            Both

        • Re:First post (Score:5, Insightful)

          by im_thatoneguy (819432) on Tuesday April 05, 2011 @09:03PM (#35727612)

          The trouble with CLIs though is that the functions aren't always named whatever you would expect so you *have* to look up the function name and formatting.

          If a command line could be written as:

          "Take this image, resize it by 50% and increase the contrast 10%" then people would use CLIs all the time.

          Instead it goes:

          ImageProcessor ... /help ... ...
          ImageProcessor -scale 50p... /help ...
          Image Processor -scale 50p -filter (contrast,1.1) .. /help ...

          etc...
          You have to keep looking through a huge documentation system. GUIs at least present you with the documentation *AS* the interface.

          You don't need to know what the "Contrast" filter is exactly called, you just look through the list by default and choose the one that closest matches what you want.

          If we had smarter more adaptable CLIs people would be far more familiar instead you find out you missed a comma somewhere and it takes you 5 minutes to track that down. Or you try to figure out if adjusting contrast is even a function at all.

  • This, perhaps... (Score:5, Insightful)

    by troff (529250) on Tuesday April 05, 2011 @07:10PM (#35726172) Homepage Journal

    ... speaks more of the admins who assume that "CLI" == "C:\ prompt".
    Or the idiots who think "CLI" == "the GUI in front of me is therefore made unusable". The people at "GUI Industries" can't make a link or shortcut to the appropriate script?

    Why would you trust an admin who can't, as TFA indicates, edit a text file?

    • by NFN_NLN (633283) on Tuesday April 05, 2011 @07:42PM (#35726664)

      GUI = makes it easy to do one off tasks, because the interface can be made intuitive.
      CLI = makes it easy to do repetitive tasks, because they can be easily scripted.

      Even repetitive image manipulation is best achieved with scripted command line tools. Don't believe for a second someone had inserts watermarks into photos!

      • by sarysa (1089739) on Tuesday April 05, 2011 @08:19PM (#35727144)
        It seems that the one thing that bash-fu black belts and complete novices have in common is that they don't realize both can be used in parallel...
      • by lennier (44736) on Tuesday April 05, 2011 @10:06PM (#35728208) Homepage

        GUI = makes it easy to do one off tasks, because the interface can be made intuitive.
        CLI = makes it easy to do repetitive tasks, because they can be easily scripted.

        That task split between GUI and CLI is exactly what I think went wrong when GUIs were first designed.

        What we should have done was created a GUI which has exact formal one-for-one-correspondence with the underlying CLI, so that for any given task, you can use the interface of your choice that works for you - or create new graphical interfaces for the special custom jobs you end up doing multiple times.

        And it wouldn't have been that hard to do. GUIs involve message passing, but we chose not to expose those messages as scriptable 'commands' at the same level as a CLI. We hid them and required C++ and other system/application languages to send those messages in full, then exposed a tiny fraction of them to various "scripting languages". But you can't write all applications in scripting languages, so it's a lossy conversion filter.

        The result is, we've got at least three levels to our systems: a reasonably transparent 1960s-batch-system derived command/process/file based layer, an opaque 1980s Smalltalk-derived object/component layer, and finally combined applications/GUI/preference files launched by the 1960s layer which orchestrate the 1980s layer to do stuff. We can't use the 1960s layer (CLI) to do everything the 1980s layer (GUI plus services/components/DLLs) can do, because the 1960s layer has fundamental connection concepts like piping and "everything is a file which is an I/O stream" which simply don't exist in the 1980s "everything is an object" layer. It's impedance mismatch at the OS level.

        The big problem with an impedance mismatch is that you can't solve it by adding more lossy-conversion layers. It can only be really "solved" by creating a new abstraction which has the features of both, but that seems impossible now that we have a huge weight of legacy code. I'd been hoping that Linux in the 2000s would give us some hope of breaking away from the Windows cruft and coming up with a simple unified desktop framework. But GNOME and KDE seem to have just fragmented the situation even more.

        Wish I could see a plausible way out of this mess.

        • by fusiongyro (55524)

          Interesting observations. Apple did try to solve this problem with AppleScript, but there were too many unproven ideas in there together. The part you want would have been achieved if it were easy enough to develop with that you could implement your GUI by sending AS messages to your objects. If you run Script Editor on your Mac, you'll see a Record button. That button worked, ostensibly, by snooping the AS events as they were fired by interacting with your GUI.

          I think this failed to take off, or got forgot

        • Re: (Score:3, Insightful)

          by Anonymous Coward

          That task split between GUI and CLI is exactly what I think went wrong when GUIs were first designed.

          What we should have done was created a GUI which has exact formal one-for-one-correspondence with the underlying CLI, [...]

          And that GUI would be unusable for most of the time. Making a good GUI is not about just slapping together a number of widgets, it is about usability. For example, take curl. It has 139 or something options. A GUI would have to present all of them and if the GUI is to be usable it shouldn't be too hard getting to any of them, that is, it should not be hidden away somewhere deep down. Either you get a very cluttered GUI with every option visible or a GUI that is more suited for a certain task but that is not

    • by residieu (577863)
      /usr/bin/yes
    • by msobkow (48369) on Tuesday April 05, 2011 @08:02PM (#35726926) Homepage Journal

      I rely heavily on scripting for one reason: scripts can be captured in version management repositories. GUI interactions can't.

      Aside from that, my database creation scripts are huge. I'd hate to have to open each script in a GUI tool to run it instead of being able to run them all as a batch (as intended) through a bash script (which in turn invokes the compent bash scripts that actually invoke the database CLI.)

    • by 19thNervousBreakdown (768619) <davec-slashdot&lepertheory,net> on Tuesday April 05, 2011 @08:09PM (#35727026) Homepage

      Why would you trust an admin who can't, as TFA indicates, edit a text file?

      Or write a safe regex:

      $ echo '123a123b123c123' | sed 's/123.123.123./321.321.321./g'
      321.321.321.123

      Gotta love the way he hand-waved the "half hour on a Wednesday" to do the whole transition, too. As someone who's done it, it is never, ever, ever that simple. Have fun finding bugs like the above, fixing them, finding out that your fix invalidates your entire solution, approaching it from a different angle, looking up an obscure syntax you can't remember even though you use sed/awk/grep every day, finding out you've got a slightly older version or yours wasn't compiled with --enable-double-buttgrep ... sure, the "30 minutes" sounds great when you're trying to make a point, but it also sounds ridiculous to anyone who's actually done it twice.

      I love me some CLI, and I'd lose my mind if I didn't have it available, but promoting either one to the exclusion of the other is asanine.

    • Re:This, perhaps... (Score:5, Interesting)

      by lennier (44736) on Tuesday April 05, 2011 @09:50PM (#35728078) Homepage

      The people at "GUI Industries" can't make a link or shortcut to the appropriate script?

      Yes.

      This is a huge flaw in almost all current GUI models. They've reinvented a whole object/component-based architecture on top of the old process/file-based CLI-accessible portions of the OS, and then provided basically no scriptability of those objects, and even less ways to interface the topmost GUI level to any scripts you do manage to somehow cobble together.

      (Possible noteworthy exception-in-progress being PowerShell 2, Apple Automator (except AppleScript is a horrible language because it tries to be fake-English), and maybe some parts of RiscOS and OS/2. )

      But this object/scripting gap is something I noticed way back in my teens, in the 80s, and couldn't bring myself to believe that the Top Minds in software architecture had missed this glaring oversight. But they had. Apparently everyone was going to either program in raw C++, or click icons, and nothing much in between. Basically there was no thought put into anything like a 'Unix shell' for Finder / Explorer and friends.

      I mean, 5 seconds thought suggests that someone should have come up with a quick visual tool for dragging icons into a box, drawing lines between them, and having that save and load from a text file describing connections between components. And then make that a fundamental part of the OS and build all OS and application GUIs using that. If you ever came across a GUI you wanted to build for an application that couldn't be expressed in that language, then mark it as a bug in the language and extend the language.

      Then we'd have had something approaching the power of Unix scripting for visual desktops, and we would have . But no. We went for a 'all GUIs will be sealed binaries written in low-level assembler or C++" approach. Then we deconstructed the GUI as web pages, and again, first chance we got, we ripped out Tim Berners-Lee's HTML editor component from all web browsers, enforced a hard split between "web server" and "web browser", and once again destroyed the ability for users to do their own interface design and to program their own workflow.

      It's like we have this obsession with making things hard for ourselves just to keep application developers in jobs.

      • Re: (Score:3, Insightful)

        by Jeremi (14640)

        and once again destroyed the ability for users to do their own interface design and to program their own workflow.

        There's a reason for that: 99% of users don't want to do their own interface design, or program their own workflow.

        User interface design, and workflow design, are difficult. Users expect the software developers to have already done that work for them.

  • Dead on (Score:4, Insightful)

    by Hatta (162192) on Tuesday April 05, 2011 @07:11PM (#35726184) Journal

    This is dead on. Human beings invented symbolic language because it's simply more expressive than pointing and grunting. CLIs are superior to GUIs for the same reason.

    • Re:Dead on (Score:5, Insightful)

      by StikyPad (445176) on Tuesday April 05, 2011 @07:22PM (#35726346) Homepage

      Human beings invented symbolic language because it's simply more expressive than pointing and grunting. CLIs are superior to GUIs for the same reason.

      CLIs are superior to GUIs in the same way romance novels are superior to sex. Sometimes taking the time to carefully describe things in clear, unambiguous detail is important, but sometimes pointing and grunting is both more effective and and more satisfying.

      And when's the last time you edited photos, video, or audio with a CLI?

      • by rk (6314)

        Interestingly, I had to put little watermarks on about 400 images a year ago. It took about 5 minutes of scripting with ImageMagick to do it.

        If I'd done that with Photoshop or GIMP, I'd still be at it!

        • by StikyPad (445176)

          That's not really editing now is it?

          • ok, you can win by defining "editing" to be something that you can only do with a gui.

        • Re:Raises hand (Score:4, Insightful)

          by SpiralSpirit (874918) on Tuesday April 05, 2011 @07:52PM (#35726778)
          or you could have made a photoshop action while applying the first one, then told it to do the action to every image in the folder. done in less than five minutes. probably only about 1, if you know what you're doing. There's a lot to be said for knowing how to use the tools!
      • by JWW (79176)

        And when's the last time you edited photos, video, or audio with a CLI?

        This story is from a sysadmin blog!!!

        If your Sysadmin is editing photos, video, or audio at work, you probably need to get a different Sysadmin!

      • Re:Dead on (Score:5, Informative)

        by tweak13 (1171627) on Tuesday April 05, 2011 @07:42PM (#35726654)

        And when's the last time you edited photos, video, or audio with a CLI?

        When I was a sysadmin at a radio station, I wrote scripts that processed audio, including cutting and splicing. Having it automated saved a hell of a lot of time for the people that used to have to sit in front of a GUI and do it.

        Of course, there's all kinds of audio work that couldn't be done by script. The point is, you need both kinds, even for audio and video.

  • I don't get it. (Score:4, Insightful)

    by arcade (16638) on Tuesday April 05, 2011 @07:11PM (#35726198) Homepage

    I haven't used windows since '99.

    looking around my desktop right now, while posting to slashdot, I have chromium running, and 7 xterms. Two of'em are running irssi, the others are just nice little windows to do various bits of work in.

    I live and breathe in a CLI environment. I can't really remember doing much useful in GUI's except lookup information (for which it's suited perfectly well).

    But why on earth would you do configuration in a GUI? Why would you ever program in a GUI, instead of vim or emacs?

    I just don't get it.

    • Re:I don't get it. (Score:4, Insightful)

      by geekoid (135745) <dadinportland&yahoo,com> on Tuesday April 05, 2011 @07:26PM (#35726420) Homepage Journal

      easy of use. I get far more from VS then either emacs or Vi provide. And yes I have used them extensively.

      A good GUI make configuration a snap. Should it be the only way? of course not.

      It's funny, people complain about GUI speed, but then never use the shortcuts. They say CLI is better, but then use all kinds of shortcuts.

    • Why would I program in a GUI? Like you said, they're suited well for looking up information. Up until last week I've been a diehard vim user, but I switched to CodeBlocks for a new project just to test it out. The amount of extra information I could now get at with the mouse was enough to make me switch camps (except for config files, those are definitely CLI territory.) I know that vim can be made into an IDE, but I could never get it automatic enough and even for those few times I had it all set up for th

    • Re:I don't get it. (Score:4, Insightful)

      by 19thNervousBreakdown (768619) <davec-slashdot&lepertheory,net> on Tuesday April 05, 2011 @07:59PM (#35726878) Homepage

      But why on earth would you do configuration in a GUI? Why would you ever program in a GUI, instead of vim or emacs?

      Because it's way, way easier. Don't get me wrong, I love my VIM, I use sed at least weekly, I've built 5,000-line programs in awk (awk, not gawk, and god help me not by choice), but here's why I use a GUI to program (when it's available):

      • Autocompletion. Yeah, you can get it in whatever text editor, but it's not nearly as good. Ctags doesn't handle C++ well. In Visual Studio using C#, I can add a method, not even save, and there it is in my autocompletion list, auto-populated to the first signature, and as I add parameters it auto-selects the one that matches the number and types of parameters I've entered, with the short documentation right there.
      • Tabs. I sometimes have 30-40 source files open in a single project. Tabs Studio [tabsstudio.com] (not affiliated in any way, it just saved my sanity) lets me have all those files instantly visible, clickable, alphabetized, noted if changed, and the last viewed file highlighted. Are all those things possible in an ncurses app? Sure, with a 240x80 display, but it'd be cramped even then. Proportional fonts have their uses.
      • You can put a CLI inside your GUI. I have immediate sub-windows inside Visual Studio, I have a Cygwin window open at all times, with screen and a few utilities with their own dedicated screen windows inside it.
      • You know what, fuck it, I don't feel like typing all this stuff out, you don't feel like reading it. Essentially, my argument boils down to a UI that has control over individual pixels has more potential visual display resolution than one that can only render a limited number of glyphs in a fixed array of rows and columns, and that's the only inescapable difference between the two. Imagine 9 more bullet points here where I say the same thing over and over.

      Do I miss stuff from VIM when I'm working in Visual Studio? Sure. But if you know the tools equally, and I know VIM like I know the palm of my hand, Visual Studio is just plain faster. But, your entire premise is invalid--a GUI or CLI is not a binary choice for a subject as large as "programming". Individual activities are better suited to one or the other, and a savvy user will use the most effective tool for the task at hand. A GUI can host a CLI or simulate it entirely, a CLI can't do either, therefore GUIs are objectively better unless the resources required for the UI is a concern.

  • by blair1q (305137) on Tuesday April 05, 2011 @07:12PM (#35726204) Journal

    CLI is not essential. It's a holdover from a time when we thought words were a good way to express function. And then left the 'e' off "creat" for kicks.

    Everything can be done in a GUI. I don't see why not. We just haven't made that happen yet.

    • The GUI is not good for building tasks from a set of data and a set of actions. OS X's Automator is a good example of the GUI's failure here.

      • by geekoid (135745)

        Absolutely it can. OS X's Automator may not work(I don't know) but that doesn't mean GUI's are a failure. It means THAT GUI is a failure.

        I wrote a complete GUI to be used by gray beards back in 99. It had all the functionality laid out, and if they needed to do a command line because the GUI didn't include it, it remembered the command line and made a button/checkbox/tab as needed so next time they wanted to do it, it was in the GUI.

        It even added a hot key.

    • Have fun automated complex tasks from a GUI.

      • by StikyPad (445176)

        Likewise, have fun performing simple tasks with a CLI.

        Jesus, why are we having these discussions all over again? 1990 called and it wants its flamewars back.

      • To your surprise, I do just that.
        It's not the GUI itself that is flawed. It's the people who made the GUI who lack skills, such as thinking outside the box.

        After reading TFA, I gasped at the clearly biased GUI description the guy provided. Limit the GUI and it will show its limits. Doh!
        ...But what if the GUI had the possibility to import a CSV/XLS file from an USB thumb or whetever source you can access. A browse button with some code behind it; a "GO" button with some code behind it - big deal. I can c
    • by Hatta (162192) on Tuesday April 05, 2011 @07:19PM (#35726298) Journal

      Everything? I'd encourage you to write an OS using a point and click programming language.

    • GUI is about discovery and until someone comes up with a GUI that can "discover" every possible thing you may want to do, CLI will be the best option for many tasks.

      • by suso (153703) *

        I find that discovery can lead people to do a lot of things that they don't understand. This is especially bad when it comes to server administration. Things like webmin lead untrained web monkeys to mess with settings that they know nothing about or the ramifications of.

    • by tsm_sf (545316)
      Everything can be done in a GUI. I don't see why not. We just haven't made that happen yet.

      I'd agree with this in theory, but in practice we've all seen how horrible people are at coming up with new and intuitive interfaces. In order to make a GUI work as well or better than a CLI you'd need to entirely change the metaphor that the CLI is built around, and this probably won't happen and see wide adoption in our lifetimes.
    • by msauve (701917)
      "Everything can be done in a GUI. I don't see why not. We just haven't made that happen yet."

      Yes, and everything any processor can do can also be done by a Turing machine [wikipedia.org]. That doesn't mean Turing machines are efficient, desirable or the best way to do computing.

      You didn't read the article, and you're not a sys admin, right?
  • by suso (153703) * on Tuesday April 05, 2011 @07:12PM (#35726206) Homepage Journal

    I can back up the claim that the CLI is making a huge come back. I run a feed on twitter [twitter.com] and identi.ca [identi.ca] called @climagic that is becoming very popular. I think that people are trying to find ways to do the things that they need to do in GUIs and when it can't be done, they find that it is easier to access and manipulate your data using Unix command line tools in very efficient ways. Does that mean that its great for everything? No of course not, I'll admit that I use the GUI for many things too, in fact, I do graphical work in Blender and Inkscape and listen to music in Pandora and do my browsing in Firefox because it works well for me, but in many places, I can get my work done using the CLI and still wow people with iPhones and Androids in 2011.

    • by clutch110 (528473)

      I love your feed, I have been following you for quite a while on twitter. I know a lot of the tips and tricks that come up but at least once a week something new to me shows up.

      I have been a systems administrator for over 10 years and I find the command line invaluable. Even the geophysicists ask me to write quick one use awk scripts to format a file into something usable.

  • A command line is more flexible than a GUI could ever be. It just has a steeper learning curve. Since computers are more mainstream these days GUIs are more prevalent. That doesn't decrease the value of command lines though.
    • by Anonymous Coward

      The difference between a GUI and a CLI is that a CLI rewards understanding with capability.

      GUIs are appropriate to non-expert systems where functionality must be patently clear. Think of your smartphone / PDA, or a consumption-oriented computing device (iPhone, iPad, PowerBook).

      If you're administering or creating content, you'll eventually want the power of a real scripting tool.

    • by geekoid (135745)

      In what way is a command line more flexible. Please be sure to keep your answer relevant to modern GUIs and GUI principles. Don't use a bad GUI design to 'prove' your point unless I can sue bad CLI to 'prove' mine.

      • by lennier (44736)

        In what way is a command line more flexible.

        In short? A command line in the Unix sense is more flexible than a GUI in the Windows sense because in the Windows paradigm, there is no general graphical equivalent of a text editor. The closest equivalent is a graphical form builder as in Visual Studio, but you can't create, for example, a Powershell or VBScript file simply by dragging graphical components around. There's no inherent GUI reason why this should be the case and it would be super-neat if you could. But at the moment, you can't.

        But even if yo

  • except that software should be accessible by design, and GUIs have issues for blind people.
  • I'm not sure if this is the case, yet it seems GUI layers of garbage introduce a layer of viris vulnerabilities. CLI, I'm game with it.
  • cmd.exe is a terrible shell. The new Powershell Microsoft has is pretty nice. I like it more than Unix shells. I find passing objects between commands to be easier. Now Microsoft just needs to dump their console.

  • by Sir Realist (1391555) on Tuesday April 05, 2011 @07:22PM (#35726348)

    Anyone who thinks that a command line prompt starts with a 'C:\' has no idea what they're talking about.

  • Systemd will do more to rub out the use of the command line than any thing since the gui. The author has decided for every one that applications should be able to figure every thing out for themselves and passing switches and arguments to them is archaic. This will remove the incentive for application writers to bother adding interfaces to applications that will alter their functionality. That will give us fewer reasons to use the command line. It is a vicious circle.
  • The idea that people have to be on either side of the fence is almost as ridiculous as there being a metaphorical fence to begin with. I use a desktop OS (Windows 7) and I love cygwin, which I run in Console2. The two can be used together, you know. There's no need for it to be a black and white discussion -- only useful for making one seem 1337 or 'in the know' and bicker like tools. We have both -- why not love both?

    • by rk (6314)

      This.

      Like peanut butter and chocolate, GUI and CLI are even better together.

  • Hence why they came up with Powershell, which I have to say is rather good, and many Server 2008 tasks demand a basic knowledge of it.

    Hell it even has grep (findstr), though sadly it hasn't go a worthy sed substitute.

    • by BCoates (512464)

      findstr isn't a powershell command, it's just a console .exe program that comes with windows.

  • CLI != DOS (Score:5, Insightful)

    by tnk1 (899206) on Tuesday April 05, 2011 @07:24PM (#35726384)

    While the C:\ prompt would really be the Dark Ages all over again, command lines done right can be significantly faster to use for experienced admins. Not to mention they can also be used in diverse interface environments like serial connections in almost exactly the same way that they are used anywhere else. It's significantly easier to script from the command line as well.

    Just about every shell available on a UNIX-like OS is at least ten times better than DOS ever was. Lumping in bash with DOS is like taking a BMW and saying it is equivalent to a Yugo because they both have four wheels and an internal combustion engine.

    There's certainly a place for a GUI, and well designed GUI apps are lifesavers in big environments where seeing a graphical representation of 1000 servers as icons and being able to click and drag to select and execute group commands is a much easier way to work with that many servers. Having 1000 lines of text zoom by is going to be hard to take in at a glance. I love the GUIs that I use for certain tasks like visualization and management of complex environments.

    Still, anyone who considers the command line to be the Dark Ages either doesn't know how to type, doesn't understand how to use a CLI, or is simply trying to sell you a pretty GUI app.

  • A picture (GUI) is worth a thousand words. Why use a thousand words when one or two CLI words will do?
  • GUIs are, in fact, essential - without them, slashdot would not exist.
  • by Aphrika (756248) on Tuesday April 05, 2011 @07:28PM (#35726462)
    GUIs are useless at performing repetitive tasks. The emergence of PowerShell on the MS platform in the last few years means I can do stuff that was previously impossible to do - maybe throw user objects around between AD, SQL Server and SharePoint. Heck, even the GUI tools are based on top of the PowerShell commands.

    In fact, PowerShell is one of Microsoft's best moves, and something that has sorely been lacking from the Windows platform for too long.
  • CLIs are also really good for:

    1) Configuration differences
    2) Compliance logging

    My company (www.uplogix.com) makes a device that does these two things for a wide range of advices. It's pretty damned useful. And it doesn't rely on the GUI maker adding useful logging of each step done in the GUI. You have the text session. You know exactly what the user did.

  • by WasteOfAmmo (526018) on Tuesday April 05, 2011 @07:31PM (#35726506) Journal

    As an avid CLI user on *NIX and Windows I would vehemently object if I was dragged back into the "dark ages" (aka 1980s). It seems that as soon as you mention CLI this is what people bring up for an argument. I suspect these are the same people who have not taken the time to objectively evaluate a modern CLI be it bash or powershell or something similar.

    I humbly suggest these are the same people who have never had to log into and click away on a GUI to configure an option because the package does not have any CLI support on 30+ machines. Don't get me wrong, GUIs are great for a great many things but there are many tasks where a good script and a command line beats the GUI hands down. A simple example is turning 70+ machines over in a computer lab to put them in a special "exam state". With scripts and command line this takes literally less than 1 minute to hit all machines. Now I suppose if you had some nice admin tool GUI that allows you to point and click to select a set of actions to perform on each machine or group of machines you could achieve the same thing but I have yet to see it.

    • by jrumney (197329)
      The worst thing is modal configuration dialogs. When you have to look up some information in the Window behind, you have to cancel your configuration, reposition the Window to where the information you want will be visible when the dialog is displayed (often this involves resizing and repositioning other windows too) before restarting the configuration you were half way through from the beginning again.
  • Goddamn, you can tell this is a site for geeks. People who use command line are about 1% of people who use computers. The reason we all have jobs is because so many people use web sites and software these days. The only reason so many people DO use websites is because they DON'T have to use command line!
  • by macraig (621737) <mark.a.craig@g[ ]l.com ['mai' in gap]> on Tuesday April 05, 2011 @07:37PM (#35726594)

    Command lines discriminate against those with poor memories. GUIs make it possible for people who can't remember detailed shit to be productive without having to constantly refer to some other resource(s).

    I learned English well enough that I rarely require a dictionary, but I was never so lucky with programming languages and other syntaxes. I love my GUI... when it's implemented correctly. Paul Simon wanted his Kodachrome, and I want my GUI.

  • Why not both? (Score:5, Insightful)

    by Kenshin (43036) <kenshin@l u n arworks.ca> on Tuesday April 05, 2011 @07:38PM (#35726604) Homepage

    Why does this always have to degenerate into a Campbell's Chunky Soup "Fork or Spoon" debate? Why not just use the most appropriate interface for the task at hand?

    A GUI can be shit for some things, and (unless you live and breathe CLI) a CLI can be too complex and unwieldy for other things.

  • A CLI is really awesome if you're looking to automate repetitive tasks.

    A GUI is really awesome if you want see different information from different sources, and make specific actions that cannot be automated.

    The two of them need to coexist - use the best tool for the job, which could be either a CLI or a GUI.

  • In other news, some random computer journal writer said the existence of the right hand should not mean we cut off the left.

  • by w0mprat (1317953) on Tuesday April 05, 2011 @09:53PM (#35728110)
    What is Google but a command line interface? Your browser url bar? Your start menu search box with integrated desktop search? Then there's something called the Web.

    It seems CLI and GUI has been hybridized after a brief fad of flashy GUI (now isolated to gimmicky tablets). If you actually IT at the momment, rather than post on a website blog about the IT industry you'll find yourself working more and more with web interfaces. No CLI, no native GUI. It's just how it's all going to be done. (please take away some of the CLI and crappy native interfaces I have to deal with PLEASE!).

    Ultimately 80x50 inline text sucks for representing any information. Since re-flowable HTML and the hyperlink it's as obsolete as dinosaur DNA. Ultimately you can sit down to a very powerful web app or the occasional well designed GUI and start getting shit done. You don't have to read the man page or all but read the source code to use it, which I might add, man pages still don't have examples. GUI you don't learn, you just use it. Ironically, most CLI work is done from a GUI.

    Have worked with CLI for years, I cut my teeth on it way back, it still helps me out but I don't delude myself that CLI is somehow magical or is in some way a superior interface it's not. It's often epic usablility and discoverabiltiy fail and completely ignores advancements in human interface over decades). I don't need that doublethink in order to cope. Admit it, it sucks. But we use it at times and we get awesome shit done.

    Thats what matters.
  • by redelm (54142) on Tuesday April 05, 2011 @10:31PM (#35728398) Homepage

    Nevermind the limited menu systems and the unidentifiable icons, GUIs lack any means for users to use multiple programs beyond the clipboard (mouse cut'n'paste) also available on CLIs.
    For example, I type

    $ du -m | sort -n | tail -69

    to get the 69 largest directoriess under the current working directory (often but not always /). And something only slightly more complex to search logs for the IPs who have attacked me most. I have lots of neat one-liners like this stored in my command history ~/.bash_history and will often use one as a template for a new task.

FORTRAN is a good example of a language which is easier to parse using ad hoc techniques. -- D. Gries [What's good about it? Ed.]

Working...