Slashdot Mirror


Meet Carla Shroder's New Favorite GUI-Textmode Hybrid Shell, Xiki

New submitter trogdoro (3716731) writes with an excerpt from Linux Cookbook author Carla Schroder's enthusiastic introduction to what looks like a tempting tool, combining elements of GUI and text-mode interfaces: Command-line lovers, allow me to introduce you to Xiki, the incredibly interactive, flexible, and revolutionary command shell. I do not use the word "revolutionary" lightly. The command shell has not advanced all that much since the ancient days of Unix. Xiki is a giant leap forward. If you're looking for the Next Big Thing in FOSS, Xiki is it. It's not the first tool meant to combine text and graphic interface, but from the screencast demo, Xiki looks like it gets a lot of things right.

17 of 176 comments (clear)

  1. Not convinced by mstefanro · · Score: 5, Interesting

    I believe the tradeoff of CLI is between working more efficiently (by typing commands and not having to use your mouse too often to interrupt your flow)
    and a steeper learning curve (learn commands and their params, config file locations and their syntax etc.).

    This shell seems to provide a lot of features that most of the people are not interested in, or already use specialized tools for those tasks. It is unclear to me why would one prefer to use such a shell to execute SQL or modify the DOM of a webpage rather than spawn a full-featured querying tool, respectively Firebug.

    Their syntax coloring looks pretty poor, and they seem to ask you to "double-click" whenever you want to do anything. I am currently using terminator + fish, which I can highly recommend. It makes me way more productive, has very interesting completion features and uses a really large number of colors to make things more easily distinguishable.

    The fact that you can move things around is quite cool, but I don't see any significant advantages, although I've only watched the first ~6 mins of video. Can someone competent perhaps voice his opinion on what does this bring?

    1. Re:Not convinced by K.+S.+Kyosuke · · Score: 4, Interesting

      It is unclear to me why would one prefer to use such a shell to execute SQL or modify the DOM of a webpage rather than spawn a full-featured querying tool, respectively Firebug.

      Some people are concerned that "traditional" specialized tools have uncomposable interfaces. There seems to be some convergence between this and the Hopscotch interface pioneered by Gilad Bracha. I believe that the aim of both, despite the two being different in approach, is to ultimately give you the tools to make your own (specialized) interfaces on the fly, rather than to force you into having to deal with multitudes of specialized large windows and to constantly "hunt" for UI elements or displays in a lot of noise.

      --
      Ezekiel 23:20
    2. Re:Not convinced by blue+trane · · Score: 4, Interesting

      "the tradeoff of CLI is between working more efficiently (by typing commands and not having to use your mouse too often to interrupt your flow)
      and a steeper learning curve (learn commands and their params, config file locations and their syntax etc.)."

      Solution: use natural language to tell the computer what you want to do. "Copy myfile.txt to mydirectory." "Change my password from old to new." "Change the file permissions on myfile.txt so anyone can read or write to it."

    3. Re:Not convinced by fnj · · Score: 4, Interesting

      Please read Robert Heinlein's The Number of the Beast and then tell me if you still think natural language is appropriate to command computers.

      The use of natural language to interact with Star Trek: The Next Generation's computer has an extremely powerful appeal. I read Heinlein's novel prior to the debut of STTNG and I was still impressed by the latter, but my belief in the feasibility of the idea is greatly tempered by the former.

    4. Re:Not convinced by ShanghaiBill · · Score: 5, Insightful

      Other advantages of a CLI:
      1. You can save the sequence of commands in a script, edit the script, and re-run it later, perhaps on different computers.
      2. You can run commands in a remote SSH session.
      3. You are learning skills that are applicable across a wide variety of Unix-like OSes.
      4. You are learning to use powerful and flexible tools that can be piped together to automate complex tasks.

    5. Re:Not convinced by Capt.Albatross · · Score: 4, Interesting

      I believe the tradeoff of CLI is between working more efficiently (by typing commands and not having to use your mouse too often to interrupt your flow)
      and a steeper learning curve (learn commands and their params, config file locations and their syntax etc.).

      For me, the primary benefit of a CLI, when presented by a decent shell, is the flexibility and power of being able to write and run tiny programs whenever it helps.

      A CLI not backed by a decent shell is miserable, as was demonstrated by ms-dos.

    6. Re:Not convinced by vtcodger · · Score: 5, Insightful

      Solution: use natural language

      Interesting idea. ten to one, you would get a great lesson in how ambiguous "natural language" is. A language that does not distinguish between inclusive and exclusive OR, has no rules for resolving the order/priority of ANDs and ORs when both occur in a clause, and which has a rather cavalier approach to NOT ("Isn't the door open?" is likely to mean "I think the door is open" rather than "Is the door closed?") may not be the ideal medium for communicating your wishes to a box.

      --
      You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
    7. Re:Not convinced by Livius · · Score: 5, Insightful

      Solution: use natural language to tell the computer what you want to do.

      Because we all know that all programmers do is follow the requirements document from the client, which never requires any clarification/investigation/analysis/follow-up/etc.

    8. Re:Not convinced by Anonymous Coward · · Score: 4, Interesting

      No, it didn't.
      Tab completion made it okay. DOSShell just helped to make things less painful to re-run something that was run in the past. And that's assuming that you already ran DOSShell in the past.
      Of course, that didn't come along to consumer-targeted operating systems until after the turn of the century, and by then MS-DOS was just a bundled component of some product named after a graphical interface.
      For those who wanted a decent shell before then, JP Software's 4DOS was the best option. Those who had a copy of certain versions of Norton software may have been familiar with this product by the name NDOS. These products provided more functionality and were able to use less of the most scarce categorization of memory.

      Regarding what can't be done with a .bat file, the answer is: nothing. After all, a batch file could run LoadLin which could load Linux. However, what couldn't be done without a batch file if you weren't relying on external executable files? A lot. Getting user input comes to mind.

      I'm fully aware of what can be done with batch files. For fun, I wrote a virus in batch, targeting a specific computer lab so that the software would spread among floppy disks from one machine to another, infecting both hard drives and floppies. The software even backed up changed files (like AutoExec.bat), and checked for a parameter to run a cleaning subroutine that would restore the unaffected files. Despite such accomplishments, I never felt like Batch was a versatile as, well, anything else I've used, including BASIC. User input and conditions were not easily handled.

    9. Re:Not convinced by lars_stefan_axelsson · · Score: 5, Insightful

      And also something I came to value when working in industry and developing both cli and GUI admin tools for telecoms equipment:

      You can easily document, email and (to a lesser extent) talk about a cli. A GUI not so much. When you've tried to walk someone through finding the hidden option in a GUI over the phone for the tenth time you're ready to tear your hair out. With a cli you can just email some commands and that's that. Documenting a GUI invariably devolved to a lot of screenshots which makes any workflow tens of pages long, instead of ten lines of commands which you then have ample space to explain and comment on. It's also much easier to read and follow along as you're e.g. installing, than leafing through screenshot after screenshot.

      --
      Stefan Axelsson
  2. Too many security issues. by shellster_dude · · Score: 5, Insightful

    The command placement and directory browsing is cool, but I don't want any command line that accidentally runs things when I click on them. I don't want any command line that tries to interpret my input as multiple scripting languages. Both of those sound like a security disaster.

  3. what if you could.... by Trailer+Trash · · Score: 4, Insightful

    nut kick the guy who keeps asking "what if you could...." in the screencast? That got annoying real fast.

  4. Re:Welcome to Macintosh Programmers Workshop, 1985 by Mostly+a+lurker · · Score: 4, Interesting

    Believe it or not, using 2260 terminals connected to an IBM 360 mainframe running MVT/ASP, I was able to rerun commands anywhere on the screen back in 1973!

  5. Re:Ho.. hum by trogdoro · · Score: 5, Informative

    Indeed. It's been out there, and I've been doing live demos of it for years. At RubyConf, QCon, Strange Loop, and about 20 usergroup presentations. The problem is the installer sucks, and people are confused by how to start using it, which the Kickstarter is meant to address. I'm going to post a new video showing some progress on addressing the latter issue very soon.

  6. Re:What's old is new again ... by trogdoro · · Score: 5, Informative

    There's a simple metaphor of "text-in, text-out" that xiki stays true to. It interacts with shell commands, scripts, text files, just about anything. You can call a shell command directly, wrap some lightweight code around it let its output be interactive, or wrap a full script around it. > it is rarely intended to be used by the shell itself I'm going to be post a new video very soon showing a new way of jumping quickly back and forth between your standard shell and Xiki, and making them work together, which I think is a missing piece that solves some of the awkwardness you allude to. I wish I'd gotten it out there before this thread!

  7. Re:Xiki Sucks.. by smallfries · · Score: 4, Informative

    Also I went through a phase of doing most of this inside vim anyway. It was a time when I was doing a lot of string manipulation in bash with long complex pipelines and I needed to explicitly show the state / track the output of each component.

    In vim you just need to keep a :r! at the beginning of each command line, to execute just check that you are in command mode with esc then select the cmd line and middle click to execute, allows piping in results by selecting the input and dropping the r to get :!. There is no support for custom hit regions for the mouse, but in compensation it works everywhere already.

    If you already use vim, then having access to vim motions and commands to edit output makes for a surprisingly good shell.

    --
    Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
  8. Re:Oberon? by ttucker · · Score: 4, Informative

    His point is: learn to fucking spell "Oberyn"

    That is an uncivil response to a simple error.