Third public review of X3J11 C

Herman Rubin cik at l.cc.purdue.edu
Sat Aug 27 22:04:51 AEST 1988


In article <4203 at adobe.COM>, burgett at steel.COM (Michael Burgett) writes:
> These discussions about the flaws of the C language in dealing with complex
> floating point ops, and the *failure* of X3J11 to solicit input and rectify
> these things are getting _old_....
> 
> 1) C is not now, has not been in the past, and (hopefully) will not be in
> the future, a lanugage designed for writing scientific applications
> 
> 2) C was designed and implemented to remove the onus of using assembly language
> to write operating systems, utilities, device drivers and the ilk.  In this
> regard, it has no equal.

Whether C was designed for writing scientific applications is absolutely 
irrelevant.  English was not designed for discussing computer issues.
It was at least somewhat recognized that it might not be possible or
desirable to eliminate the use of assembler in C.

FORTRAN was designed specifically for the IBM704, and was not intended for
subroutine libraries.  Unfortunately, this language, whose inadequacies should
have been obvious to anyone with any understanding of computer hardware and
numerical mathematics, has become so common that many of its devotees cannot
understand that they could profitably use other languages.

Many people have posted that they can do a better job of programming numerical
applications in C than in FORTRAN.  How can _you_ flame them for that?

> In light of 1 & 2... where's the beef?  C is doing what it is designed to do,
> and from what I've seen of the ANSI standard, will continue to do so.  My hat
> off to the committee for not bowing to public pressure to try to make C all
> things to all people (can you say PL/1... I knew you could.)

That a badly designed language was rejected is irrelevant.

> If you want to write an application demanding scientific functions, write the 
> damn things in fortran and then write all the stuff that makes sense to, in C.
> (How would you like it if you hired a carpenter and he showed up with one tool
> to try and add a room on your house?)  This seems to me the essence of why we 
> have different languages to begin with, and all the whining, sniveling and 
> crying *shouldn't* change that... just face it, to program effectively
> you just might have to learn more than one language.... (shock! disbelief!!)

Can you provide me with a good way to program where one _line_ is in C and
another in FORTRAN?  Of course not.  Subroutine calls, cheap when FORTRAN and
ALGOL were produced, range from expensive to very expensive.  I do not exag-
gerate when I say one line.

I consider an instruction a tool, and a programming language a tool box.
It is useful to have electric drills, power saws, etc.  But a competent tool-
user knows when to use a given tool.  I expect a carpenter to know when not
to use a high-level power saw and use a low-level hand saw instead.  I expect
a programmer to know when to use an assembler instruction instead of clumsily
using C.

Also, a programmer is more like a constructor than a carpenter.  It is
sometimes even necessary for the same person to combine the tasks of a
carpenter, plumber, and electrician simultaneously.  Thus, the tool box
must contain all of the relevant tools.

BTW, I find the instruction set of any computer far simpler than any HLL.
Now the obfuscated assembler directives are another matter.
-- 
Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907
Phone: (317)494-6054
hrubin at l.cc.purdue.edu (Internet, bitnet, UUCP)



More information about the Comp.lang.c mailing list