On 2014-07-16, Nasser M. Abbasi <
n...@12000.org> wrote:
>
> The first language I really liked was Pascal.
> But the Pascal family of languages (including Ada) have
> clearly failed to become popular, at least compared
> to the C-family (C, C++, C#, ....)
>
> The question is why did this happen?
Another question is why does this matter?
Popularity does help in that people still write toolchains. Otherwise,
history seems to show good and popular are inversely related. And technology
seems to be going in the direction of least common denominator. Lots to be
said here. Not enough time to say it.
> My theory: C was used to develop Unix/Linux and
> Windows, and this made it easier for applications
> to be written in C/C++ since the interface to the OS
> was easier.
I think so. The best language to write code on a given OS is almost always
the language the OS was written in. That alone has been enough to prop up C
and C-derivatives long after they should have been killed. There really
isn't anything else to code with in Linux and UNIX if you need full
system interface. And as many have complained this also affects library
utility and access.
That is not because of not choosing C. And I believe by now most of of VMS
is written in their MACRO assembly language rather than BLISS but I'm not
sure it's relevant. The issue AIUI is somewhat tangential to Ada's
problems. VMS people seem to present a good case that VMS is really a good,
safe OS. Linux is cheap, cheap and that's the overriding concern these
past few decades. It only gets worse as time goes by.
>
> What is your theory on this? Was there another
> reason or set of reasons?
I've always understood the popularity of C was because of what you said and
because of politics and ideology. The C people feel special that they can
fight corporate America however and whatever that means and they also
pride themselves on being able to navigate the minefield of a language that
wasn't designed but rather just evolved (putting it kindly). C doesn't
require them to play by the rules- playing by the rules is a nasty reminder
of those bad bad corporations they're rebelling against. Chaos and
sloppiness are a sick form of freedom for those people, while rigor is a
symbol of everything they despise. If it were just laziness it wouldn't have
gone this far. Make no mistake it is mostly politics and ideology. And their
junk does run everywhere...badly though.
Look at the huge number of critical errors and security holes in C-based
software. Sure we can say there are more errors in C code because there is
simply more C code and of course there is some truth to that. But C is a
very unsafe, tricky and poorly-designed language and it and the culture
behind it promotes dangerous practices.
>
> Can we all blame this success of the C family of
> languages on Dennis Ritchie and Brian Kernighan
> brilliance and it being used for Unix?
I don't consider those two guys brilliant. From a technical standpoint I
don't think anyone can. Dennis Ritchie was an effective coder. Kernighan is
a good writer and probably a half-decent mathematician. Together they were
bad designers. Nothing about UNIX was designed. It's about the biggest mess
that ever lived. Nothing is done properly, there are holes and edge cases
and just plain stuff that should never have been done in everything they
did. They might even be responsible for today's portable piece of junk is
good enough philosophy.
They were good marketers and effective preachers and they were able to rally
a whole political movement based on corp. bashing notably while being paid
by Bell Labs to do so. Giving away UNIX to universities was a big help in
adopting C. I think the combination of their manufactured Davy and Goliath
self-image along with good penetration in the liberal "college" scene was
all it took to get to where we are now.
It is more than a little ironic that guys from Bell Labs should be revered
as corp. busters though. Most of the unwashed masses need religious leaders
(Stallman, to wit) and a religion (Gnu/FSF), not a good programming
environment or language.
Harvey