Re: Why C Is Not My Favourite Programming Language

From: Walter Roberson (roberson_at_ibd.nrc-cnrc.gc.ca)
Date: 02/07/05


Date: 7 Feb 2005 06:01:27 GMT

In article <1107730105.094879.169350@o13g2000cwo.googlegroups.com>,
 <evolnet.regular@gmail.com> wrote:

|Walter Roberson wrote:

|> In article <1107712244.433726.63320@o13g2000cwo.googlegroups.com>,
|> <evolnet.regular@gmail.com> wrote:

|> :True, but my point is:

|> :(1) C introduces entirely new classes of bugs

|> Introduced relative to -what- ? Do I get to compare it against
|> the other languages that were available at the time of it's
|> development in 1969-1973, such as:

|Yes. Don't forget to compare it to all of the other, superior languages
|that have been created subsequently, too!

I don't see any meaningful sense in which it can be said that C
"introduces" classes problems when compared against programming
languages that were developed afterwards.

| - Fortran 66, Fortran G, Fortran H

No character constants, no character strings. Hollorith literals were
new in FORTRAN 66, as was equivilencing with all the accompany typing
horrors and ill-defined padding rules. Those were the days when
you really could change the value of a constant in FORTRAN by passing
it by value and then assigning a value into the dummy parameter.

One of the first things I did while working with the organization
I work with now, was to sit and go through an official IBM FORTRAN G
and H reference manual... correcting it by memory. There were
a fair number of mistakes.

| - The original Pascal (1970)

I worked for a couple of years for a company that designed one of the
first all-digital telephone switches. The line card programming was
Motorola 68020 assembler (I got pretty good at reading core
and patching code in binary), but all the higher level programming
was done in Pascal. Except that it *couldn't* be done in Pascal
as defined by The Pascal User Manual and Report, so there was a team
of people that did nothing but rewrite the compiler itself, extending
it and optimizing it for real use. Pascal doesn't have "include"
files or anything similar, so in order to use the real Pascal of the
time, one would have to include all of the interface and constant
definitions in every program, and change all several hundred copies
of them when [for example] the maximum line card density was increased.
And actually talk to hardware? Not a chance without extending it
to be able to violate all the strong typing rules that were the
heart of Pascal.

| - PL/1 (1969)

According to wikipedia.org,

  It has a very large vocabulary of built-in functions. In fact,
  there is probably no one compiler that has the full standard of
  keywords available. PL/I compilers are normally subsets of the
  language that specialize in various fields.

And you complain about the number of library functions defined
for C!

| - Algol 68

An interesting language, but I will need to refer to my dusty manual
before making further comments.

| - APL (1969)

APL... the famous "write-only language", with too many operators to
fit into even minor extensions to ANSI -- one needed a full APL
keyboard. Too many ways to do things in C? APL had more ... most of
them unreadable the week after you'd written the code. Oh, and
the goto operator was pretty much mandatory.

Don't suppose here that I am slandering APL: I am one of the few that
bothered to buy a real APL terminal our of my own pocket [while still
a student!]. APL is nice for great for some kinds of work...
but to do any systems programming, you pretty much had to go behind
it's back and hack in a new (non-portable) i-beam operator.
And the only way to pass operators (functions) around was textually
and then eval the string.

| - LISP, LISP 1.5, MacLIS

This was before the LISP machines, before Interlisp, before
Common Lisp. Not exactly a strongly typed language [though there
was certainly nothing stopping you from locally extending the
standard operators by defining a new function with the same
name that tested for particular conditions and passed off control
to the CDR of the previous definition of the function...]

-- 
Would you buy a used bit from this man??


Relevant Pages

  • Re: Happy 7-8-9!
    ... symbol for a blank space - kind of a small b with a slash thru it. ... incarnations - usually with the year of it's coming into use, as in FORTRAN ... major language used for business programming - think Point of Sales - was ...
    (rec.crafts.textiles.needlework)
  • Re: A petition to J3 apropos FORTRANs future
    ... >> web programming, GUI development, and text analysis. ... >> may partially explain the small market share of Fortran. ... almost NO new code would be written in the language. ... time on the types of codes that scientists and engineers want and need to ...
    (comp.lang.fortran)
  • Re: interpretive vs. compiled
    ... for specific needs in FORTRAN. ... Nowadays, workstations are also available to engineers, and there's no ... Excel/VBA and much less exposure to programming. ... colleges are wondering what language to use in classes. ...
    (comp.programming)
  • Re: Why C Is Not My Favourite Programming Language
    ... "introduces" classes problems when compared against programming ... | - Fortran 66, Fortran G, Fortran H ... An interesting language, but I will need to refer to my dusty manual ... | - APL ...
    (comp.lang.c)
  • Re: Has incompetent programming destroyed America?
    ... Perils of Financial Innovations" documents a culture of APL at Wall ... Programming Language), and wrote "It is the language of the future for ... Moore's law doesn't change the fact that interpretation can always ...
    (comp.programming)