comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: status of Ada STL?
Date: Tue, 18 Jun 2002 16:04:06 GMT
Date: 2002-06-18T16:04:06+00:00	[thread overview]
Message-ID: <wcc8z5czi89.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: bebbba07.0206161023.6073fd3a@posting.google.com

18k11tm001@sneakemail.com (Russ) writes:

> I really don't understand the objection to my proposal. 

OK, I'll try to explain *my* objections.  (And I will refrain from
accusing you of being a C lover. ;-)  Your proposal clearly states that
your ideas come from Fortran and Python.)  I even agree with some of
what you said.

I understand your point that you can write a preprocessor, so people can
choose whichever notation they like.  I think that's a bad idea,
because it hinders communication among Ada programmers.

Here's your proposal, with my comments:

> A Cleaner Syntax for Ada Programming
> 
> Ada 95 is a great programming language with an excellent fundamental
> design. However, it has an awkward, "klunky" syntax. I propose to
> simplify its syntax by borrowing features from Fortran 95 and Python. I
> will tentatively call the resulting new dialect "Ada-F". Ada-F maintains
> all the safety features of Ada and can be converted into standard Ada 95
> with a simple pre-processor (to be developed). Existing Ada compilers
> can still be used, therefore, and programmers who wish to continue using
> the old syntax can do so. Here are the changes I propose:
> 
> 1. Eliminate semicolons, except for combining multiple statements on a
>    single line, as in Python and Fortran 95, and use "\" (backslash) to
>    continue a statement on the next line when necessary. Semicolons are
>    unnecessary clutter, and they cause many nuisance compilation
>    errors. 

Equating "statement" with "line", and then having a convention like "\"
to mean "I didn't really mean end-of-line; I just ran out of room" seems
kludgy to me.  The ";" seems much cleaner, and I don't find it a
nuisance at all.

There are some languages that eliminate the need for ";" by carefully
designing the syntax to avoid the need.  That seems reasonable,
but the "\" convention is an abomination.

> 2. Use "=" rather than ":=" for assignment. The vast majority of
>    languages use "=" for assignment, which is simpler and perfectly
>    adequate. (Continue to use "=" for equality testing if confusion with
>    assignment can be avoided, otherwise use "==", but never allow
>    assignment within an "if" test.) 

As I said in a different posting, maths tradition ought to trump the
faddish concerns of an industry that's only a few decades old.  ;-)

> 3. Use "=" instead of "=>" for passing arguments by named association,
>    as in Python and Fortran 95. Again, it is simpler and perfectly
>    adequate. 

I don't much like "=>" either, but this is another example of using "="
to mean something other than equality -- see my previous point.

An early version of Ada used ":=", ":=:", and "=:" to indicate 'in',
'in out', and 'out' actual parameters.  This I like, because I think
it's useful to indicate this information at the call site.

> 4. Use ":" instead of ".." to denote a range of numbers, as in Fortran,
>    Python, and Matlab. 

Shrug.  I see no advantage or disadvantage to ":" vs. "..".
So why change?

> 5. Add assignment operators such as "+=", "-=", "*=", and "/=". These
>    operators produce cleaner code. They could also facilitate much more
>    efficient vector/matrix operations if integrated into the core
>    language. 

I agree with you that there should be a notation for these, but given
that I reject number 2, I don't like *these* notations.  And of course,
"/=" already means something else in Ada.  I believe Algol 68 uses
"+:=", which seems OK, but I would actually prefer "Increment" or
"Incr".  The goal is not to make the notation short, but to avoid having
"X" appear twice in things like "X := X + 1;".  X could be a long
expression, and having it appear twice means the reader has to carefully
notice whether it's really the same, and also whether there are side
effects that might occur twice.  I think this:

    Incr(X, By => 2);
    Incr(X); -- By defaults to 1.

is more readable than:

    X := X + 1;

if X is a medium-to-long expression.

So on this point, I partly agree with you.

Your point about efficiency is partly right: If you call a procedure
that updates one of its parameters, that can be more efficient (eg in
the matrix case, as you say).  But this is true whether or not the
notation is built in -- it could just as well be a user-defined

    Matrix_Add(X, Y);

