comp.lang.ada
 help / color / mirror / Atom feed
From: John G. Volan <John_Volan@ccmail.dayton.saic.com>
Subject: Re: Side-effect arithmetic again [was: Ada ... in embedded systems]
Date: 1996/03/30
Date: 1996-03-30T00:00:00+00:00	[thread overview]
Message-ID: <4jkfpj$jl1@dayuc.dayton.saic.com> (raw)
In-Reply-To: Dp1Gxq.15M@world.std.com

In article <Dp1Gxq.15M@world.std.com>
Robert A Duff, bobduff@world.std.com writes:

>In article <4jchbi$ep0@dayuc.dayton.saic.com>,
>John G. Volan  <John_Volan@ccmail.dayton.saic.com> wrote:
...
>>Then why did we ever bother with any of the identifiers on the left
>>below, when the more terse identifiers on the right would have done
>>"just as well" ... as long as you happened to be a member of that
>>select coterie known as "professional programmers":
>
>Because using zillions of strange abbreviations makes the code harder to
>understand, FOR PROFESSIONAL PROGRAMMERS.  

On this, we seem to be in violent agreement. :-)

>My point is just that this
>has nothing to do with making the code understandable by random folks
>off the street -- that's clearly impossible.  You cannot understand any
>substantial Ada program if you don't know Ada -- and using nice
>un-abbreviated identifiers won't change that fact.

I take your point, and I'm sorry I glossed over it before -- I thought
Tore Joergensen already did a good job of responding to this.  I agree
with Tore that (1) yes, you're right, it does take more than just a
working knowledge of English to fully understand an Ada program, or at
least to understand it enough to do maintenance on it; but (2) not
everyone who is involved in the development of software is necessarily
a professional programmer that's doing the actual coding. IMHO, the
fewer obstacles to understanding we put in the way of these associated
folks, the better things will be all around.  But perhaps that's a
minor point.

Let me turn your argument around another way:  Even a professional
programmer doesn't start out as one.  There is some point in the
education of every professional programmer where a "random person off
the street" gets their first introduction to programming concepts and
computer languages. Usually, this happens at least a decade after that
person first learns to read and write their own natural language.  (At
least, at this stage in human history.) IMHO, anyone with reasonably
good literacy skills should have a decent chance of becoming a
software engineer.

But I'm afraid that, as you so aptly put it, "zillions of _strange_
abbreviations" [my emphasis] do a lot to get in the way of that
happening.  I suspect that many intelligent people who might have made
important contributions to our field were turned off to the whole idea,
simply because of the obscurely cryptic nature of so much of the code
that's written these days. This is a shame, because I strongly believe
that this ad hoc crypticness is totally gratuitous -- there is nothing
fundamentally inherent in software that requires it to be obscure and
obfuscated, and it only tends to be that way for _cultural_, not
_technical_ reasons.

So the playing field is ceded to two groups of individual: (1) Those who
eagerly embrace and perversely thrive on ad-hoc crypticness, in the
extreme case even _promoting_ it as a cynical guarantee of their job
security -- to whit, hackers (spit, spit); and (2) those stalwart few
who can overcome the hurdles set up by the hackers, and through
fortitude and perserverance learn to talk to computers, without
forgetting how to talk to people. Things are getting better, but I'm
afraid that the latter group is still a minority.

...
>I want Ada to be readable so that people
>who *do* know it can read it.  (And, of course, it's always a good idea
>if the language is simple enough, so that people who *don't* know it can
>*learn* it.)
...

Hmm ... I think in retrospect you actually agreed with the point I just
made! :-)

...
>Using Increment instead of "++" isn't going to make the program horribly
>verbose.  My complaint is that people are suggesting a generic
>instantiation, which is a bunch of useless verbosity, to replace
>something that's very simple in C.
...
>>Hey, don't look at me.  My generics were about as inanely
>>direct as I could make them.
>
>My point is that they're not (and cannot be) "inanely direct" *enough*.
>If you try to convince a C programmer to change "foo[i]++;" to
>"Increment(Foo(I));", that's fine.  But to require a generic
>instantiation in addition would make the C programmer laugh, and rightly
>so.  I think we'd be better off just admitting that there's no direct
>replacement for ++ in Ada, and tell the programmer, "Sorry, but you have
>to write "Foo(I) := Foo(I) + 1;".

