Newsgroups: comp.object
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!magnus.acs.ohio-state.edu!csn!boulder!happy.colorado.edu!hsrender
From: hsrender@happy.colorado.edu
Subject: Re: Documenting OO Systems
Message-ID: <1991Mar28.104619.1@happy.colorado.edu>
Lines: 61
Sender: news@colorado.edu (The Daily Planet)
Nntp-Posting-Host: happy
Organization: University of Colorado, Boulder
References: <9103070342.AA07462@.nextserver.cs.stthomas.edu.cs.stthomas.edu ..> <1991Mar22.120946.1@happy.colorado.edu> <299@orbit.gtephx.UUCP> <1991Mar25.145441.1@happy.colorado.edu> <jls.670044400@rutabaga>
Date: 28 Mar 91 10:46:19 MDT

In article <jls.670044400@rutabaga>, jls@rutabaga.Rational.COM (Jim Showalter) writes:
>>So, is it simply convention that makes us prefer "a := a + 1" to "a++"?  After
>>all, I never saw anything even vaguely like "a := a + 1" in any math or
>>science course, so I can't believe I had any prior familiarity with it.
> 
> Huh? Did you never see?:
> 
>    7 = 6 + 1
> 
>    X = Y * Z
> 
>    T = Sin (X)
> 
>    W  = W  + 1
>     2    1
> 
> I saw stuff like that all the way from elementary school onwards. What I
> NEVER saw was:
> 
>    P++

I should have qualified that.  What I never saw was any statement remotely
resembling ASSIGMENT.  There's a big difference between an equation and
an assignment (unless you don't see any difference in imperative versus
declarative programming languages).  I also didn't say that P++ was better
(I rarely use it even in my C code).  What I did say that was I think that
what most people like about certain programming languages is due to training,
not some inherent property of the language.  Yes, basic user interface design
theory states that you should express yourself in a manner as close to the
manner of expression of your target subject, but when you are communicating
novel objects/actions, this is problematic.  When people learn about equations,
they think in declarative terms ("A is equal to B + 1", not "A becomes equal
to B + 1).  The concept of assignment, while not a big stretch, is different
enough to warrant some additional explanation.  Personally, that's why I prefer
the assignment notation of languages like Smalltalk.

As to whether P++ is immediately understandable by the non-programmer, I would
say no, but then neither is P := P + 1.  The concept of changing the state
of a symbolic quantity is not something one learns in algebra (at least not
algebra before the college level).  You can legitimately argue that P++
is a lousy choice for an increment statement, but it is not that much worse
than INC(P) (which several "nicer" languages support).

Although I had earlier resolved to stay out of this debate, let me state this:
I like Ada.  I think it combined the features of several good languages, and
I think that Stoneman was a good way to ensure that it has good integrated
support for its users.  BUT, I think that to sell it as the be-all, end-all,
world's greatest SE language is a major shuck.  There are languages out there 
that support many of the same features, and even those that don't can be used
to engineer quality software systems.  The constant harping by Ada supporters
on the shortcomings of other languages sounds remarkably like the bleatings
of religious zealots about the falseness of other faiths.  In reality, Ada
is the PL/I of the 80's, and it remains to be seen whether Ada will become a
dominant force in software engineering or whether it will, like PL/I, be just
an interesting footnote in the evolution of programming languages.  If Ada
supporters wish to persuade other people to use the language, then they had
better do more than knock the languages that other people already use.  

hal render
render@zeppo.colorado.edu

