comp.lang.ada
 help / color / mirror / Atom feed
* C is 'better' than Ada because...
@ 1996-06-19  0:00 Alan Brain
  1996-06-20  0:00 ` Ron Thompson
                   ` (6 more replies)
  0 siblings, 7 replies; 253+ messages in thread
From: Alan Brain @ 1996-06-19  0:00 UTC (permalink / raw)



The first real-world C program I did was in 1980. Since 1983 I've been trying to 
convince C hackers about the benefits of Ada. Those that actually were forced to do 
some real project in Ada were quickly converted. But mainly, no-one tried.

Trying to tell people about the benefits often leads to complete stonewalling. There 
has to be a logical reason for this - few programmers have low IQs.

I've finally become convinced that C really IS better than Ada, for the following 
reasons:


FOR THE PROGRAMMER

..Hacking away in C is fun, you can add trapdoors and trojan horses real easy

..You can write neat stuff like the following code fragments:

    #define BITCOUNT(x)      (((BX_(x)+(BX_(x)>>4)) & 0x0F0F0F0F) % 255)
    #define BX_(x)            ((x) - (((x)>>1)&0x77777777)  \
                                   - (((x)>>2)&0x33333333)  \
                                   - (((x)>>3)&0x11111111)
    p = BX_(n);

    n = ((n>>1)  & 0x55555555) | ((n<<1)  & 0xaaaaaaaa);
    n = ((n>>2)  & 0x33333333) | ((n<<2)  & 0xcccccccc);
    n = ((n>>4)  & 0x0f0f0f0f) | ((n<<4)  & 0xf0f0f0f0);
    n = ((n>>8)  & 0x00ff00ff) | ((n<<8)  & 0xff00ff00);
    n = ((n>>16) & 0x0000ffff) | ((n<<16) & 0xffff0000);

   which is difficult to understand, and makes you look really, really clever,
   even though it does something utterly trivial ( p is the number of bits in n,
   and n ends up with its bit order reversed )

..You'll always have a secure job, trying to make sense of other people's code
   after they've left

..You'll always have a secure job, as with well-written, terse, tight and
   efficient C YOU are the ONLY one who can easily understand your own code!

..You'll always have a secure job, as large C programs always have lots of bugs,
   and require oodles of maintenance

..Compiling is really easy - even when the stuff you're compiling is utter
   garbage, the compiler won't tell on you

..You can ignore most of your coding errors until quite late in the day - with
   any luck, until you've left the project


FOR THE SUPPLIER

..You can always find C hackers, and they're dirt cheap

..With C, you get the initial build done quick, cheap and dirty, and make a
   fortune over the next 10 years putting in new bugs while removing old ones.


FOR THE CUSTOMER

..Because programmers and suppliers tell you so.



Ada is worse than C because

..Only Anal-retentive weenies who mumble about Quality and Professionalism
   would get any fun out of Ada

..You'd get into the habit of writing stuff like

   with MACHINE_SPECIFIC;

   procedure COUNT_BITS_AND_REVERSE
     ( THE_WORD  : in out MACHINE_SPECIFIC.WORD_TYPE,
       THE_COUNT :    out MACHINE_SPECIFIC.BIT_COUNT_TYPE
     ) is

   declare

     package BIT_OPS renames MACHINE_SPECIFIC.BIT_OPERATIONS;

   begin

     THE_COUNT := BIT_OPS.BIT_COUNT_OF(THE_WORD);
     BIT_OPS.REVERSE_BIT_ORDER_OF(THE_WORD);

   exception
 
     when others => raise CODE_CORRUPTED_OR_HARDWARE_ERROR;

   end COUNT_BITS_AND_REVERSE;

   which any fool can easily understand, even though it does trap some of
   the errors caused by the over-running array bounds in the C you've had
   to PRAGMA INTERFACE to, soft errors, and hardware glitches.
   Not only that, it works on 16, 32, 64, 48 etc bit machines as well. so
   can't get lost of bucks writing different versions.
   And then the compiler barfs, and tells you what you've done wrong!

