Csh is punk rock
Bill Joy’s 1978 contribution to UNIX shells is an immature, brash little son-of-a-bitch, and I love it for all that it is.
Csh is synonymous with ‘don’t use Csh.’ Every time I look up a ‘howto’ or work-around about it, inevitably, there’s at least one diatribe knocking it down. Csh is punk rock in this regard; few believe in its merits.
Low fidelity
I like Csh quite bit. It’s from the heyday of BSD, and there’s a certain bombastic nature in the tools that came from this movement. Csh has this residue for certain.
‘Never script with Csh,’ they say. Well, there’s SNAFUs galore in this tool, and I’m not going pretend or deny it. Why, just this week, something wasn’t working, and the work-around was clearly mystical in nature.
However, there’s a ton that’s great with this bratty shell:
- It’s lean
- It’s embraced by the OpenBSD folks
- It has arrays (hell ya)
- Scripts can start with the ‘#’ character only
- ‘cshrc’ configuration files read somewhat beautifully
It’s a small list, yes, but my point is there’s some unique goodness to Csh (not least of which is the first point — I think there’s a chance that a person can actually master this shell, committing all its features to memory. I don’t think I could do that with ‘bash’).
Tight pants
Csh is probably in the alt-tech category for most modern developers. I don’t think it stands a chance next to the likes of the endlessly featured and popular ‘zsh’ and ‘bash.’
But that’s my point about Csh. It’s a little punk rocker from yesteryear. One that gets a ton of flak, though I wouldn’t be surprised if eighty per cent of this is just hackers repeating what they’ve heard second-hand.
If you’re into alt-tech, would like to ponder over tools created in a stoked time of programming, or just want to see how ‘bad’ Csh is, give it a spin sometime. But be careful, you might be one of those people who falls under its spell never to use anything else again! (You’ve been warned.)