2007-11-30 09:15The Shell Doesn't WorkIt is becoming clearer to me, the more I force myself to work around and against the quirks and usability failings of the terminal environment, that the concept has reached a dead end in its development. There are, fortunately, some brave efforts out there to try to imagine what a shell could be, taking into account modern advances in technology and interface design, often without throwing away too many of the good features that make legacy shells so popular. Some examples of this new breed of applications are anthias, cuiterm, fish and hotwire. Glimpses of the futurePerhaps the most exciting of those is anthias, which offers syntax highlighting, logical presentation of command output, and integrated directory browsing, but unfortunately the project appears to be dead for over a year. The first two of its features, however, are present in cuiterm, although it has yet to be given the Ubuntu seal of approval (hopefully to be followed by Debian’s) so it is still too early to take it seriously. fish is a user-friendly shell, which has the syntax highlighting feature and advanced tab completion that the previous two had, as well as a sane, consistent set of functions and syntax to replace the nightmare of BASH. It is quite well established and easily available for install, but while limited by the same underlying technologies and paradigms, it shares the biggest annoyances about BASH and is thus not worth the re-learning effort for me yet. That leaves hotwire, which is similar in design to anthias and cuiterm, having icons next to files in directory listings and in tab completion suggestions. The software is relatively new, but despite this it is packaged for many distros; however, because of being new (or being written in Python) it is still slow and ugly. So what’s the problem?While each of the applications I’ve mentioned do contribute something to the user’s experience, they are trying to build a stable workspace on a constantly shifting, unpredictable base of sand. All the 30 year old technology that makes up the terminal environment is rotting away, ready to collapse under the weight of the hacks that have come since then. I have already blogged about the problems with just trying to get Ctrl+Backspace working in the console, and some of the trouble getting Unicode characters to work, but these problems are not exceptions, they are endemic and unavoidable, stemming from the failure of the current console paradigm. For more examples, think about how someone would discover that (in some setups) the key bindings change when you load a curses editor. They could be testing a key combination like Shift+Down, and think that their editor was misinterpreting it since it worked perfectly well on the command line. Further, this assumes that the terminal emulator isn’t stealing the interpretation of keys for itself, such as for changing tabbed session or loading a graphical menu. Then, even if the key bindings got through, they may need to change a file written in S-Lang in order for the Home and End keys to still work. Or maybe they just wanted to get their Backspace key working at all, only to find that the text editor doesn’t come from “a UNIX background” and “does not respect this tradition”. ConclusionIf you want to stay in your little niche / rut and keep using the same 30 year old technology with the same 30 year old problems, fine. Don’t be surprised though when people don’t find it intuitive that, when they’re trying to press some buttons on their keyboard to be interpreted by a console text editor, things can go wrong if there is a problem with: their X input method, their terminal editor interpreting keystrokes, their locale, their keytab file not sending the correct binary sequences, their readline file not interpreting the sequences into the correct commands, or their editor expecting a different keystroke. And why is it that the most destructive computing environment, where Trackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
That leaves hotwire, however,...it is still slow and ugly.
Hi, have you tried 0.620? It has some optimizations relating to system command output and directory listings.
http://hotwire-shell.googlecode.com/files/hotwire-0.620.zip
However, history search and the completion system are not yet async or as optimized as they could be.
And why is it that the most destructive computing environment, where mv foo.txt bar.txt can irreversibly delete a file without warning you beforehand or informing you after the fact, is the only environment on a computer that doesnât have an âUndoâ function?
Hotwire has working undo for rm but not yet mv; it would be relatively straightforward though to add the support.
|
QuicksearchCategoriesSyndicate This BlogBlog Administration |