..You spend a long time looking for a job, as your code on the last project
   worked so well that the project completed on time, and you were no longer
   needed.

..You spend a long time looking for a job, as the maintenance effort needed
   consisted of 2 part-timers rather than the whole development team

..You spend a long time looking for a job, as no-one uses Ada

..Getting a Clean Compile of anything non-trivial is quite difficult.

..Your Ego takes a hammering by the compiler constantly showing you where
   you made mistakes. And if not the compiler, the Linker!


FOR A SUPPLIER

..Ada programmers are rare and expensive. You can't hire cheap graduate coolies.

..It costs more initially to make a system, and it takes longer. Much worse,
   there's almost no maintenance, so your only revenue is from the initial sale.


FOR A CUSTOMER

..Because the programmers and suppliers tell you so.


That's the bottom line, people. The only people who benefit from Ada are the
customers and users. The user riding on a 777 generally doesn't know that any
programming was involved, and the customers rely on advice from their suppliers.

Until we understand that, all arguments regarding the qualities of Ada are
irrelevant.     





^ permalink raw reply	[flat|nested] 253+ messages in thread
* Re: Ada is 'better' than C because...
@ 1996-08-13  0:00 Spasmo
  0 siblings, 0 replies; 253+ messages in thread
From: Spasmo @ 1996-08-13  0:00 UTC (permalink / raw)



OBryan Anthony H (aho450s@nic.smsu.edu) wrote:
: William Clodius (clodius@hotspec.lanl.gov) wrote:

: : Not quite. First when passed as an argument to a user defined function
: : a C array looses a lot of its distinction from a pointer, a problem
: : that many other languages do not have. Second, while (almost?) all

:   I have a hard time seeing this as a problem.  It's one of the fantastic 
: advantages of the C language.  An array of any given type can be passed 
: to a user function and treated as an array of any other integral type, 
: converted, processed, etc. in any manner the programmer desires.

