People don't like csh (and tcsh) for the same reason that a lot of people don't like vi: It doesn't make any sense.

But the truth is that it does make sense, but to quote the movie Labyrinth "you just ain't lookin' at it right." It makes sense in the same way that the "^" key means 'beginging of line" and the "$" character of line in the vi editor, even though $ comes before ^ on the keyboard. You have to look at it from the other way -- In ASCII, ^ comes before $ in their scan values!

Look at it like a programmer would. CSH means 'C' shell. It was written by programmers, for programmers. Everything seems absolutly breain dead when compared to a 'normal' user shell like bash, but in a programmer's mind, many bash conventions seem absolutly pedantic.

Different Shells for different types of users.

But if you really want to piss off some people, make tcsh their defaut shell and have vi be their default line editor!