comp.lang.ada
 help / color / mirror / Atom feed
From: Brian Rogoff <bpr@shell5.ba.best.com>
Subject: Re: Ammo-zilla
Date: 1999/10/31
Date: 1999-10-31T00:00:00+00:00	[thread overview]
Message-ID: <Pine.BSF.4.10.9910311929570.12649-100000@shell5.ba.best.com> (raw)
In-Reply-To: 3818B280.472FDBE5@averstar.com

On Thu, 28 Oct 1999, Tucker Taft wrote:
> Charles Hixson wrote:
> > 
> > I am continually attracted to Ada, however:
> > The Ada approach to memory management reminds me of the PL/1 approach,
> > only simplified a bit.  I suppose that you can say that it's better than
> > C++, but that's *REALLY* faint praise.  There are a lot of details that
> > I don't fully understand, but this is one of Ada's weaker aspects.  The
> > second is the syntax used in "object" declaration.  Very clumsy.
> > 
> > Now I *do* understand that the reason for this approach is (partially
> > the date of design but also) to allow statically linked programs to be
> > small enough for embedded systems, etc.  And it is indeed necessary to
> > enable this.  But the cost of a unified design of this nature is that,
> > e.g., garbage collection is eliminated from the language.  (The syntax
> > is mainly due to early design.)  I feel relativly certain that if the
> > language were to be designed today that many things would have been done
> > differently.
> 
> That's an interesting question.  I have on occasion since we finalized
> the Ada 95 design thought about how I might design a language if I
> could really start from scratch.  After a huge amount of horsing around,
> I end up surprisingly close to where Ada 95 is now.  For example,
> you mention the "clumsy" syntax associated with object declarations.
> It is interesting to note that Haskell, one of the more elegant
> functional programming languages out there, has essentially the
> identical object approach as Ada 95, as does CLOS, common lisp object 
> system. 

Haskell doesn't support OOP, in particular, it doesn't support dynamic 
dispatch so I don't think the comaprison is appropriate. Besides Lisp 
derivatives like CLOS and Dylan, the only functional programming language 
I know of which supports OOP is Objective Caml. OCaml uses the
distinguished receiver notation with "#" instead of ".".

I prefer the Ada notation, but I don't think the notational choice is as 
big a deal as some people make it out to be. I think if you could design
Ada from scratch you could use some more tokens like "[", "]", "{", and 
"}" instead of using parens for everything.

> If you are used to the notion of an abstract data type, defined by a
> type and a set of operations, and then you decide you want to support
> extensibility of abstract data types, then you end up at something
> very much like Ada 95, Haskell, or CLOS, with the 
> "operation(operand, operand, ...)" or "operand <operator> operand"
> or "object := operation(operand, operand,...)" syntax familiar from
> theoretical mathematics and logic.  If you instead focus on
> updating objects as the primary operations of interest, then you end up with
> the <obj>.<operation> syntax.  In some ways, the Ada 95 syntax is
> more sympathetic with the "value-oriented" (i.e. functional) way
> of thinking than the "object-oriented" (i.e. side-effecting) way
> of thinking.  The net effect, in any case, is that you can more easily
> write in a "functional" style in Ada 95 where there is less use of
> heap-resident read/write objects, and more use of values (rather than 
> objects) of an abstract type being passed around, assigned, declared, etc. 

Agreed. Since there is this contingent of functional programming devotees
in the Ada community, perhaps we'll see anonymous access to subprogram 
types, downward closures via access to subprogram, and other FP tools in 
the next version of Ada :-). 

