?

Log in

No account? Create an account
Semiformalishmaybe

Shells and Jobs

Quick expanded thoughts on an online techie discussion on Unix shells:

In a G+ conversation, someone was thinking about changing shells, and most of the people there are us long-time Unix users of a certain age. A Plan9 guy was there making some flamboyant claims about how rc (the Plan9 shell) is the only decent shell but you have to use it with 9term which is the only decent terminal.

I like rc. I used it for awhile (as well as its descendant, 「es」). The problem is that rc doesn't have job control, which is a pretty important feature for modern shells. Job control is a slightly hairy thing to implement in a shell, but most of the unix shells people use nowadays have it.

I asked him how he got by without job control, and he said, 「In any 'modern' OS with any modern UI job control just doesn't make any sense as part of the shell. When you have a window manager (or even something like tmux), what exactly you need job control in the shell for?」, which is some pretty amazing brain damage. I stepped away with a reference to mjd's 「Advocacy」 (amazing party game, btw).

Still, that wasn't a very descriptive answer; the best way to explain it is that people like to use a shell/terminal as a task-dedicated space most of the time. It's reasonable to use job control to manage a set of related tasks; terminals/shells are heavyweight in that you might have moved to a certain directory, have relevant history to what you're up to, might be ssh'd somewhere, yaddayadda. Even the path in your prompt (if it's in your prompt) might act as a cue to remind you what you're up to there. Opening up multiple terminals to perform one task might happen (those of us who use multiple workspaces and tend to devote a workspace to a task might do that), but we're generally reluctant to do so without reason. screen (or dtach) give us more flexibility for special situations, but don't change our normal way of doing things.

Plan9 has a lot of fantastic ideas, but it never got enough sustained development to evolve out of barbarism in its user-centric stuff. The same goes for many of the software components we got out of it; it's an OS a techie might find pretty, but unless they're a die-hard conceptual aesthete, they're going to miss the power of UNIX (and the look/feel of some decent window manager).

The style of his responses kinda bugs me, maybe like how diehard Mac fans get that Stolkholm Syndrome, or Amiga Persecution Complex, or .. well, what the OS/2 community was like. Some of this is of course a legitimate clash of values; for me, I want a lot of power and I want it as legally unencumbered as possible (hence preference for GPL) and with few gatekeepers (hence distrust of heavy-handed app stores). It's really the unnuanced "my chosen platform is the best at everything" reflexive fending off of legitimate criticism that bugs me. While Linux and the BSDs have been my happy home for many years, if asked about their problems I could probably manage many blog entries about design shortsightedness, poor implementation, socio-technical problems, and the like. While I think Apple's products should be avoided because they're bad for the state of the tech industry, I can talk at length about things they got right technically or UI-wise and about some of the positive effects Apple has done for the tech industry. When that nuance is lacking in others and they have a sports-team mentality towards the whole thing, there are few things more irritating.

Comments