That doesn't mean people should not stop using it where it doesn't win.
The fetishisation of C is a massive cultural problem with massive tangible
costs.
--Toby
But is there necessarily a win in turning a crack C programmer into a
novice {Smalltalk, LISP, insert your favorite language here...}
programmers? Given a short time frame, perhaps it's more effective to spend
those hours writing code in a language with which you're already familiar,
rather than spending them picking up a new language...
I agree there's lots of languages out there optimized for all kinds of
different problem domains, however, I think there is some cognitive limit
on the part of the programmer, how many different languages and paradigms
one person can really learn to full proficiency level.
As well, for most, programming is a means to an end. People ultimately want
a completed product, an achieved solution. When already proficient in one
language, it's hard to keep your nose to the grindstone learning the
fundamentals of another, when you could be executing real work in the
language you already know.
I don't know that C is "fetishized"... certainly it's in vogue like
Pascal
was in the 80s, but beyond that... you're right, C is probably being used
more as a blunt instrument now than Pascal was in the 80s (of course, C is
as well more flexible) but this follows the general trend of things we've
seen in tech where variation is reduced over time; in hardware platforms,
in operating systems, in applications and certainly in languages commonly
used as well.
Between me and my close friends I am familiar with the EE/CS curricula at a
number of institutions and there is some variation. Some do teach C/C++
(that was my experience at U-M), some teach Java, some (well, a few) teach
Scheme and so on.
Best,
Sean