[comp.lang.c] Language wars

wyle@inf.ethz.ch (Mitchell Wyle) (03/22/90)

In article <XWD2FP7ficc@ficc.uu.net> peter@ficc.uu.net (Peter da Silva) writes:
>In any case the forgery game is no longer funny (not that it ever was)... it's
>time to get back to serious stuff like language wars.

Yeah.

I have been coding in C a lot recently, mostly because Unix is married
to C.  Even with lint, ctags, make, lex, yacc, sccs, the man([23])
pages and all the other goodies C/Unix provides, I still prefer Modula-2.

Modula-2 provides a simple, clean, *useful* module interface through
definition modules and import/export.

My personal experience is that it is easier to integrate a new team member
into a project in M2 than in C, though ada is also pretty good in team
integration.

C is just too damn "hacky."  I've seen too much code like

**p->*n->t 

If I want amazing efficiency I'll code in FORTH or assembler.

rowe@cme.nist.gov (Walter Rowe) (03/24/90)

>>>>> On 22 Mar 90 08:29:01 GMT, wyle@inf.ethz.ch (Mitchell Wyle) said:

Mitchell> C is just too damn "hacky."  I've seen too much code like
Mitchell> **p->*n->t

This IS pretty nasty.  However, C doesn't have to be "hacky", nor does
any other language.  "A chain is only as strong as its weakest link",
and a language is only as good as the programmer using it.

If your (objective "you") solution to a problem is hard to understand
without the language, then it will more than likely be even harder to
understand (and implement) within the scope of the language you use.
If the solution doesn't make sense in plain english, then it probably
won't be very pretty in code either.

Programming isn't just being able to think of an algorithm.  It's also
elegance in coding style and in logical organization of code.  So many
people seem to miss that last one.  My first paragraph says it all!

-wpr

jlg@lambda.UUCP (Jim Giles) (03/24/90)

From article <ROWE.90Mar23110717@stella.cme.nist.gov>, by rowe@cme.nist.gov (Walter Rowe):
> [...]
> This IS pretty nasty.  However, C doesn't have to be "hacky", nor does
> any other language.  "A chain is only as strong as its weakest link",
> and a language is only as good as the programmer using it.
                    ^^^^

I've been staying out of this thread, but the above invalid argument is
used too often in defence of mediocre language design.  The main problem
is the highlighted word.  The correct analogy with the 'chain' statement
is: "A language is, _at best_, as good as the programmer using it."  Even
_VERY_ good programmers can be effected (for good or ill) by the language
being used.

In the book, "The Right Stuff", it was pointed out that every time a
test pilot was killed in a test, the other test pilots would place the
blame on the _man_ and not the _machine_.  It was always something
like: "old Joe was a fair pilot, but this time he screwed the pooch."
Now, we all know that some of these early jets were deathtraps and that
blaming the machine was the correct interpretation of most of those
crashes.

Well, C programmers tend to have the same 'test pilot' mentality.  If
someone has problems with a language feature it's never the fault of
the language design.  But the fact of the matter is that C has a number
of things in it which even Dennis Ritchie would probably do differently
if he got a second chance.  So, while it _may_ be possible to 'fly'
C without the 'wings' comming off, it is also true that the 'wings'
should have been more sturdy to begin with.

J. Giles