Oh, I don't think it's as bad as all that.  Instantiating a generic
isn't all _that_ big a deal, and for beginners it can simply be an
incantation that they can come to understand later.  But perhaps you
have a point that something as "simple" as side-effect arithmetic
shouldn't warrant a generic -- but where do you draw the line at
"simple"?  Is I/O too "simple" to warrant having to instantiate
Text_IO's generic subpackages; should we have had something analogous
to printf instead? Is deallocating a heap object too "simple" to
warrant having to instantiate Unchecked_Deallocation, or should we have
had a built-in free or delete operation? Is breaking the strong typing
system when you need to too "simple" to warrant having to instantiate
Unchecked_Conversion, or should Ada have just allowed arbitrary type
conversions?  These are all things an arrogant C-fanatic might
conceivably laugh at, but I think we Ada programmers ought to have
thick enough skins not to let that bother us.

...
>>But you don't like a generic as a workaround at all?  Alright, suggest
>>something better, maybe even an Ada0X improvement, if you think it's
>>warranted.
>
>I did suggest a different workaround, using derived types.

Yes, that's a good technique, one that I've actually used in my own
code, now that I think about it.  More people should realize that any
sort of type, even scalar types, can be endowed with new _primitive_
subprograms which can be _inherited_ by derived types.  This was true
even in Ada83.  For all that Ada83 was branded as an "object based"
language, but not an "object oriented" language, people should give
Ada83 credit for actually having _inheritance_, even though it didn't
have Ada95's mechanisms for type-extension and classwide polymorphism.

...
>>...Just don't tell me the answer is: "Either thou must accept
>>the received perfection of Ada95 as it is, or thou mayst as well become
>>a C programmer". Sheesh indeed.
>
>OK, I won't tell you that -- I don't believe it.

I'm glad of that! :-)

------------------------------------------------------------------------
Internet.Usenet.Put_Signature
( Name => "John G. Volan", E_Mail => "John_Volan@dayton.saic.com",
  Favorite_Slogan => "Ada95: The *FIRST* International-Standard OOPL",
  Humorous_Disclaimer => "These opinions are undefined by SAIC, so" &
    "any use would be erroneous ... or is that a bounded error now?" );