> 6. Allow a more natural declaration/initialization syntax, as
>    illustrated by the following example: 
> 
>    count: integer := 0; -- old syntax
> 
>    count = 0: integer -- new syntax
> 
>    The assignment is to the variable, not the type, and the new syntax
>    shows that. The same applies to default subprogram arguments. 

Shrug.  Maybe I'm just used to it, but it seems perfectly reasonable to
me to have the name of the thing, followed by its type, followed by its
initial value (more important info ... least important info).

> 7. Let "use" imply "with" so files need not be cluttered with both
>    "with" and "use" for the same package. Note that this would not
>    preclude the explicit use of "with" if that is deemed preferable. 

I agree with this point.  Saying "with X; use X;" is useless clutter
when you could just say "use X;".  (With child packages, X is often
quite long, so saying it twice hinders readability.)

> With these relatively minor changes, I believe Ada could gain the
> popularity it deserves.

This is the point I most strongly disagree with.  All of the above
issues are trivial, and even if I agreed with all of them, I don't think
they would have the slightest effect on people's language choices.

>... Yet existing compilers would still work, and
> programmers who prefer the old syntax could continue to use
> it.

This makes it even worse.  It's bad enough that people won't follow the
RM-recommended indentation and capitalization styles.  Now you're saying
they don't have to agree on the spelling of assignment and whatnot!

>... Initially, a pre-processor could be called explicitly to convert
> Ada-F files to standard Ada files, but eventually Ada compilers could do
> the conversions automatically.
> 
> The proposed syntactic changes are minor enough that it might be
> possible to allow both dialects within the same source file, but that
> has yet to be verified. If so, the pre-processor would pass standard Ada
> source lines through unchanged, and would change only lines using the
> new syntax. Another possibility is to denote Ada-F files with a keyword
> such as "Ada-F" in a comment in the first line of the file.

- Bob



  parent reply	other threads:[~2002-06-18 16:04 UTC|newest]

Thread overview: 188+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-06-14  7:21 status of Ada STL? Russ
2002-06-14 16:29 ` Stephen Leake
2002-06-14 18:44 ` Ted Dennison
2002-06-14 20:34 ` Ehud Lamm
2002-06-15 18:52   ` Russ
2002-06-16  2:42     ` David Marceau
2002-06-16  8:07     ` Pascal Obry
2002-06-16 18:23       ` Russ
2002-06-16 19:01         ` Pascal Obry
2002-06-16 19:04         ` Vinzent Hoefler
2002-06-17  1:59           ` Jeffrey Carter
2002-06-17  6:48             ` Russ
2002-06-17  7:04               ` Dale Stanbrough
2002-06-18  6:16                 ` Russ
2002-06-19  1:07                   ` Dale Stanbrough
2002-06-17  9:38               ` chris.danx
2002-06-17 15:53               ` Ted Dennison
2002-06-18  7:52                 ` Russ
2002-06-18 10:57                   ` chris.danx
2002-06-18 14:38                   ` Robert A Duff
2002-06-18 16:19                     ` Brian Rogoff
2002-06-18 17:12                       ` Frank J. Lhota
2002-06-18 18:03                         ` Brian Rogoff
2002-06-18 19:24                           ` Frank J. Lhota
2002-06-18 19:41                             ` Brian Rogoff
2002-06-25  0:02                         ` Steven Deller
2002-06-25  1:24                           ` Yet another assignment variation (was Re: status of Ada STL?) Dale Stanbrough
2002-06-25 12:53                             ` Frank J. Lhota
2002-06-25 17:48                             ` Georg Bauhaus
2002-06-26  3:13                             ` Robert A Duff
2002-06-18 19:03                     ` status of Ada STL? Robert A Duff
2002-06-18 19:54                       ` Brian Rogoff
2002-06-18 21:09                         ` Robert A Duff
2002-06-18 23:36                           ` Brian Rogoff
2002-06-19  1:37                             ` Robert A Duff
2002-06-19 16:25                               ` Brian Rogoff
2002-06-19 18:53                                 ` Robert A Duff
2002-06-19 20:23                                   ` Brian Rogoff
2002-06-19  3:57                           ` Russ
2002-06-18 21:55                   ` Dmitry A.Kazakov
2002-06-19  5:32                     ` Russ
2002-06-19 12:37                       ` Dmitry A. Kazakov
2002-06-20  6:50                         ` Russ
2002-06-20 12:21                           ` Ted Dennison
2002-06-20 21:42                           ` Dmitry A.Kazakov
2002-06-20 18:20                             ` Russ
2002-06-21 10:27                               ` Dmitry A. Kazakov
2002-06-20 18:21                             ` Russ
2002-06-20 19:09                             ` Russ
2002-06-17 17:16               ` Pascal Obry
2002-06-18  5:27                 ` Russ
2002-06-17 17:17               ` Pascal Obry
2002-06-17 21:40             ` Vinzent Hoefler
2002-06-17  5:20           ` Russ
2002-06-17  8:22             ` chris.danx
2002-06-17 14:00               ` Frank J. Lhota
2002-06-17 15:57               ` Marin David Condic
2002-06-18  6:12               ` Russ
2002-06-18  8:16                 ` chris.danx
2002-06-18 14:52                   ` Robert A Duff
2002-06-18 16:02                     ` Pascal Obry
2002-06-18 16:54                       ` Hyman Rosen
2002-06-18 22:58                         ` Jacob Sparre Andersen
2002-06-18 19:09                     ` Robert A Duff
     [not found]                     ` <ud6uolglz.fsf@w <wccsn3kxv3g.fsf@shell01.TheWorld.com>
