comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <rieachus@comcast.net>
Subject: Re: += in ada
Date: Fri, 17 Oct 2003 15:48:21 GMT
Date: 2003-10-17T15:48:21+00:00	[thread overview]
Message-ID: <3F900F35.50203@comcast.net> (raw)
In-Reply-To: bebbba07.0310162222.470c4914@posting.google.com

Russ wrote:

> Two characters? Apparently you forgot about, or don't count, having to
> write "Inc" in the first place.

No, I didn't, I have a package I use when I am doing "serious" 
development.  I will probably post it as the root for an "Eachus" 
heirarchy here, although I have been calling it Common.  It contains Inc 
for Integer and Character, but the part I use even more than that is a 
set of TBD declarations.  These allow me to say for example:

function Do_Something(A, B: Parameters) return Integer is
begin return TBD("Do_Something"); end Do_Something;

(And yes I do add the optional name to the end automatically, I type 
pretty fast, and it is easier to always add it than to stop to think.)

Of course, now my code compiles cleanly and if I run it, the call to 
TBD, if called prints a message and raises To_Be_Done. ;-)  Very handy 
feature.

Of course, when code is "complete" I want to get rid of the with Common; 
use Common; so I will cut and paste some declarations like Inc if 
necessary to do that.  I have been thinking of splitting thing and 
having a separate package "To_Be_Done".

> As I said before, I am not an Ada programmer, so perhaps you can help
> me understand something. In a large program or software system of your
> design, approximately how many versions of "Inc" and the like do you
> have floating around just for basic scalar types? I know that Ada
> allows, and in fact encourages, the use of specialized types for
> everything. Do you need to write an "Inc" procedure for each type? Or
> do you perhaps use generics?

It may be a failure of my style, but I think it is pretty common for Ada 
programmers, things you want to increment are almost always Integers or 
a subtype of Integer.  I do have a quirk of writing some Inc calls for 
Character and other character types, but that is almost certainly due to 
my involvement with character set issues.  (Things like printing tables 
of Characters and their classification if you use a non-Latin1 character 
set via compile-time option.)

> Whatever the case, wouldn't it be simpler and cleaner to just use a
> standard ":+" and let the compiler do it for you? Do you get paid
> extra for writing code that the compiler can generate all by itself?
> And how many meetings do you need to inform your programmers of your
> particular procedure naming conventions when you could avoid all that
> with a simple standard for the entire Ada world?