-- Brian






  reply	other threads:[~1999-10-31  0:00 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-10-23  0:00 Ammo-zilla Stanley R. Allen
1999-10-24  0:00 ` Ammo-zilla Aidan Skinner
1999-10-24  0:00   ` Ammo-zilla Robert Dewar
1999-10-24  0:00     ` Ammo-zilla Matthew Heaney
1999-10-24  0:00     ` Ammo-zilla David Botton
1999-10-28  0:00       ` Ammo-zilla Charles Hixson
1999-10-28  0:00         ` Ammo-zilla Matthew Heaney
1999-10-28  0:00           ` Ammo-zilla mitch
1999-10-29  0:00             ` Ammo-zilla Matthew Heaney
1999-10-28  0:00         ` Ammo-zilla Laurent Guerby
1999-10-28  0:00           ` Ammo-zilla David Starner
1999-10-29  0:00             ` Ammo-zilla Larry Kilgallen
1999-10-29  0:00               ` Ammo-zilla David Starner
1999-10-29  0:00                 ` Ammo-zilla David Botton
1999-10-29  0:00                   ` Ammo-zilla mike
1999-10-29  0:00                     ` Ammo-zilla David Botton
1999-10-31  0:00                     ` Ammo-zilla Robert Dewar
1999-11-02  0:00                       ` Ammo-zilla Charles Hixson
1999-11-03  0:00                         ` Ammo-zilla Wes Groleau
1999-11-01  0:00                     ` Ammo-zilla Geoff Bull
1999-10-29  0:00                 ` Ammo-zilla Matthew Heaney
1999-10-29  0:00                   ` Ammo-zilla Charles Hixson
1999-10-29  0:00                 ` Ammo-zilla Tucker Taft
1999-10-30  0:00                   ` Ammo-zilla Lutz Donnerhacke
1999-10-31  0:00                 ` Ammo-zilla Robert Dewar
1999-10-31  0:00                   ` Garbage colletion Lutz Donnerhacke
1999-11-01  0:00                     ` Robert Dewar
1999-11-01  0:00                       ` Lutz Donnerhacke
1999-11-01  0:00                     ` Larry Kilgallen
1999-11-01  0:00                     ` Robert Dewar
1999-11-01  0:00                       ` Gnat IDE (was: Garbage colletion) Ted Dennison
1999-11-01  0:00                       ` Garbage colletion Lutz Donnerhacke
1999-11-01  0:00                         ` Robert Dewar
1999-11-04  0:00                           ` Didier Utheza
1999-11-04  0:00                             ` David Starner
1999-10-31  0:00                 ` Ammo-zilla Robert Dewar
1999-10-31  0:00                   ` Ammo-zilla David Starner
1999-11-01  0:00                     ` Ammo-zilla Robert Dewar
1999-11-01  0:00                     ` Ammo-zilla Robert Dewar
1999-11-01  0:00                     ` Ada and GC. Was: Ammo-zilla Vladimir Olensky
1999-11-01  0:00                       ` Tucker Taft
1999-11-02  0:00                         ` Robert Dewar
1999-11-02  0:00                           ` Charles Hixson
1999-11-03  0:00                             ` Robert Dewar
1999-11-03  0:00                               ` Charles Hixson
1999-11-02  0:00                         ` Vladimir Olensky
1999-11-01  0:00                       ` Vladimir Olensky
1999-11-01  0:00                   ` Ammo-zilla Robert A Duff
1999-11-01  0:00                     ` Ammo-zilla Vladimir Olensky
1999-11-01  0:00                     ` Ammo-zilla Robert Dewar
1999-11-02  0:00                       ` Ammo-zilla Robert A Duff
1999-11-02  0:00                         ` Ammo-zilla Robert Dewar
1999-11-03  0:00                           ` Ammo-zilla Vladimir Olensky
1999-11-03  0:00                             ` Ammo-zilla Robert Dewar
1999-11-04  0:00                               ` Ada GC (was Re: Ammo-zilla) Vladimir Olensky
1999-11-06  0:00                                 ` Robert Dewar
1999-11-06  0:00                                   ` Vladimir Olensky
1999-11-06  0:00                                     ` Robert Dewar
1999-11-06  0:00                                     ` Vladimir Olensky
1999-11-09  0:00                                     ` Robert A Duff
1999-11-10  0:00                                       ` Vladimir Olensky
1999-11-10  0:00                                         ` Richard D Riehle
1999-11-10  0:00                                           ` Robert A Duff
1999-11-10  0:00                                           ` Nick Roberts
1999-11-12  0:00                                             ` Robert I. Eachus
1999-11-12  0:00                                               ` Didier Utheza
1999-11-12  0:00                                             ` Robert Dewar
1999-11-12  0:00                                           ` Robert I. Eachus
1999-11-04  0:00                             ` Ada GC (was Ammo-zilla) Nick Roberts
1999-11-04  0:00                               ` Wes Groleau
1999-10-30  0:00             ` Ammo-zilla Lutz Donnerhacke
1999-10-30  0:00               ` Ammo-zilla Matthew Heaney
1999-10-31  0:00             ` Ammo-zilla Robert Dewar
1999-10-28  0:00           ` Ammo-zilla Charles Hixson
1999-10-29  0:00             ` Ada and GC (Was Re: Ammo-zilla) Vladimir Olensky
1999-10-29  0:00               ` David Botton
1999-10-31  0:00                 ` Vladimir Olensky
1999-10-30  0:00                   ` Samuel T. Harris
1999-10-30  0:00                     ` David Botton
1999-10-29  0:00           ` Ammo-zilla Robert I. Eachus
1999-10-28  0:00         ` Ammo-zilla Tucker Taft
1999-10-31  0:00           ` Brian Rogoff [this message]
1999-11-01  0:00             ` Ammo-zilla Robert Dewar
1999-11-01  0:00               ` Ammo-zilla Brian Rogoff
1999-11-02  0:00                 ` Ammo-zilla Robert Dewar
1999-11-02  0:00                   ` Ammo-zilla Brian Rogoff
1999-11-02  0:00               ` Ammo-zilla Robert A Duff
1999-10-31  0:00         ` Ammo-zilla Robert Dewar
1999-10-24  0:00     ` Ammo-zilla Aidan Skinner
1999-10-25  0:00       ` Ammo-zilla Jean-Pierre Rosen
1999-10-24  0:00 ` Ammo-zilla Robert Dewar
1999-10-24  0:00   ` Ammo-zilla David Botton
replies disabled

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