comp.lang.ada
 help / color / mirror / Atom feed
From: Alan E & Carmel J Brain <aebrain@dynamite.com.au>
Subject: Re: Programming language vote - results
Date: 1997/11/19
Date: 1997-11-19T00:00:00+00:00	[thread overview]
Message-ID: <3473B221.14AE@dynamite.com.au> (raw)
In-Reply-To: 3470EF6E.F74@lysator.liu.se


Ingemar Ragnemalm wrote:

> There are plenty of people who use C since it is "cool", but just can't
> say what is so cool with it. It is cool because Mom can't understand it.
> No, they won't say that. You can identify that kind of people by the
> lack of comments in the code. They *want* it that way - and they are
> many!

> When you show the bad way to those kids, they think it is WAAAY cool!
> They will use any stinking obscure construction just because "it is
> valid C code".
> 
> Simple example from real life:
> 
> if (call_this() || call_that());
> 
> Valid, yes. Better than
> 
> if (!call_this()) call_that();
> 
> or more clear forms in other languages?
> Some people actually think so.


Here's a post from some time ago. I've had numerous requests from people
to circulate it around their offices. But no rebuttals....


> C is better than Ada because....
> 
> 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 lots 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.     

 

-- 
aebrain@dynamite.com.au     <> <>    How doth the little Crocodile
| Alan & Carmel Brain|      xxxxx       Improve his shining tail?
| Canberra Australia |  xxxxxHxHxxxxxx _MMMMMMMMM_MMMMMMMMM
 abrain@cs.adfa.oz.au  o OO*O^^^^O*OO o oo     oo oo     oo  
                    By pulling MAERKLIN Wagons, in 1/220 Scale






  parent reply	other threads:[~1997-11-19  0:00 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <343fbb5a.0@news.iprolink.ch>
1997-10-11  0:00 ` Programming language vote - results Gary L. Scott
1997-10-12  0:00   ` Jack Rudd
1997-10-13  0:00     ` safetran
1997-10-13  0:00       ` FRS DES
1997-10-13  0:00       ` Jack Rudd
1997-10-14  0:00         ` Philip Brashear
1997-10-14  0:00           ` Gary L. Scott
1997-10-13  0:00     ` Gary L. Scott
1997-10-13  0:00     ` Robert Munck
1997-10-13  0:00       ` Jack Rudd
1997-10-13  0:00       ` Gary L. Scott
     [not found]     ` <3442B745.5352@lmco.com>
1997-10-15  0:00       ` Gary L. Scott
1997-10-16  0:00       ` James Giles
1997-10-16  0:00         ` Andrew Haley
1997-10-13  0:00   ` David Ness
1997-10-14  0:00     ` Randy MacDonald
1997-10-14  0:00     ` Jan Karman
1997-10-15  0:00       ` Alan E & Carmel J Brain
1997-10-15  0:00         ` D'Arcy J.M. Cain
1997-10-15  0:00           ` FRS DES
1997-10-15  0:00           ` Mark Stephen
1997-10-17  0:00             ` Randy MacDonald
1997-10-16  0:00           ` Alan E & Carmel J Brain
1997-10-16  0:00             ` FRS DES
1997-10-17  0:00               ` Jerry van Dijk
1997-10-16  0:00             ` John Sullivan
1997-10-17  0:00               ` Alan E & Carmel J Brain
1997-10-17  0:00                 ` John Sullivan
1997-10-17  0:00               ` Randy MacDonald
1997-10-17  0:00             ` Randy MacDonald
1997-10-20  0:00               ` Alan E & Carmel J Brain
1997-10-20  0:00                 ` FRS DES
1997-10-21  0:00                   ` Alan E & Carmel J Brain
1997-10-20  0:00                 ` Lawrence Kirby
1997-10-20  0:00                   ` Kaz
1997-10-21  0:00                     ` Alan E & Carmel J Brain
1997-10-23  0:00                     ` Ada Readability (Re: Programming language vote - results) Ray Blaak
1997-10-21  0:00                   ` Programming language vote - results Alan E & Carmel J Brain
1997-10-21  0:00                 ` Randy MacDonald
1997-10-22  0:00                   ` Don Guinn
     [not found]                     ` <01bce1bf$5c2baaa0$95b66bcf@dkelly.ark.com>
1997-10-29  0:00                       ` FRS DES
1997-10-29  0:00                       ` Don Guinn
1997-10-29  0:00                         ` Shmuel (Seymour J.) Metz
1997-10-31  0:00                         ` Documenting Code (was:Programming language vote - results) Alan E & Carmel J Brain
1997-10-30  0:00                           ` Charles Lin
1997-10-30  0:00                             ` James L. Ryan
1997-10-31  0:00                               ` Robert Bernecky
1997-10-31  0:00                             ` Robert Bernecky
1997-11-01  0:00                           ` Randy MacDonald
1997-11-01  0:00                             ` Robert Dewar
1997-11-03  0:00                               ` Jon S Anthony
1997-10-29  0:00                     ` Programming language vote - results Randy MacDonald
1997-10-25  0:00                   ` Alan E & Carmel J Brain
1997-10-26  0:00                     ` functionality of Java (was Re: Programming language vote - results) Randy MacDonald
1997-10-23  0:00                 ` Programming language vote - results Jack Rudd
1997-10-25  0:00                   ` Alan E & Carmel J Brain
1997-10-25  0:00                     ` Kaz
1997-10-26  0:00                       ` FRS DES
1997-10-27  0:00                       ` Robert Bernecky
1997-10-27  0:00                         ` APL argument W. Wesley Groleau x4923
1997-10-28  0:00                           ` Randy MacDonald
1997-10-28  0:00                         ` Programming language vote - results Jan Karman
1997-10-28  0:00                           ` Robert Bernecky
1997-10-28  0:00                             ` James L. Ryan
1997-10-29  0:00                               ` Robert Bernecky
     [not found]                                 ` <bosworth-2910972044300001@access59.accsyst.com>
1997-10-30  0:00                                   ` Robert Bernecky
1997-10-30  0:00                                     ` James L. Ryan
1997-10-31  0:00                                       ` Robert Bernecky
1997-10-31  0:00                                         ` James L. Ryan
1997-10-29  0:00                     ` Jack Rudd
1997-10-25  0:00                 ` Peter Seebach
1997-11-18  0:00                   ` Ingemar Ragnemalm
1997-11-18  0:00                     ` firewind
1997-11-18  0:00                       ` Kevin Swan
1997-11-19  0:00                         ` Alan E & Carmel J Brain
1997-11-18  0:00                       ` Larry Elmore
1997-11-20  0:00                         ` firewind
1997-11-19  0:00                       ` Mike Smith
1997-11-19  0:00                         ` Matt
1997-11-20  0:00                         ` firewind
     [not found]                           ` <3474C71B.536B12F6@cgocable.net>
1997-11-21  0:00                             ` CVigue
1997-11-23  0:00                           ` Lawrence Kirby
1997-11-24  0:00                             ` FRS DES
1997-11-20  0:00                       ` Coding for Obscurity Alan E & Carmel J Brain
1997-11-20  0:00                         ` Stephan Wilms
1997-11-21  0:00                           ` Jos A. Horsmeier
1997-11-23  0:00                           ` Alex Krol
1997-11-24  0:00                             ` Jim Johnson
1997-11-24  0:00                               ` Mark Wilden
1997-11-26  0:00                                 ` Robert S. White
1997-11-26  0:00                                   ` Leon Jones
1997-11-26  0:00                                     ` Ron Natalie
1997-11-27  0:00                                       ` Joerg Rodemann
1997-11-26  0:00                                     ` Lawrence Kirby
1997-11-26  0:00                                   ` Miguel Carrasquer Vidal
1997-12-01  0:00                                     ` ISONE
1997-12-01  0:00                                     ` ISONE
1997-11-26  0:00                                   ` Mark Wilden
1997-11-27  0:00                                   ` Richard A. O'Keefe
1997-11-23  0:00                           ` Al Christians
1997-11-24  0:00                           ` Richard A. O'Keefe
1997-11-24  0:00                             ` Matt
1997-11-24  0:00                               ` Ed Falis
1997-11-24  0:00                             ` Samuel T. Harris
1997-11-24  0:00                               ` Jon S Anthony
1997-11-25  0:00                                 ` Samuel T. Harris
1997-11-20  0:00                         ` firewind
1997-11-20  0:00                           ` Jos A. Horsmeier
1997-11-20  0:00                       ` Programming language vote - results Andy Knight
1997-11-20  0:00                         ` firewind
1997-11-20  0:00                       ` Terry Richards
1997-11-20  0:00                         ` Andy Knight
1997-11-23  0:00                         ` Alex Krol
1997-11-25  0:00                         ` William Tanksley
1997-11-26  0:00                           ` Ron Natalie
1997-11-27  0:00                             ` William Tanksley
1997-11-27  0:00                               ` Lawrence Kirby
     [not found]                                 ` <65keij$mkd$1@nerd.apk.net>
1997-11-27  0:00                                   ` Kaz Kylheku
1997-11-28  0:00                               ` Shmuel (Seymour J.) Metz
1997-12-01  0:00                                 ` FRS DES
1997-11-18  0:00                     ` Lawrence Kirby
1997-11-24  0:00                       ` Martin M Dowie
1997-11-25  0:00                         ` Mark Wilden
1997-11-25  0:00                           ` Martin M Dowie
1997-11-26  0:00                             ` Lawrence Kirby
1997-11-26  0:00                           ` FRS DES
1997-11-25  0:00                         ` Kaz Kylheku
1997-11-26  0:00                           ` Peter Seebach
1997-12-02  0:00                           ` ANDREAS LEITNER
1997-12-02  0:00                             ` Robert Dewar
1997-12-02  0:00                             ` Lawrence Kirby
1997-12-03  0:00                               ` Billy Chambless
1997-12-03  0:00                                 ` Robert Dewar
1997-12-05  0:00                             ` John Sullivan
1997-11-18  0:00                     ` Kevin Swan
1997-11-29  0:00                       ` Ingemar Ragnemalm
1998-09-10  0:00                         ` Steven Katz
1997-11-19  0:00                     ` Peter Seebach
1997-11-19  0:00                     ` Alan E & Carmel J Brain [this message]
1997-10-16  0:00           ` Randy MacDonald
     [not found]           ` <01bcdad2$fa9fdf60$25a43a91@basil.omroep.nl>
1997-10-17  0:00             ` D'Arcy J.M. Cain
1997-10-17  0:00         ` Robert I. Eachus
1997-10-13  0:00   ` Robert S. White
1997-10-13  0:00     ` Gary L. Scott
1997-10-13  0:00   ` Matthew Heaney
1997-10-14  0:00     ` Gary L. Scott
1997-10-19  0:00 ` William Rapp
replies disabled

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