Actually it's an awful problem and it's one of the crippling problems
that plagues C.  Since an array is in many respects interchangable
with a pointer you have (once again) opened the door to the types
of disasters that C is infamous for.  I mean you can pass a pointer
to a function, and treat it like an array by accident, or vice versa.
The Ada method is much better.  There is a distinction between arrays
and pointers (hell, they aren't anywhere near the same thing), and
so when you have an array parameter in Ada, it will expect an array.
Still no flexibility is lost since you can declare types of 
unconstrained arrays which means arrays of any size can be passed,
and this of course can be combined with the generic capabilities
of Ada to give you far more flexibility than you could ever hope
to have in C, and something else you don't have in C -- safety.



: : additional capabilities that C arrays lack, the ability to specify
: : array shape in arguments (Fortran I), and various forms of whole array
: : operations, APL, PL/I, Algol 68, and Fortran 90.

: What do you mean by array shape?  C is fully capable of performing whole 
: array operations.  The capability is not embedded in the language, as C 
: is designed to provide only the bare necessicities for program 
: development with all else being provided in function extensions, but the 
: language itself allows for anything a machine is capable of doing.

I'm assuming actually having the size of the array be specified in
the parameter and checked.  In C while you can specify an array
size in a parameter, it does absolutely nothing since you are
free to overrun that size to your heart's content.  As for 
array operations, again I think he may mean doing things like
assignment and equality comparisons on arrays, something that
C again cannot do with any aggregate types.  This limitation
becomes a major pain in the posterior when you get to C++ and
generic subprograms since you end up having to code all sorts
of ugly hacks just to get many generic types to behave properly.


--
Spasmo
"Everyone has secrets, but sometimes you get caught,
 So if it's just between us, my silence can be bought"
	"Blackmail" by Sloppy Seconds





^ permalink raw reply	[flat|nested] 253+ messages in thread

end of thread, other threads:[~1996-09-05  0:00 UTC | newest]

Thread overview: 253+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-06-19  0:00 C is 'better' than Ada because Alan Brain
1996-06-20  0:00 ` Ron Thompson
1996-06-22  0:00 ` Nasser Abbasi
1996-06-22  0:00   ` David Morton
1996-06-22  0:00     ` Robert Dewar
1996-06-23  0:00       ` The Deviant
1996-06-23  0:00         ` Robert Dewar
1996-06-23  0:00         ` Michael Feldman
1996-06-23  0:00         ` John Winters
1996-06-24  0:00         ` token%/etc/HOSTNAME
1996-06-23  0:00     ` John Winters
1996-06-23  0:00       ` David Morton
1996-06-23  0:00         ` Lawrence Kirby
1996-06-27  0:00           ` ) OH NO "...begs the question..." Ralph Silverman
1996-06-28  0:00             ` Bill Wendling
1996-06-23  0:00         ` C is 'better' than Ada because John Winters
1996-06-23  0:00           ` David Morton
1996-06-30  0:00   ` Nasser Abbasi
1996-06-23  0:00 ` Nasser Abbasi
1996-06-23  0:00   ` Fergus Henderson
1996-06-23  0:00     ` Robert Dewar
1996-06-28  0:00       ` Fergus Henderson
1996-06-29  0:00 ` Kevin D. Quitt
1996-06-29  0:00   ` Robert Dewar
1996-06-30  0:00   ` Fergus Henderson
1996-07-01  0:00     ` Mike Roske
1996-07-01  0:00       ` Robert Dewar
1996-07-02  0:00       ` Ken Garlington
1996-07-03  0:00     ` Kevin D. Quitt
1996-07-04  0:00       ` Ian Ward
1996-07-05  0:00         ` Peter Amey
1996-07-05  0:00           ` Robert Dewar
1996-07-10  0:00             ` James A. Squire
1996-07-15  0:00               ` Oliver Kellogg
1996-07-16  0:00                 ` Oliver Kellogg
1996-07-18  0:00                   ` Fraser Wilson
1996-07-18  0:00                     ` Fergus Henderson
1996-07-19  0:00                   ` Keith Thompson
1996-07-17  0:00                 ` Robert Dewar
1996-07-11  0:00             ` James A. Squire
1996-07-16  0:00             ` Nasser Abbasi
1996-07-16  0:00               ` Mark A Biggar
1996-07-17  0:00             ` James A. Squire
1996-07-17  0:00             ` Laurent Guerby
1996-07-17  0:00               ` David Emery
1996-07-18  0:00             ` James A. Squire
1996-07-07  0:00           ` Kevin D. Quitt
1996-07-08  0:00             ` Ian Ward
1996-07-18  0:00               ` Hamilton Link
1996-07-19  0:00                 ` Kevin D. Quitt
1996-07-08  0:00             ` Robert Dewar
1996-07-10  0:00               ` John F. Bode
1996-07-11  0:00                 ` Mike Roske
1996-07-10  0:00               ` Peter Hermann
1996-07-15  0:00                 ` Tim McGuire
1996-07-16  0:00                   ` Kevin D. Quitt
1996-07-16  0:00                     ` Robert Dewar
1996-07-18  0:00                     ` Bob Gilbert
1996-07-19  0:00                       ` Kevin D. Quitt
1996-07-18  0:00                     ` Ken Garlington
1996-07-19  0:00                       ` Kevin D. Quitt
1996-07-19  0:00                         ` Richard O'Rourke
1996-07-22  0:00                           ` Kevin D. Quitt
1996-07-22  0:00                             ` Robert Dewar
1996-07-23  0:00                               ` Tim Behrendsen
1996-07-24  0:00                                 ` JamesS1889
1996-07-24  0:00                                 ` Theodore E. Dennison
1996-07-27  0:00                                   ` Tim Behrendsen
1996-07-29  0:00                                     ` Ada is 'better' than C because John Herro
1996-07-30  0:00                                       ` Brian Rogoff
1996-07-30  0:00                                         ` Adam Beneschan
1996-07-31  0:00                                         ` Franz Kruse
1996-08-04  0:00                                       ` Richard Riehle
1996-08-05  0:00                                         ` Sandy McPherson
1996-08-06  0:00                                           ` Ken Garlington
1996-08-06  0:00                                             ` GAFFNEY.BRIAN
1996-08-07  0:00                                               ` Ken Garlington
1996-08-08  0:00                                             ` Theodore E. Dennison
1996-08-08  0:00                                               ` Frank Lipski
1996-08-09  0:00                                             ` Sandy McPherson
1996-08-15  0:00                                             ` Mike Stark
1996-08-07  0:00                                           ` Bob Kitzberger
1996-08-08  0:00                                           ` Robert Dewar
1996-08-08  0:00                                             ` Kevin D. Quitt
1996-07-29  0:00                                     ` C is 'better' than Ada because Bob Kitzberger
1996-07-30  0:00                                       ` Tim Behrendsen
1996-07-30  0:00                                         ` Richard A. O'Keefe
1996-07-30  0:00                                           ` Tim Behrendsen
1996-07-30  0:00                                         ` Theodore E. Dennison
1996-07-29  0:00                                     ` Dirk Dickmanns
1996-07-30  0:00                                       ` Tim Behrendsen
1996-07-31  0:00                                         ` Dirk Dickmanns
1996-07-31  0:00                                           ` Kevin D. Quitt
1996-08-01  0:00                                             ` Alan Brain
1996-08-02  0:00                                               ` Kevin D. Quitt
1996-08-05  0:00                                                 ` Byron B. Kauffman
1996-08-15  0:00                                               ` Mike Roske
1996-08-15  0:00                                                 ` David Shochat
1996-08-16  0:00                                                   ` Ken Garlington
1996-08-16  0:00                                                 ` John Herro
1996-08-16  0:00                                                   ` John Herro
1996-08-16  0:00                                                 ` Jon S Anthony
1996-08-05  0:00                                             ` Robb Nebbe
1996-08-02  0:00                                           ` Dirk Dickmanns
1996-07-31  0:00                                         ` whiting_ms@corning.com (Matt Whiting)
1996-07-30  0:00                                     ` Theodore E. Dennison
1996-08-08  0:00                                     ` Ada is 'better' than C because William Clodius
1996-08-09  0:00                                       ` Robert Dewar
1996-08-09  0:00                                       ` Kevin D. Quitt
1996-08-12  0:00                                       ` OBryan Anthony H
1996-08-12  0:00                                         ` Bob Kurtz
1996-08-12  0:00                                         ` Lawrence Kirby
1996-08-13  0:00                                         ` Tom Watson
1996-08-14  0:00                                         ` Robert Dewar
1996-07-29  0:00                                   ` C is 'better' than Ada because system
1996-07-30  0:00                                     ` Tim Behrendsen
1996-07-24  0:00                                 ` Dirk Dickmanns
1996-07-25  0:00                                 ` Alan Brain
1996-07-23  0:00                               ` Kevin D. Quitt
1996-07-24  0:00                                 ` Theodore E. Dennison
1996-07-24  0:00                                   ` Kevin D. Quitt
1996-07-25  0:00                                     ` Alan Brain
1996-07-25  0:00                                     ` Steve Howard
1996-07-27  0:00                                     ` Bob Kitzberger
1996-07-26  0:00                                   ` Mike Roske
1996-07-25  0:00                                 ` Fergus Henderson
1996-07-25  0:00                                   ` Kevin D. Quitt
1996-07-26  0:00                                     ` Fergus Henderson
1996-07-26  0:00                                     ` kennedy1
1996-07-23  0:00                               ` Theodore E. Dennison
     [not found]               ` <4rvr2j$2gb0@info4.rus.uni-s <nhn30yhw6t.fsf@paralysys>
1996-07-18  0:00                 ` Robert Dewar
1996-07-18  0:00                 ` Kevin D. Quitt
1996-07-26  0:00                 ` Richard Riehle
1996-07-08  0:00             ` C is 'better' than Ada ... NOT!! Hugh Dunne
1996-07-08  0:00               ` Kevin D. Quitt
1996-07-12  0:00                 ` C is 'better' than Ada because John F. Bode
1996-07-15  0:00                   ` Sandy McPherson
1996-07-18  0:00                     ` Robert Dewar
1996-07-19  0:00                       ` Theodore E. Dennison
1996-07-19  0:00                     ` Theodore E. Dennison
1996-07-19  0:00                     ` Ken Garlington
1996-07-20  0:00                       ` Michael Feldman
1996-07-21  0:00                         ` Alfonso Urdaneta
1996-07-21  0:00                           ` Robert Dewar
1996-07-22  0:00                             ` Kevin D. Quitt
1996-07-22  0:00                               ` Robert Dewar
1996-07-26  0:00                               ` Richard Riehle
     [not found]                             ` <31f3c52e.238719470 <Pine.GSO.3.92.960726122347.25896E-100000@nunic.nu.edu>
1996-07-31  0:00                               ` Darrin Smith
1996-07-31  0:00                                 ` Fergus Henderson
1996-08-01  0:00                                 ` Jerry van Dijk
1996-08-06  0:00                                   ` Kirk Bradley
1996-08-09  0:00                                   ` Richard Riehle
1996-08-10  0:00                                     ` Craig Franck
1996-08-16  0:00                                       ` Richard Riehle
1996-08-18  0:00                                         ` Craig Franck
     [not found]                                       ` <Pine.GSO.3.92.960816102000. <4v5pis$4h1@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-18  0:00                                         ` David Weller
1996-08-15  0:00                                     ` Mike Stark
1996-08-02  0:00                                 ` Robert Dewar
1996-08-11  0:00                             ` Jon S Anthony
     [not found]                             ` <31f3c52e.238719470 <4uj42h$j06@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-11  0:00                               ` Doug & Rose Miller
1996-08-11  0:00                                 ` Craig Franck
1996-08-11  0:00                                   ` Doug & Rose Miller
1996-08-12  0:00                                     ` Craig Franck
1996-08-16  0:00                                       ` nasser
     [not found]                             ` <31f3c52e.238719470 <4v5pis$4h1@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-18  0:00                               ` Doug & Rose Miller
1996-08-20  0:00                                 ` Craig Franck
1996-07-23  0:00                         ` Ken Garlington
1996-07-27  0:00                       ` Tim Behrendsen
1996-07-27  0:00                         ` Lawrence Kirby
1996-07-29  0:00                         ` Ian Ward
1996-07-30  0:00                         ` Bob Cousins
1996-07-30  0:00                           ` Robert Dewar
1996-09-05  0:00                             ` Bob Cousins
1996-08-13  0:00                       ` Jon S Anthony
1996-08-14  0:00                         ` Craig Franck
1996-08-28  0:00                           ` Van Snyder
1996-08-14  0:00                       ` Jon S Anthony
1996-08-15  0:00                         ` Craig Franck
1996-08-15  0:00                           ` Joe Gwinn
1996-08-16  0:00                             ` Don Nelson
1996-08-19  0:00                               ` Joe Gwinn
1996-08-19  0:00                                 ` Ken Garlington
1996-08-28  0:00                         ` Van Snyder
1996-08-30  0:00                           ` Norman H. Cohen
1996-08-15  0:00                       ` Stefan 'Stetson' Skoglund
1996-08-15  0:00                       ` Jon S Anthony
1996-08-20  0:00                         ` nasser
1996-08-15  0:00                     ` David Weller
1996-08-15  0:00                       ` William  C Brennan
1996-07-08  0:00               ` C is 'better' than Ada ... NOT!! Frank Manning
1996-07-10  0:00             ` C is 'better' than Ada because Stephen M O'Shaughnessy
1996-07-10  0:00               ` Peter Seebach
1996-07-18  0:00             ` Brian Rogoff
1996-07-19  0:00             ` James A. Squire
1996-07-29  0:00             ` William Clodius
1996-07-30  0:00               ` Richard A. O'Keefe
1996-07-30  0:00                 ` Tim Behrendsen
1996-08-01  0:00                   ` Byron B. Kauffman
1996-08-01  0:00                     ` Ian Ward
1996-07-30  0:00               ` Robert Dewar
1996-07-31  0:00                 ` Tim Behrendsen
     [not found]                   ` <9608020139.AA29105@pulsar.telesoft>
1996-08-02  0:00                     ` Tim Behrendsen
1996-08-05  0:00                       ` Kevin D. Quitt
1996-08-06  0:00                         ` is Ada 'better' than C? (Was: Re: C is 'better' than Ada because...) Antoine Leca
1996-08-06  0:00                           ` Kevin D. Quitt
1996-07-31  0:00               ` C is 'better' than Ada because Ralph Silverman
1996-07-30  0:00             ` Robert I. Eachus
1996-08-01  0:00               ` David Wheeler
1996-07-30  0:00             ` William Clodius
1996-08-01  0:00               ` Tim Behrendsen
1996-08-01  0:00             ` Olivier Devuns @pulsar
1996-08-11  0:00             ` Jon S Anthony
1996-08-12  0:00               ` Craig Franck
1996-08-12  0:00                 ` John Howard
1996-08-13  0:00                   ` Craig Franck
1996-08-13  0:00                     ` Ken Garlington
1996-08-14  0:00                       ` Craig Franck
1996-08-12  0:00                 ` James A. Squire
1996-08-12  0:00                   ` Craig Franck
1996-08-14  0:00                 ` Stephen M O'Shaughnessy
1996-08-14  0:00                 ` Stephen M O'Shaughnessy
     [not found]                 ` <Pine.GS <gwinn-1908961215100001@smc19.ed.ray.com>
1996-08-19  0:00                   ` Adam Beneschan
1996-08-11  0:00             ` Ada 95 is a FREE language (was: C is 'better' than Ada because...) Laurent Guerby
1996-08-13  0:00             ` C is 'better' than Ada because Jon S Anthony
1996-08-13  0:00             ` Jon S Anthony
1996-08-14  0:00             ` Norman H. Cohen
1996-08-19  0:00             ` Jon S Anthony
1996-08-20  0:00               ` Craig Franck
1996-08-20  0:00             ` Jon S Anthony
1996-08-21  0:00               ` Craig Franck
1996-08-27  0:00             ` Valentin Bonnard
1996-07-06  0:00         ` Walter B. Hollman Sr.
1996-07-05  0:00       ` Jon S Anthony
1996-07-08  0:00         ` Peter Hermann
1996-07-09  0:00           ` Dirk Dickmanns
1996-07-12  0:00       ` ntxbow
1996-07-15  0:00         ` Kevin D. Quitt
1996-07-15  0:00           ` Robert Dewar
1996-07-16  0:00           ` Ian Ward
1996-07-17  0:00             ` Dale Stanbrough
1996-07-23  0:00       ` Jon S Anthony
1996-07-29  0:00       ` William Clodius
1996-07-31  0:00       ` Darin Johnson
1996-08-01  0:00         ` Tim Behrendsen
1996-08-01  0:00       ` Jon S Anthony
1996-08-01  0:00       ` Jon S Anthony
1996-08-05  0:00       ` Stefan 'Stetson' Skoglund
1996-08-16  0:00       ` Jon S Anthony
     [not found] ` <874508446wnr@t-cubed.demon.co.uk>
1996-06-29  0:00   ` Jon S Anthony
1996-07-01  0:00 ` James A. Squire
1996-07-02  0:00 ` Darin Johnson
1996-07-03  0:00   ` If your only tool is a hammer, all your problems look like nails (was Re: C is 'better' than Ada because...) Bruce Clement
  -- strict thread matches above, loose matches on Subject: below --
1996-08-13  0:00 Ada is 'better' than C because Spasmo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox