[Haifux] My "Stop Using (and Teaching) C-Shell and Tcsh" Page

Nadav Har'El nyh at math.technion.ac.il
Thu Oct 25 16:53:27 MSD 2007

On Thu, Oct 18, 2007, Orr Dunkelman wrote about "Re: [Haifux] My "Stop Using (and Teaching) C-Shell and Tcsh" Page":
> Exactly. The point is not to teach the beauty of shell scripting.
> I suggest you'll approach the lecturers in charge to get a better
> understanding why they teach this shell rather than that shell (like Eyal
> did).

I was disappointed when the reply that some profesor sent here. Sure, csh
*can* be used as a tool to help compile and test software. But shells can,
and are, used for more. So if you go and teach a shell, why not go and teach
the one that is widely believed to be better, and scripts in it are 100 times
more common in the wild then in the other shells?

I'm not saying you *have* to teach a shell - after all, the Technion teaches
CS, not system administration, but if you do decide to teach a shell, why
not teach one which is at least good, common, or both? (I argue that csh is

By the way, when I was in my first semester (1991...), the Technion still
taught Pascal, not C. This later changed. Why? They could still teach all
the algorithms and data structures and so on in Pascal, and Pascal compilers
were still widely available. But they finally realized that most of the world
has moved on to C, and in the following semesters, students are 10 times more
likely to see C code than Pascal code, so if they want to teach just one
languge, it should be C, not Pascal. Similarly, I think with the shells - if
you - for whatever reason at all - decide to teach ONE shell, it should be the
bourne shell, not csh.

You don't even need to teach any extensions specific to bash, ksh or zsh.
Just teach vanilla Bourne Shell stuff. It's not complicated, and will come
in handy for the students in the future  - while they'll never ever see a csh
script outside the technion (I think I saw one csh script in the 13 years
since I graduated).

> Yes and no.
> Unlike what many people think, installing software on a server with multiple
> users is not as simple as running yum/rpm/whatever your distro is using.
> It is an obligation by the staff to support, update (to some extent), insure
> backward competability (in the case of updates), etc. The claim that "It's
> easy to install" is wrong for systems which you do not own, nor understand
> all the technical (or political) aspects related to.

As someone who did function as a sysadmin on the Technion (not on t2, a
smaller system, but still one with many users), let me tell you - yes -
installing bash *is* easy. I don't remember bash ever having any installation
or compatibility issues. In any case, even if bash isn't installed on t2
(and I'd seriously doubt that - last time I heard, t2 was a Linux system today)
what about ksh, which has been part of Solaris for many many years?  Or
simply, "sh"?

Nadav Har'El                        |   Thursday, Oct 25 2007, 13 Heshvan 5768
nyh at math.technion.ac.il             |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |Always go to other people's funerals,
http://nadav.harel.org.il           |otherwise they won't come to yours.

More information about the Haifux mailing list