------------------------------------------------------------------------




  parent reply	other threads:[~1996-03-30  0:00 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <823906039.22113@assen.demon.co.uk>
     [not found] ` <4fgrq3$mc4@qualcomm.com>
     [not found]   ` <dewar.823962356@schonberg>
1996-02-17  0:00     ` Ada is almost useless in embedded systems Tore Joergensen
1996-02-17  0:00       ` Robert Dewar
1996-02-19  0:00       ` Keith Thompson
1996-02-19  0:00         ` John McCabe
1996-02-21  0:00           ` Richard A. O'Keefe
1996-02-21  0:00             ` Norman H. Cohen
1996-02-19  0:00 ` Jon S Anthony
1996-02-19  0:00 ` AdaWorks
1996-02-21  0:00   ` Ken Garlington
1996-02-23  0:00     ` AdaWorks
1996-02-19  0:00 ` R.A.L Williams
1996-02-21  0:00   ` Richard A. O'Keefe
     [not found] ` <824056183.18993@assen.demon.co.uk>
     [not found]   ` <311E924E.74CE@escmail.orl.mmc.com>
1996-02-17  0:00     ` Ada is great for embedded systems (was Ada is almost useless in embedded systems) Ken & Virginia Garlington
     [not found]   ` <4fnqpm$3nh@news.sanders.lockheed.com>
1996-02-19  0:00     ` Ada is almost useless in embedded systems AdaWorks
1996-02-21  0:00       ` Hugh Dunne
1996-02-21  0:00       ` Ken Garlington
     [not found]   ` <4fnp37$nj1@theopolis.orl.mmc.com>
1996-02-22  0:00     ` Alan Brain
1996-02-26  0:00 ` R.A.L Williams
     [not found]   ` <4h3q56$1vk@goanna.cs.rmit.EDU.AU>
     [not found]     ` <dewar.825635955@schonberg>
     [not found]       ` <826571250.140@assen.demon.co.uk>
     [not found]         ` <dewar.826634800@schonberg>
1996-03-21  0:00           ` John McCabe
1996-03-23  0:00             ` Side-effect arithmetic again [was: Ada ... in embedded systems] John G. Volan
1996-03-23  0:00               ` Robert Dewar
1996-03-25  0:00                 ` Tucker Taft
1996-03-25  0:00                   ` Robert A Duff
1996-03-25  0:00                   ` Norman H. Cohen
1996-03-26  0:00               ` John G. Volan
1996-03-26  0:00                 ` Robert A Duff
1996-03-26  0:00                   ` Tore Joergensen
1996-03-27  0:00                     ` John G. Volan
1996-03-28  0:00                       ` Tucker Taft
1996-03-28  0:00                         ` Robert Dewar
1996-03-29  0:00                           ` Tucker Taft
1996-03-29  0:00                             ` Tucker Taft
1996-03-27  0:00                     ` John G. Volan
1996-03-29  0:00                       ` Robert A Duff
1996-03-30  0:00                         ` John G. Volan
1996-03-30  0:00                         ` John G. Volan [this message]
1996-03-31  0:00                           ` AdaWorks
1996-04-01  0:00                           ` Robert A Duff
1996-03-27  0:00                     ` John G. Volan
1996-03-26  0:00                 ` Robert Dewar
1996-03-29  0:00                   ` Robert I. Eachus
     [not found] ` <emery-0902962215150001@line316.nwm.mindlink.net>
     [not found]   ` <DMoA85.52I@eskimo.com>
     [not found]   ` <823965654.4500@assen.demon.co.uk>
     [not found]     ` <824165619.14894@assen.demon.co.uk>
     [not found]       ` <JSA.96Feb13133713@organon.com>
     [not found]         ` <824332550.2485@assen.demon.co.uk>
1996-02-17  0:00           ` Ada is almost useless in embedded systems Ken & Virginia Garlington
1996-02-17  0:00             ` Robert Dewar
1996-02-18  0:00               ` John McCabe
1996-02-18  0:00                 ` Robert Dewar
1996-02-19  0:00                   ` John McCabe
     [not found]         ` <824259217.26321@assen.demon.co.uk>
1996-02-17  0:00           ` Robert Dewar
1996-02-18  0:00             ` John McCabe
1996-02-18  0:00               ` Robert Dewar
1996-02-19  0:00                 ` John McCabe
1996-02-20  0:00                   ` Robert Dewar
1996-02-21  0:00                   ` Fergus Henderson
     [not found]       ` <4fs7ml$cf1@rational.rational.com>
1996-02-26  0:00         ` Ada 83 " Alan Brain
     [not found] ` <RALW.96Feb28100925@vulcan.gmrc.gecm.com>
     [not found]   ` <dewar.825775334@schonberg>
     [not found]     ` <RALW.96Mar8113005@vulcan.gecm.com>
     [not found]       ` <4hv2fb$6ra@cville-srv.wam.umd.edu>
     [not found]         ` <4xybp895y6.fsf@leibniz.enst-bretagne.fr>
     [not found]           ` <3144CC40.33A0@escmail.orl.mmc.com>
     [not found]             ` <dewar.826604375@schonberg>
     [not found]               ` <3145FF2C.6139@escmail.orl.mmc.com>
     [not found]                 ` <dewar.826829407@schonberg>
     [not found]                   ` <31499D21.1DA6@escmail.orl.mmc.com>
1996-03-15  0:00                     ` Bug or Limitation? (was: Ada is almost useless in embedded systems) Robert Dewar
1996-03-16  0:00                       ` Ted Dennison
1996-03-20  0:00                         ` Side-effect arithmetic again [was: Ada ... in embedded systems] Robert I. Eachus
1996-03-20  0:00                           ` John G. Volan
1996-03-22  0:00                             ` Alan Brain
1996-03-20  0:00                           ` Robert A Duff
1996-03-21  0:00                             ` Peter Hermann
1996-03-21  0:00                               ` Robert Dewar
1996-03-25  0:00                                 ` Robert I. Eachus
1996-03-28  0:00                               ` Mats Weber
1996-03-29  0:00                                 ` John G. Volan
1996-03-21  0:00                           ` Geert Bosch
1996-03-26  0:00                           ` Mats Weber
1996-03-15  0:00   ` Ada is almost useless in embedded systems Robert I. Eachus
     [not found]     ` <dirk.827148504@demokrit>
1996-03-18  0:00       ` David Weller
1996-03-18  0:00     ` Alan Brain
     [not found]       ` <4ik5bm$ogg@dayuc.dayton.saic.com>
1996-03-18  0:00         ` Side-effect arithmetic again [was: Ada ... in embedded systems] Robert Dewar
1996-03-19  0:00           ` Jay Martin
1996-03-21  0:00             ` Robert I. Eachus
1996-03-19  0:00           ` Norman H. Cohen
1996-03-16  0:00 ` Ada is almost useless in embedded systems Kevin Dalley
replies disabled

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