Like you, my dear reader, I was excited upon encountering the paper Commander S: the shell as a browser. Commander S, as described in the paper, is "a new approach to interactive Unix shells based on interpretation of command output and cursor-oriented terminal programs." Better yet, it functions as an interactive front-end to the Scheme shell, scsh -- bringing the power of Scheme shell scripting to the command-line.
As with most things Scheme (allowing certain notable exceptions) and going double for academic output, I expected impracticality in the real world, yet to have a lot of fun poking around, getting some ideas and maybe even, hope of hopes, hammering it into usability. The lack of public release was barely a concern, given that the authors thought enough of it to write a detailed paper expounding its virtues in the present tense.
In short, I expected exactly what anyone might from a proof-of-concept.
Unfortunately, it was not to be. Commander S crashes at the drop of a hat, making exploration time-consuming and frustrating.
> ls [Ah, works fine. A good start.] > ls filename with a space ((syscall-error 2 "No such file or directory" #{Procedure 13576 #} "space" ---) . ...) > ls "filename with a space" ((syscall-error 2 "No such file or directory" #{Procedure 13576 #} "space" ---) . ...) > ls "filename<TAB> # the dungeon collapses! starting remote handler for condition(parser-syntax-error (end of file within a string #{Tracking-port #{String-input-port}})) # Okay, we'll restart the Commander. > ps I'm sorry jim, I'm afraid I can't do that. The following error occured: (call-error invalid argument number->string #f) > pwd > <C-x o> <C-x p> # Paste result to command line -- a noted feature # the dungeon collapses! starting remote handler for condition(error unknwon message in make-standard-viewer get-selection-as-text) Please connect to port 8888 # Gah! Let's try another plugin. > printenv > <C-x o> <C-x p> # Paste result to command line # the dungeon collapses! starting remote handler for condition(error unknwon message in make-standard-viewer get-selection-as-text) Please connect to port 8888
Other issues include terminal handling which continually corrupts the screen and forgets to add carriage returns, process output that goes to a blank screen instead of the output ring, and hanging background processes which force me to SIGQUIT.
The Commander S concept is a fascinating one, but basic exception handling and feature testing would encourage users to contribute. My experience so far is that the shell is too fragile to bother hacking on.
Date: 2007/04/12 21:20:13