2002-06-19  8:09                       ` Pascal Obry
2002-06-19  3:04                   ` Russ
2002-06-19 16:40                     ` Hyman Rosen
2002-06-19 18:07                       ` Brian Rogoff
2002-06-18  9:37                 ` Fraser Wilson
2002-06-18 15:45                   ` Hyman Rosen
2002-06-19 16:55                   ` Robert I. Eachus
2002-06-19 19:13                     ` Robert A Duff
2002-06-20  7:43                       ` Dmitry A.Kazakov
2002-06-22 22:05                       ` Robert I. Eachus
2002-06-17 21:40             ` Vinzent Hoefler
2002-06-18 15:05               ` Robert A Duff
2002-06-18 22:36                 ` Vinzent Hoefler
2002-06-19 12:45                   ` Dmitry A. Kazakov
2002-06-19 14:35                     ` Marin David Condic
2002-06-21 11:03                       ` Dmitry A. Kazakov
2002-06-21 16:58                         ` Mark Biggar
2002-06-22 23:23                           ` Dmitry A.Kazakov
2002-06-27  3:00                       ` David Thompson
2002-06-28 13:36                         ` Marin David Condic
2002-06-30  4:05                           ` Russ
2002-06-30 13:50                             ` Ted Dennison
2002-07-01 13:12                             ` Marin David Condic
2002-07-02 19:56                           ` Robert A Duff
     [not found]                           ` <bebbba07.0206292005.45ad915a@p <wcc4rfhj43l.fsf@shell01.TheWorld.com>
2002-07-02 20:40                             ` Pat Rogers
2002-06-18 15:21             ` Robert A Duff
2002-06-19  0:34               ` tmoran
2002-06-19  2:55               ` Russ
2002-06-19  4:53                 ` Ted Dennison
2002-06-19  8:21                 ` Pascal Obry
2002-06-19 14:52                 ` Stephen Leake
2002-06-20  1:45                 ` SteveD
2002-06-20  2:01                   ` Ted Dennison
2002-06-16 20:01         ` Pascal Obry
2002-06-17  5:29           ` Russ
2002-06-16 23:02         ` Ted Dennison
2002-06-17  5:07           ` Russ
2002-06-17 14:03             ` Frank J. Lhota
2002-06-17 14:11             ` Ted Dennison
2002-06-18  5:55               ` Russ
2002-06-18 14:30                 ` Ted Dennison
2002-06-18 15:14                   ` Marin David Condic
2002-06-19 14:19                     ` Ted Dennison
2002-06-19 16:05                       ` Marin David Condic
2002-06-19  5:58                   ` Russ
2002-06-19 14:35                     ` Ted Dennison
2002-06-20  7:06                       ` Russ
2002-06-20 12:27                         ` Ted Dennison
2002-06-20 23:22                           ` Russ
2002-06-21  2:00                             ` Ted Dennison
2002-06-22  4:28                               ` Russ
2002-06-22 15:05                                 ` Ted Dennison
2002-06-21  8:48                             ` Ian Wild
2002-06-22  4:54                             ` Russ
2002-06-20 22:47                   ` Russ
2002-06-21  0:43                     ` Ted Dennison
2002-06-22  4:05                       ` Russ
2002-06-22 14:41                         ` Jano
2002-06-22 20:27                         ` Ted Dennison
2002-06-21 13:12                     ` Marin David Condic
2002-06-24  8:29                       ` Russ
2002-06-24 20:19                         ` Chad R. Meiners
2002-06-18 22:36                 ` Vinzent Hoefler
2002-06-18 22:42                   ` Ed Falis
2002-06-19  0:07                     ` Vinzent Hoefler
2002-06-19  0:07                   ` Vinzent Hoefler
2002-06-17 22:37             ` Dmitry A.Kazakov
2002-06-17 14:09               ` Frank J. Lhota
2002-06-18 21:40                 ` Dmitry A.Kazakov
2002-06-18 16:04         ` Robert A Duff [this message]
2002-06-18 16:37           ` Pascal Obry
2002-06-18 18:56             ` Robert A Duff
2002-06-18 22:20               ` Pascal Obry
2002-06-19 12:53               ` Dmitry A. Kazakov
2002-06-19  3:37           ` Russ
2002-06-19  8:31             ` Pascal Obry
2002-06-20  7:58               ` Russ
2002-06-20 20:34                 ` Pascal Obry
2002-06-21  4:07                   ` Russ
2002-06-17 15:33     ` Marin David Condic
2002-06-18 10:28       ` Adrian Hoe
2002-06-19  7:58         ` Ole-Hjalmar Kristensen
2002-06-19 13:55           ` Marin David Condic
2002-06-19 13:52         ` Marin David Condic
2002-09-18 15:23           ` Matthew Heaney
2002-09-19 12:11             ` Marin David Condic
2002-09-19 14:13               ` Hyman Rosen
2002-09-20 12:24                 ` Marin David Condic
2002-09-22  7:22                   ` Kevin Cline
2002-09-23 13:55                     ` Hyman Rosen
2002-09-19 19:42               ` Randy Brukardt
2002-09-20 12:38                 ` Marin David Condic
2002-09-27 21:21                   ` Michael Bode
2002-09-27 22:11                     ` Pat Rogers
2002-09-28 13:25                       ` Marin David Condic
2002-09-28 14:52                         ` Pat Rogers
2002-09-28 15:18                           ` Martin Dowie
2002-09-29 18:02                           ` Marin David Condic
2002-09-29 19:02                             ` Jeffrey Carter
2002-09-30  1:36                               ` Marin David Condic
2002-10-02 22:17                     ` Matthew Heaney
2002-09-28 17:25                 ` Richard Riehle
2002-09-30 17:12                   ` Marin David Condic
2002-10-01 18:41                     ` Randy Brukardt
2002-10-02  8:38                       ` Jean-Pierre Rosen
2002-10-02 12:43                         ` Marin David Condic
2002-10-02 14:26                           ` Jean-Pierre Rosen
2002-10-02 12:30                       ` Marin David Condic
2002-06-18  1:56     ` SteveD
2002-06-18 14:12       ` Robert A Duff
2002-06-18 14:28         ` chris.danx
2002-06-18 15:59           ` Pascal Obry
2002-06-18 18:58           ` Robert A Duff
2002-06-18 19:58           ` Randy Brukardt
2002-06-19 14:07             ` Marin David Condic
2002-06-19  2:19         ` SteveD
2002-06-18 11:40     ` Colin Paul Gloster
2002-06-20 15:15       ` Colin Paul Gloster
2002-06-18 19:34     ` Mike Silva
2002-06-25 16:31     ` Kevin Cline
2002-06-14 20:34 ` Dan Andreatta
  -- strict thread matches above, loose matches on Subject: below --
2002-06-17 11:05 Grein, Christoph
2002-06-18  5:36 ` Russ
2002-06-26 10:50 Grein, Christoph
replies disabled

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