I would love to replace the almost useless Character'Succ function with 
an Inc procedure in the standard, or just add Inc.  I wouldn't even mind 
if it were called Succ instead.  But ":+" is a non-starter for me and 
most Ada programmers. Same goes for Foo++; which, if anything would be 
much more acceptable to Ada programmers, and which you seem to ignore. 
(Hmmm. In fact, ++Foo; might be acceptable to most Ada programmers, and 
should be much more acceptable than Foo++; even though the pre- and 
post- semantics wouldn't apply to Ada.)

> I read all sorts of discussion on this forum about the need for
> standard libraries for Ada. Well, why not start at the bottom with
> standard symbols for common procedures? C++ has the STL, and it also
> has a standard symbol for incrementing a stupid counter. Every
> C/C++/Java/Perl/Python programmer in the world is on the same page.
> But Ada leaves the naming as an excercize for the programmer, and I'm
> sure there are almost as many conventions as programmers. If that
> somehow helps "readability", then your definition of "readability" is
> not the same as mine.

This is where you are just p***ing up a rope.  Ada programmers don't 
LIKE the implied side effects associated with += and other such 
operators in C.  You will never get anyone who does a lot of programming 
in Ada to accept it.  On the other hand for Inc(Foo); and ++Foo; there 
is one effect, and it is the intended effect, not a side effect.

There is a HUGE difference between X += 1; and X := 1; and that is what 
you are fighting. It is a readability issue.  How many times do I have 
to misread :+ as := to wipe out all the advantage from adding :+ to Ada? 
  Oh, and in C where do you most often use +=?  Right, in for loops. 
(And yes, most good C programmers use ++ more often there than +=.) But 
in Ada there is an implied increment function in: for I in Foo'Range 
loop and a decrement in for I in reverse Foo'Range; so even if it was 
available, :+ in Ada would appear a lot less frequently than += in C.

-- 
                                                     Robert I. Eachus

"Quality is the Buddha. Quality is scientific reality. Quality is the 
goal of Art. It remains to work these concepts into a practical, 
down-to-earth context, and for this there is nothing more practical or 
down-to-earth than what I have been talking about all along...the repair 
of an old motorcycle."  -- from Zen and the Art of Motorcycle 
Maintenance by Robert Pirsig




  parent reply	other threads:[~2003-10-17 15:48 UTC|newest]

Thread overview: 303+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-25 16:25 += in ada Dmytry Lavrov
2003-10-01  8:35 ` Peter Amey
2003-10-01 12:38   ` Frank J. Lhota
2003-10-03 16:22     ` Isaac Gouy
2003-10-06 20:21       ` Russ
2003-10-06 22:47         ` (see below)
2003-10-04 20:17   ` Craig Carey
2003-10-06  7:36     ` Jean-Pierre Rosen
2003-10-06  8:13       ` Lutz Donnerhacke
2003-10-06 22:49       ` Wes Groleau
2003-10-01 14:06 ` Gautier
2003-10-02 12:26   ` Lutz Donnerhacke
2003-10-02 13:03     ` Preben Randhol
2003-10-02 13:36       ` Lutz Donnerhacke
2003-10-02 21:28         ` Keith Thompson
2003-10-07  0:41           ` Russ
2003-10-07 10:05             ` Dmytry Lavrov
2003-10-07 11:56               ` Lutz Donnerhacke
2003-10-07 14:02                 ` (see below)
2003-10-07 22:22                   ` Russ
2003-10-07 23:52                     ` (see below)
2003-10-08  6:08                     ` Preben Randhol
2003-10-09 19:07                       ` Russ
2003-10-09 19:42                         ` Vinzent 'Gadget' Hoefler
     [not found]                           ` <25oh51-uu2.ln1@beastie.ix.netcom.com>
2003-10-10  7:37                             ` Preben Randhol
2003-10-10 18:56                               ` Russ
2003-10-11  8:10                                 ` Preben Randhol
2003-10-11  8:30                                 ` Samuel Tardieu
2003-10-10 12:09                             ` Vinzent 'Gadget' Hoefler
2003-10-10  7:34                         ` Preben Randhol
2003-10-12  0:50                           ` Wes Groleau
2003-10-12  8:24                             ` Preben Randhol
2003-10-12 14:57                               ` Robert I. Eachus
2003-10-12 18:37                                 ` (see below)
2003-10-13  0:42                                   ` Robert I. Eachus
2003-10-13  8:32                                     ` Dmytry Lavrov
2003-10-13 19:18                                       ` Robert I. Eachus
2003-10-13 23:36                                     ` Alexandre E. Kopilovitch
2003-10-14  6:14                                       ` Vinzent 'Gadget' Hoefler
2003-10-14 15:19                                         ` Robert I. Eachus
2003-10-30 21:43                                     ` ARG process (was += in ada) Randy Brukardt
2003-10-30 23:21                                       ` Robert I. Eachus
2003-10-10 20:31                         ` += in ada Dmytry Lavrov
2003-10-12  8:23                           ` Dmytry Lavrov
2003-10-14 18:00                           ` Russ
2003-10-14 18:15                             ` Vinzent 'Gadget' Hoefler
2003-10-15 12:50                             ` Georg Bauhaus
2003-10-15 13:25                               ` Hyman Rosen
2003-10-15 14:04                                 ` Vinzent 'Gadget' Hoefler
2003-10-15 15:19                                   ` Hyman Rosen
2003-10-15 18:06                                     ` Vinzent 'Gadget' Hoefler
2003-10-15 18:53                                       ` Hyman Rosen
2003-10-15 19:34                                         ` Vinzent 'Gadget' Hoefler
2003-10-15 23:09                                         ` Alexandre E. Kopilovitch
2003-10-16  5:05                                     ` Russ
2003-10-16 12:07                                       ` Marin David Condic
2003-10-16 13:43                                       ` Hyman Rosen
2003-10-16 23:57                                         ` Robert I. Eachus
2003-10-17  6:22                                           ` Russ
2003-10-17  6:38                                             ` Preben Randhol
2003-10-17 15:48                                             ` Robert I. Eachus [this message]
2003-10-19  1:15                                               ` Russ
2003-10-19 16:04                                                 ` Robert I. Eachus
2003-10-19 23:59                                                   ` Russ
2003-10-20  5:24                                                     ` Chad R. Meiners
2003-10-20  5:52                                                       ` Robert I. Eachus
2003-10-20 12:40                                                         ` Marin David Condic
2003-10-20 14:36                                                           ` Preben Randhol
2003-10-21  0:23                                                           ` Wes Groleau
2003-10-21  3:46                                                             ` Hyman Rosen
2003-10-21  6:37                                                           ` Russ
2003-10-21 10:10                                                             ` Marius Amado Alves
2003-10-22  5:23                                                               ` Russ
2003-10-20 14:34                                                         ` Preben Randhol
2003-10-21  7:43                                                         ` Russ
2003-10-21 12:45                                                           ` Lutz Donnerhacke
2003-10-22  7:13                                                             ` Russ
2003-10-22  8:48                                                               ` Vinzent 'Gadget' Hoefler
2003-10-22  9:02                                                               ` Lutz Donnerhacke
2003-10-22 18:21                                                                 ` Russ
2003-10-22 19:10                                                                   ` Vinzent 'Gadget' Hoefler
2003-10-23  5:24                                                                     ` + " Russ
2003-10-22 19:16                                                                   ` += " sk
2003-10-22 19:13                                                                     ` Vinzent 'Gadget' Hoefler
2003-10-23  5:16                                                                     ` Russ
2003-10-23  5:45                                                                       ` sk
2003-10-22 21:22                                                                 ` Russ
2003-10-23  2:23                                                                   ` Wes Groleau
2003-10-22  9:46                                                               ` Preben Randhol
2003-10-22  8:01                                                             ` Russ
2003-10-21 13:38                                                           ` Robert I. Eachus
2003-10-22  7:24                                                             ` Russ
2003-10-22 19:50                                                               ` Robert I. Eachus
2003-10-23  5:34                                                                 ` Russ
2003-10-23 14:14                                                                   ` Robert I. Eachus
2003-10-24  9:15                                                                     ` Peter Hermann
2003-10-24 10:11                                                                       ` Marius Amado Alves
2003-10-26  7:35                                                                         ` Pascal Obry
2003-10-24 11:20                                                                       ` Marin David Condic
2003-10-25  3:14                                                                       ` Russ
2003-10-25  5:07                                                                     ` Russ
2003-10-19 23:19                                                 ` Robert A Duff
2003-10-20  6:16                                                   ` Russ
2003-10-20 14:31                                                     ` Preben Randhol
2003-10-20 17:10                                                     ` Robert I. Eachus
2003-10-20 17:53                                                       ` Hyman Rosen
2003-10-20 19:11                                                         ` Robert I. Eachus
2003-10-20 19:32                                                           ` Hyman Rosen
2003-10-20 23:24                                                           ` Alexandre E. Kopilovitch
2003-10-21  0:40                                                     ` Wes Groleau
2003-10-21  3:45                                                       ` Hyman Rosen
2003-10-21 12:07                                                         ` Preben Randhol
2003-10-21 12:18                                                           ` Marius Amado Alves
2003-10-21 12:45                                                         ` Marin David Condic
2003-10-21 14:46                                                           ` Robert I. Eachus
2003-10-21 17:54                                                             ` Chad R. Meiners
2003-10-21 20:23                                                               ` Robert I. Eachus
2003-10-22  0:18                                                             ` Wes Groleau
2003-10-22  4:07                                                               ` Robert I. Eachus
2003-10-22 20:41                                                                 ` Wes Groleau
2003-10-22 11:56                                                             ` Marin David Condic
2003-10-22  0:14                                                           ` Wes Groleau
2003-10-22 12:31                                                             ` Early Ada Mistakes (was: Re: += in ada) Marin David Condic
2003-10-22 20:05                                                               ` Robert I. Eachus
2003-10-23  4:47                                                                 ` Marin David Condic
2003-10-23 14:36                                                                   ` Early Ada Mistakes Hyman Rosen
2003-10-23 19:04                                                                     ` Chad R. Meiners
2003-10-24 13:33                                                                       ` Preben Randhol
2003-10-24 16:59                                                                         ` Robert I. Eachus
2003-10-23 19:08                                                                     ` Wes Groleau
2003-10-23 22:17                                                                       ` Robert I. Eachus
2003-10-24 11:26                                                                       ` Marin David Condic
2003-10-23 18:50                                                                   ` Wes Groleau
2003-10-22 21:00                                                               ` Wes Groleau
2003-10-23  4:53                                                                 ` Marin David Condic
2003-10-22  6:56                                                           ` += in ada Russ
2003-10-22  7:26                                                             ` Preben Randhol
2003-10-22 11:27                                                             ` Stephane Richard
2003-10-22 20:12                                                               ` Robert I. Eachus
2003-10-22 20:52                                                             ` Wes Groleau
     [not found]                                                         ` <emte61-d03.ln1@beastie.ix.netcom.com>
2003-10-21 12:57                                                           ` Hyman Rosen
2003-10-21  2:43                                                 ` Alexandre E. Kopilovitch
2003-10-21  9:39                                                   ` Stephane Richard
2003-10-19 22:26                                               ` Wes Groleau
2003-10-16  4:31                                   ` + " Russ
2003-10-16  8:57                                     ` += " Vinzent 'Gadget' Hoefler
2003-10-16 20:56                                     ` + " Georg Bauhaus
2003-10-16  4:04                               ` += " Russ
2003-10-16  8:57                                 ` Vinzent 'Gadget' Hoefler
2003-10-17  3:03                                 ` Wes Groleau
2003-10-17 11:46                                   ` Marin David Condic
2003-10-17 11:50                                     ` Preben Randhol
2003-10-17 12:40                                       ` sk
2003-10-17 12:48                                         ` Preben Randhol
2003-10-15 14:16                             ` Dmytry Lavrov
2003-10-16  5:40                               ` Russ
2003-10-16 12:45                                 ` Lutz Donnerhacke
2003-10-16 22:07                                   ` Russ
2003-10-17  9:10                                     ` Lutz Donnerhacke
2003-10-16 13:48                                 ` Dmytry Lavrov
2003-10-16 20:46                                 ` Georg Bauhaus
2003-10-17  2:37                                   ` Russ
2003-10-17  3:01                                     ` sk
2003-10-17  5:42                                       ` Russ
2003-10-17 11:26                                         ` sk
2003-10-17 20:24                                           ` Dmytry Lavrov
2003-10-17  3:52                                     ` Chad R. Meiners
2003-10-17  6:32                                     ` Preben Randhol
2003-10-17  8:48                                     ` Dmytry Lavrov
2003-10-16  1:25                             ` Chad R. Meiners
2003-10-19 23:50                               ` Robert A Duff
2003-10-20  5:52                                 ` Chad R. Meiners
2003-10-07 18:28                 ` Alexander Kopilovitch
2003-10-10 19:56                   ` Dmytry Lavrov
2003-10-20  7:41       ` idem (Was: += in ada) Jacob Sparre Andersen
2003-10-20  8:28         ` Dmitry A. Kazakov
2003-10-20  8:34         ` (see below)
2003-10-31 22:40         ` Nick Roberts
2003-10-14  9:52   ` += in ada Stuart Palin
2003-10-16  8:49     ` Russ
2003-10-16 12:46       ` Lutz Donnerhacke
2003-10-16 13:46         ` Hyman Rosen
2003-10-16 15:42           ` Mark A. Biggar
2003-10-16 16:48             ` Hyman Rosen
2003-10-17  0:26               ` Robert I. Eachus
2003-10-17  1:26                 ` Marin David Condic
2003-10-17  3:59                   ` Chad R. Meiners
2003-10-17 11:54                     ` Marin David Condic
2003-10-17 20:35                       ` Russ
2003-10-19 22:22                     ` Wes Groleau
2003-10-19  1:37                   ` Russ
2003-10-19  3:16                     ` sk
2003-10-19 14:10                     ` Preben Randhol
2003-10-19 14:29                     ` Marin David Condic
2003-10-20  2:47                       ` Russ
2003-10-20  3:03                         ` Vinzent 'Gadget' Hoefler
2003-10-20  5:47                         ` Chad R. Meiners
2003-10-20 12:56                           ` Marin David Condic
2003-10-20  6:19                         ` Ross Higson
2003-10-21 17:30                           ` Russ
2003-10-21 18:40                             ` sk
2003-10-22  7:35                               ` Russ
2003-10-21 23:28                             ` Ross Higson
2003-10-21 23:55                               ` Jerry Petrey
2003-10-22  7:35                             ` Preben Randhol
2003-10-20 16:30                         ` Martin Dowie
2003-10-20 17:05                           ` Hyman Rosen
2003-10-20 17:46                             ` Martin Dowie
2003-10-20 18:01                               ` Hyman Rosen
2003-10-21  0:57                           ` Wes Groleau
2003-10-21  1:46                             ` Stephane Richard
2003-10-21  3:38                             ` Hyman Rosen
2003-10-21  8:49                             ` Martin Dowie
2003-10-21  9:04                             ` Marius Amado Alves
2003-10-21 13:00                               ` Marin David Condic
2003-10-21 13:37                                 ` Marius Amado Alves
2003-10-21 14:50                                   ` Robert I. Eachus
2003-10-21 15:01                                     ` Stephane Richard
2003-10-21 15:03                                     ` Stephane Richard
2003-10-21 15:07                                     ` Vinzent 'Gadget' Hoefler
2003-10-21 15:13                                       ` Stephane Richard
2003-10-21 15:58                                       ` (see below)
2003-10-21 15:24                                     ` Dmitry A. Kazakov
2003-10-21 16:44                                     ` Marius Amado Alves
2003-10-22  7:32                                     ` Preben Randhol
2003-10-22  8:48                                       ` Vinzent 'Gadget' Hoefler
2003-10-22 20:24                                         ` Robert I. Eachus
2003-10-27 12:01                                           ` Vinzent 'Gadget' Hoefler
2003-10-27 17:31                                             ` Robert I. Eachus
2003-10-21 13:01                               ` Hyman Rosen
2003-10-21  4:49                           ` sk
2003-10-21 21:19                             ` Simon Wright
2003-10-22  4:37                               ` sk
2003-10-19 14:40                     ` chris
2003-10-19 15:12                     ` Stephane Richard
2003-10-19 16:26                     ` Robert I. Eachus
2003-10-20  2:02                       ` Hyman Rosen
2003-10-20  6:12                         ` Robert I. Eachus
2003-10-20 12:50                           ` Hyman Rosen
2003-10-20 17:53                             ` Robert I. Eachus
2003-10-20 18:03                               ` Hyman Rosen
2003-10-21  1:35                                 ` Marin David Condic
2003-10-21  3:05                             ` Alexandre E. Kopilovitch
2003-10-21  3:30                               ` Hyman Rosen
2003-10-21 13:22                                 ` Alexandre E. Kopilovitch
2003-10-21 15:02                                   ` Hyman Rosen
2003-10-19 21:09                     ` Dmytry Lavrov
2003-10-17 14:15                 ` Hyman Rosen
2003-10-17 14:40                   ` Lutz Donnerhacke
2003-10-17 15:40                     ` Hyman Rosen
2003-10-17 15:49                       ` Lutz Donnerhacke
2003-10-17 20:43                         ` Hyman Rosen
2003-10-17 16:02                       ` Preben Randhol
2003-10-17 16:06                         ` Preben Randhol
2003-10-19 22:36                         ` Wes Groleau
2003-10-18  0:08                   ` Russ
2003-10-18 10:31                     ` Georg Bauhaus
2003-10-20  5:35                   ` Chad R. Meiners
2003-10-20 13:00                     ` Hyman Rosen
2003-10-20 14:27                       ` (see below)
2003-10-20 15:58                         ` Chad R. Meiners
2003-10-16 21:53             ` Russ
2003-10-17  8:20           ` Lutz Donnerhacke
2003-10-17 14:21             ` Hyman Rosen
2003-10-17 14:42               ` Lutz Donnerhacke
2003-10-17 15:46                 ` Hyman Rosen
2003-10-17 15:35               ` Larry Kilgallen
2003-10-17 16:02               ` Robert I. Eachus
2003-10-17 17:20                 ` Chad R. Meiners
2003-10-16  8:57     ` Vinzent 'Gadget' Hoefler
  -- strict thread matches above, loose matches on Subject: below --
2003-10-01  8:54 christoph.grein
2003-10-04 12:51 ` Georg Bauhaus
2003-10-13  9:22 christoph.grein
2003-10-13 18:38 ` Wes Groleau
2003-10-13 18:59   ` Robert I. Eachus
2003-10-16  8:25 + " Lionel.DRAGHI
2003-10-16 13:22 ` Hyman Rosen
2003-10-16 14:30   ` Vinzent 'Gadget' Hoefler
2003-10-16 16:13 ` Russ
2003-10-16 21:47   ` Georg Bauhaus
2003-10-17 20:03     ` Russ
2003-10-16 15:55 Lionel.DRAGHI
2003-10-17  8:58 Lionel.DRAGHI
2003-10-20 10:42 += " christoph.grein
2003-10-21  6:16 ` Russ
2003-10-21  8:25   ` Ole-Hjalmar Kristensen
2003-10-21  8:40 += in Ada Marius Amado Alves
2003-10-21  8:41 += in ada christoph.grein
2003-10-22  5:00 ` Russ
2003-10-21  8:53 christoph.grein
2003-10-21 13:48 ` Ole-Hjalmar Kristensen
2003-10-22  7:31   ` Russ
2003-10-22  8:02     ` Preben Randhol
2003-10-22 11:41       ` Stephane Richard
2003-10-22 15:17       ` Chad R. Meiners
2003-10-22 15:47         ` Preben Randhol
2003-10-22 15:07     ` Martin Dowie
2003-10-21 10:03 christoph.grein
     [not found] <1066725615.2801.26.camel@localhost.localdomain>
2003-10-21 11:57 ` += in Ada sk
2003-10-21 12:07 += in ada christoph.grein
2003-10-21 13:51 ` Preben Randhol
     [not found] <3F957DAD.2020801@myob.com>
2003-10-21 21:16 ` Alexandre E. Kopilovitch
     [not found] ` <nSp8Qb_KxF@vib.usr.pu.ru>
2003-10-21 21:40   ` sk
replies disabled

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