comp.lang.ada
 help / color / mirror / Atom feed
From: "Matthew Heaney" <mheaney@on2.com>
Subject: Re: Package Instances???
Date: Fri, 22 Feb 2002 13:10:36 -0500
Date: 2002-02-22T13:10:36-05:00	[thread overview]
Message-ID: <u7d6mhf39qft76@corp.supernews.com> (raw)
In-Reply-To: 3C7676AF.9020404@mail.com


"Hyman Rosen" <hyrosen@mail.com> wrote in message
news:3C7676AF.9020404@mail.com...
> Depending on how one builds it, a C++ class or class template
> can fulfill the role of an Ada package, record, or tagged type.

We all agree it's not a perfect comparison, since a class in C++ has type
semantics and module semantics, and in Ada they are orthogonal.

> That's just the way it is.

This is not a description of ontic reality, it is a description of your
subjective experience.  I suggest you study instrumentalism (Dewey) or
pragmatic philosophy (James, Peirce).  See also Ernst von Glasersfeld and
Heinz von Foerster.  Indeed, any book on general systems theory.


> To examine equivalent capabilities in the two languages, you
> *must* use a C++ class to emulate an Ada package, otherwise
> there will be all sorts of things that you can do in Ada that
> won't be possible in C++.

Wrong.  An Ada package is a C++ namespace.  An Ada private type is a C++
class.  The fact that genericity is attached to modules in Ada rather than
to the type itself is irrelevant.

> It is simplistic and wrong to argue that a C++ class is just
> like an Ada tagged type.

Well, if a C++ class has virtual methods, then it has a vtable, which
exactly corresponds to an Ada tagged type.  A C++ class sans virtual methods
has no vtable, and hence is equivalent to a nontagged Ada type.

A C++ class is an Ada type.  The fact that a C++ class has module semantics
too is irrelevant.

> That just is not how classes are used
> in modern C++. It may appear to be cobbled together because of
> the C heritage, and because a lot of the idioms were discovered
> late in the game, but the non-tagged-type usages are at least
> as important and useful as the OO stuff.

On that we most certainly agree.  The Ada community has been saying this
from the very beginning, but certain pedantic computer scientists (and lots
of obsequious programmers who followed the party line) weren't convinced.
Thankfully Stroustrup has tempered this unbridled enthusiasm for all things
"pure object-oriented" by demonstrating the benefits of non-extensible types
and static method binding.










  parent reply	other threads:[~2002-02-22 18:10 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-13 21:02 Package Instances??? Yates
2002-02-13 21:12 ` Larry Kilgallen
2002-02-13 21:21 ` chris.danx
2002-02-13 21:46 ` Marin David Condic
2002-02-14 17:59   ` Hyman Rosen
2002-02-15 13:11     ` Marc A. Criley
2002-02-15 19:20     ` Simon Wright
2002-02-19 14:08       ` Marin David Condic
2002-02-20  1:37         ` Matthew Heaney
2002-02-20 16:56           ` Marin David Condic
2002-02-21 15:33             ` Matthew Heaney
2002-02-20 19:16           ` Hyman Rosen
2002-02-20 22:31             ` Pat Rogers
2002-02-20 23:44             ` Matthew Heaney
2002-02-21  5:35               ` Hyman Rosen
2002-02-21 14:05                 ` Marin David Condic
2002-02-22 16:49                   ` Hyman Rosen
2002-02-22 17:22                     ` Marin David Condic
2002-02-24  7:39                       ` Hyman Rosen
2002-02-25 15:38                         ` Matthew Heaney
2002-02-22 18:10                     ` Matthew Heaney [this message]
2002-02-22 20:55                       ` Hyman Rosen
2002-02-22 21:37                         ` Matthew Heaney
2002-02-24  7:36                           ` Hyman Rosen
2002-02-25 15:27                             ` Matthew Heaney
2002-02-21 15:30                 ` Matthew Heaney
2002-02-21 18:05                   ` Hyman Rosen
2002-02-13 21:50 ` Eric Merritt
2002-02-14 15:08 ` Yates
replies disabled

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