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> Date: 28 Mar 91 10:46:19 MDT In article , 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