From: Tim Behrendsen <tim@airshields.com>
Subject: Re: C is 'better' than Ada because...
Date: 1996/08/01
Date: 1996-08-01T00:00:00+00:00 [thread overview]
Message-ID: <Pine.A32.3.91.960801090756.64586H-100000@wc.airshields.com> (raw)
On Thu, 1 Aug 1996, Byron B. Kauffman wrote:
> Tim Behrendsen wrote:
> >
> snip...
> >
> > You are probably right, if you let the optimizer handle everything.
> > But C also gives the capability to do things such as ...
> >
> > if ((array[++n] = GetValue(arg)) != 0) {
> > ....
> >
> > v.s. a typical non-C language ...
> >
> > n = n + 1;
> > array[n] = GetValue(arg);
> > if (array[n] != 0) {
> > ...
> > }
> >
> > Now, which is easier to optimize? (more snip)
> >
>
> Tim, I'm 180 degrees out of phase from you, experience-wise. I've
> professionally done around 10klocs of Ada, and about 24 or so lines of
> C, although I sucked it up and took C++ from a local junior college last
> fall just so I can say that I did.
>
> With all that in mind, I'm going to ask (in reference to the code
> samples above), which is easier to read and/or maintain? The answer,
> from my C-ignorant perspective, is the non-C example, but a C compiler
> obviously wouldn't have a problem with it. Unfortunately, though, the
> compiler is not the one that maintains or ports the code to another
> platform. IMHO, this is where Ada has the edge over C - it was designed
> primarily with the -ilities in mind. I don't know if it is the industry
> norm, but my primary job description for years was 80% code maintenance
> and rehosting, 20% new code. It is my perception that that is what was
> eating DoD's lunch and why they commissioned Ada.
My statement above is a very common C expression; if you used it every
day, you would think nothing of it. In fact, I could make a strong
argument that the first example is much more readable/maintainable,
because it's brief and concise. Too much of the latter, of course, begins
to be a bad thing (take APL, for example).
I certainly don't mean to imply that maintainability isn't important;
in fact, I think it's the *most* important. If there are significant
gains to be made in that department, then I think Ada has a chance
to succeed out of its nitch.
Having personally written in the neighborhood of 200-300 klocs of C code
(guess? could be more), I think I have a pretty good sense of how things
gets optimized. My main point, which I think is getting lost in the
swirl of examples, is that in the real world, optimizers aren't that
smart. Yes, you can find the "super optimizer" that does a good job when
run in "-cape" mode, but in the everyday trenches, I just don't come
across them very often.
There just is no substitute for writing code with an eye toward what
the compiler can and will do with it.
Regards,
-- Tim Behrendsen (tim@airshields.com)
next reply other threads:[~1996-08-01 0:00 UTC|newest]
Thread overview: 239+ messages / expand[flat|nested] mbox.gz Atom feed top
1996-08-01 0:00 Tim Behrendsen [this message]
1996-08-02 0:00 ` C is 'better' than Ada because Mark McKinney
1996-08-02 0:00 ` David Bonham
[not found] ` <9608061851.AA17508@camo.brc.shell.com>
1996-08-06 0:00 ` Tim Behrendsen
[not found] <Pine.GSO.>
[not found] ` <4 <4vb399$kt8@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-20 0:00 ` Adam Beneschan
1996-08-20 0:00 ` Craig Franck
1996-08-21 0:00 ` Mike Roske
1996-08-21 0:00 ` William C Brennan
-- strict thread matches above, loose matches on Subject: below --
1996-08-04 0:00 @#$%!?!
1996-08-01 0:00 William Clodius
1996-08-03 0:00 ` Tim Behrendsen
1996-08-05 0:00 ` Kevin D. Quitt
1996-08-05 0:00 ` Stefan 'Stetson' Skoglund
1996-08-05 0:00 ` William Clodius
1996-07-30 0:00 Spasmo
1996-07-31 0:00 ` Jon S Anthony
1996-08-01 0:00 ` Tim Behrendsen
1996-08-02 0:00 ` Ralph Silverman
[not found] ` <01bb7e29$61e3d260$87ee6fce@timpent.airshields.com>
1996-07-31 0:00 ` Bob Kitzberger
1996-07-31 0:00 ` Tim Behrendsen
1996-06-19 0:00 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 ` John Winters
1996-06-23 0:00 ` Michael Feldman
1996-06-23 0:00 ` Robert Dewar
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 ` John Winters
1996-06-23 0:00 ` David Morton
1996-06-23 0:00 ` Lawrence Kirby
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 ` Laurent Guerby
1996-07-17 0:00 ` David Emery
1996-07-17 0:00 ` James A. Squire
1996-07-18 0:00 ` James A. Squire
1996-07-07 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 ` 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-07-29 0:00 ` 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 ` Steve Howard
1996-07-25 0:00 ` Alan Brain
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 ` kennedy1
1996-07-26 0:00 ` Fergus Henderson
1996-07-23 0:00 ` Theodore E. Dennison
[not found] ` <4rvr2j$2gb0@info4.rus.uni-s <nhn30yhw6t.fsf@paralysys>
1996-07-18 0:00 ` Kevin D. Quitt
1996-07-18 0:00 ` Robert Dewar
1996-07-26 0:00 ` Richard Riehle
1996-07-08 0:00 ` Ian Ward
1996-07-08 0:00 ` C is 'better' than Ada ... NOT!! 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 ` 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 ` Jon S Anthony
1996-08-20 0:00 ` nasser
1996-08-15 0:00 ` Stefan 'Stetson' Skoglund
1996-07-19 0:00 ` Theodore E. Dennison
1996-08-15 0:00 ` David Weller
1996-08-15 0:00 ` William C Brennan
1996-07-18 0:00 ` Hamilton Link
1996-07-19 0:00 ` Kevin D. Quitt
1996-07-10 0:00 ` 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-07-31 0:00 ` Ralph Silverman
1996-07-30 0:00 ` William Clodius
1996-08-01 0:00 ` Tim Behrendsen
1996-07-30 0:00 ` Robert I. Eachus
1996-08-01 0:00 ` David Wheeler
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-13 0:00 ` 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
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox