comp.lang.ada
 help / color / mirror / Atom feed
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-22 23:56 Robert I. Eachus
  0 siblings, 0 replies; 50+ messages in thread
From: Robert I. Eachus @ 1993-02-22 23:56 UTC (permalink / raw)


     There are two intertwined issues here.  Jean sees beauty as an
important facet of programming language design, and his major
disagreement with Tucker is on exactly this issue.  He feels that wide
acceptance of Ada 9X requires that it be more elegant than Ada 83.  At
the current state of the process this is clearly not the case, but
knowing the people on board, especially Mike Woodger, I have to
believe that the final standard document will be much more elegant
than the current version of the ILS.

      But elegance also applies to the programs written in Ada 9X.
Jean send a message to the list saying it was now time to consider the
style issues and "with null" was first on the list.  While this phrase
is now gone in some places if not all, several people including Jean
felt that the keyword should be class, not tagged, and should precede
not follow the "type XXX is."  (Ada 83 does have both: "task type FOO
is..." and "type BAR is limited private;" so consistancy is not an
issue.)

     At the WG9 meeting in Salem, there was a vote to decide between
the two proposals (by countries since this was an ISO meeting).  The
vote was two to two with six abstentions.  (The US delegation felt the
appropriate position was to abstain initially then throw our support
to the winning side.  Oops!)  I think that overall the vote really
reflected a feeling that there might be a better alternative, but that
there really was no major techincal reason to favor one over the
other. Unfortunately, at this point a better alternative would require
major technical advantages to make it in the language.

     Second, and the major reason I am writing this, please don't let
the presence mislead you about the OO features in Ada 9X.  Of course,
Jean feels that this misperception will kill Ada 9X...  The mechanisms
in Ada 9X provide the necessary missing key pieces in Ada 83 to
implement all OO idioms.  (With the possible exception of troublesome
uses of multiple inheritance.  At this point I am actually more
concerned that the MI mechanisms in Ada 9X will allow misuse, that
that any current MI design cannot be implemented.)

     Maybe I should elaborate.  In Ada 9X, it is possible/easy to
create classes intended as mix-ins.  Take it to an extreme, and all
but one root (class) type in your program can be implemented as a
mix-in.  That doesn't seem to lead to surprises.  It is also possible
to inherit from a single parent no matter how that parent was
designed.  Also a clear mental model.  When you mix the SI and MI
models, it is not clear that all the possible consequences are easily
predictable.  (But at least they are always well specified, which is
better than most languages with MI features.)

--

					Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-03-11 15:13 Tucker Taft
  0 siblings, 0 replies; 50+ messages in thread
From: Tucker Taft @ 1993-03-11 15:13 UTC (permalink / raw)


In article <1993Mar9.181231.27197@intellistor.com> 
  wicklund@intellistor.com (Tom Wicklund) writes:

>>How would you write this in a "class-based" language?
>>At least in C++, operators almost always have to be made "friends"
>>to work right.
>
>No they don't.  I suggest you look at the GNU g++ library
>implementation of complex, which I summarize below.  Note that there
>are NO friend functions.  

Thanks for pointing this out.  What I should have said
was that operators must generally *not* be member functions
if they are going to work right in conjunction with
implicit conversions.  As you illustrate, if the functionaliy
of a non-member-function operator can be expressed in terms
of some member function (operator or otherwise), then there
is no need to make the non-member-function operator a "friend."

Your example, however, illustrates the point I was *trying* (albeit
ineffectively ;-) to make, that the "encapsulation" provided
by a C++ class construct is not always complete, since one must revert
to non-member-function declarations (for example for many binary
operators) to get the desired functionality.  This is neither
good nor bad as far as I am concerned.  It just shows that a
"religious" belief that "class-based" languages (in as much
as C++ is one) do a better job of encapsulating all of the 
interesting operations "inside" the class, doesn't always 
turn out to be true.  However, by using files as modules, one
can get the logical grouping you desire in C++.

In Ada, the package provides all encapsulation, both for
the equivalent of member functions ("primitive subprograms" in
Ada 9X, "derivable subprograms" in Ada 83) and for any
associated types, operators, exceptions, generics, etc.
Either way works, but having *both* a class-based encapsulation
and a package-based encapsulation in a single language would
almost certainly result in undesirable complexity and confusion.

As far as the great "class" vs. "tagged" debate, Ada 9X does
have classes, and in fact the word "Class" appears quite prominently
in any Ada 9X example that uses polymorphism.  It just doesn't
happen to appear in the declaration of a tagged type.
Instead it appears in the declaration of polymorphic operations
and access types.  The concept of "class" is also behind the scenes 
any time you define a generic with a formal type 
like "type I is range <>;" since any type in the integer "class"
matches such a declaration (this is an example of compile-time
polymorphism).

As far as marketing to the masses, the big term these days 
is "object technology" not "class-based languages."
Given that, we should presume that Modula-3, since it uses
the term "object" in its syntax for OOP-related types, should
soon take over the world!  

One last note, before I retire from this debate, for the history buffs
who like to quote the computer science greats...

  One of the earlier places where the term "tag" appears in scholarly
  circles is in the classic book "Structured Programming" by
  O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare.
  In Hoare's chapter entitled "Notes on Data Structuring,"
  in the section on "The Discriminated Union" he begins
  his subsection on "Manipulation" as follows:

     Any value of a discriminated union carries with it a "tag"
     field indicating which of the particular constituent types it
     originated from; on assignment this is copied, and on a test
     of equality, the tag fields must be the same if the values
     are to be equal.

  Hoare and Niklaus Wirth collaborated somewhat on the development
  of this concept, and "tag" was the term Wirth adopted in his
  description of Pascal (e.g. in the Pascal User Manual and Report).

  The term "tag" is also used in more recent "scholarly" contexts, 
  particularly in a paper on "Dynamic Typing in a Statically Typed 
  Language" by Abadi, Cardelli, Pierce, and Plotkin (TOPLAS 4/91).

Probably the major objection to the term "tagged" is that
it *sounds* too low-level and implementation oriented.  Of course,
some might find that comforting in a systems-programming language.
But even for those who prefer abstractness in a language, the
term "tagged" really just means "self-identifying."
Each "tagged" object in Ada 9X identifies its own underlying type.  
This is the key to run-time polymorphism, and is the critical step from
an abstraction-oriented language like Ada 83, to an "object"-oriented
language like Ada 9X.  In Ada 83, a given abstraction interface
has exactly one implementation.  In Ada 9X, as in other OOP languages,
a given interface may have many implementations, typically organized
into some kind of hierarchy.  The objects carry around an identifying
(abstract ;-) tag that allows them all to be manipulated through
a common interface, but still nevertheless to be treated specially
according to their self-identifying tag when appropriate, through
the "magic" of run-time dispatching.  Ada 83 already had abstract
data types (unlike C); they were called "private types."  In Ada 9X,
abstract data types are still called private types.  However, if
you want to use them with run-time polymorphism, then they have
to be "tagged" private types.  But they are still "private" types, 
and in many cases that is more fundamental than the fact
that they are "tagged."

So that's the technical/computer-science justification for the term.
As far as marketing, we do use the term "class" heavily in Ada 9X,
and we use it in a way that meshes nicely with its use in other
OO languages.  However, we made a judgement call that to use
it in the *syntax* of tagged types, and to call such types
"class types" would result in more problems (marketing and technical)
than it solved.

This judgement call was based on technical merit, on
marketing considerations, on usability, etc.  Of course, others
might reach a different conclusion (of course, others *have* reached
a different conclusion ;-).  Such is the way with language design.
You have to make some tough, but in many ways, "arbitrary" choices,
using the clearest "crystal ball" you can devise, and with an
eye toward the overall consistency and aesthetics of the language --
it is unwise to try to make one "corner" of the language "beautiful"
at the expense of overall consistency and usability.

In any case, it is quite unlikely that you will please everyone with
every design choice.  It is quite likely that there will be some vocal,
heartfelt, and well justified arguments on the opposite side of
almost every decision.  This particular choice seems to be
one of the "canonical" examples of that phenomenon.

But at some point, you make a decision and move on.  In this area,
we have done that, and only posterity will be able to confirm
whose "crystal ball" was clearer.  The only thing worth reiterating,
is that even if you don't agree with our decision, please believe
that we have the same technical, usability, and marketing concerns
as everyone who hopes that Ada 9X will be a widely-used, highly
productive programming language for developing and maintaining
the complex software systems of the 90's and beyond.

S. Tucker Taft   stt@inmet.com
Ada 9X Mapping/Revision Team
Intermetrics, Inc.
Cambridge, MA  02138

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-03-10 20:39 John Goodsen
  0 siblings, 0 replies; 50+ messages in thread
From: John Goodsen @ 1993-03-10 20:39 UTC (permalink / raw)


wellerd@ajpo.sei.cmu.edu (David Weller) writes:

>Tucker would be quick to point out that the word "record" is also
>an implementation detail, but that it's become generally accepted
>in the programming domain.  

This is irrelevant to the class vs. tagged type discussion.
Or is it?  "class" is generally accepted in the OO programming
domain.  Tagged Type ?  really not even known in the OO programming
domain.


>Frankly, I don't care for the word
>"tagged" either, but "class" doesn't fit in its place.  
>
By what measurement?  C++ syntax? Again, if you want to make
an impact against markets like the C++ market, you need to at
least speak the language.  Change the semantics for
technical superiority, but you'll never get the OO message out
using terminology that the OO community doesn't (for the most
part) understand, namely "tagged types".  



>One other thing that's bothered me -- why are we raising such a fuss
>about the word "tagged" to mean "this record may have it's state
>description extended"?  Perhaps we're being pedantic?  

The whole argument for class vs. tagged type is based solely upon
the need for Ada 9X to gain support as an OO language.  This is
not pedantic.  It is realistic awareness of the programming community
and how to grow a business centered on Ada technology.


-- 
John Goodsen
Software Process & Environments
EVB Software Engineering
jgg@evb.com



^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-03-10 20:15 John Goodsen
  1993-03-10 22:41 ` David Emery
  0 siblings, 1 reply; 50+ messages in thread
From: John Goodsen @ 1993-03-10 20:15 UTC (permalink / raw)


stt@spock.camb.inmet.com (Tucker Taft) writes:

>srctran@world.std.com (Gregory Aharonian) writes:
>> . . .From this point of view, the original posting's
>>call for more features in Ada9X that allows better competition with C++
>>(and Smalltalk) should be heeded.
>
>There are many ways to skin a cat.  In many cases, imitation is not
>the most effective strategy.  Why choose Ada 9X if it makes the same
>mistakes that C++ does?  

Which is hardly what I was proposing.  Are you saying that classes
are a mistake in C++ ?  I would hope that the real message of 
the original posting was received as:

  Object Oriented Analysis and Design approaches (most of them
  and certainly the mainstream) use class based approaches.  
  When a software engineer performs OOA and/or OOD, it is going
  to be quite natural to look for an implementation language
  which *has class*.  If you don't make it easy for someone on
  the language search to see that Ada supports the concept of
  "class", then the acceptance of the language for OO development
  will not meet it's true potential.

I have heard the arguments on why tagged types are *better* than
classes, and for the most part agree with them.  This is not a
technical issue.  It's a market acceptance issue.  If the solution
is to change the syntax from "tagged type" to "class" and leave
it at that, then it doesn't sound like too much of a problem and
I will predict that the commercial payoff will be worth the minor
syntactical change.  

I know what you're thinking:  "But, if we change 'tagged type'
syntax to 'class' syntax, it won't be a class in the same
terms as other languages!"  Great!  If you want to introduce the
world to a better object oriented programming mechanism, then
at least speak to the world in their language.  The language
that people will understand is "class", not "tagged type".

A class in CLOS, smalltalk and C++ are not identical already.
The argument that if Ada uses the word "class" then it has
to be exactly like C++'s implementation of a class doesn't
hold water.  Don't let a C++ vs. Ada bias affect this "CLASS"
syntax issue.  It will seriously hinder new market acceptance of
Ada as an OOP language.

>
>We should learn from the strengths and
>weaknesses of other languages, and advance the state of the art, 
>not solidify it around a 1985-vintage design.
>

So is it safe to assume that 9x tagged types are considered
as "advancing the state of the art" by the Ada 9X project or
wasn't the syntax terminology introduced to remain consistent
with the Ada 83 "state of the art".

A serious question, really :-)

-- 
John Goodsen
Software Process & Environments
EVB Software Engineering
jgg@evb.com



^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-03-07 19:15 John Goodsen
  1993-03-08  0:45 ` David Emery
  1993-03-08 15:36 ` Tucker Taft
  0 siblings, 2 replies; 50+ messages in thread
From: John Goodsen @ 1993-03-07 19:15 UTC (permalink / raw)



>In article <1993Feb25.170827.2178@ennews.eas.asu.edu> 
  stt@spock.camb.inmet.com (Tucker Taft) writes:

>>. . . I hear all this hype about tagged types 
>
>I'm glad to know that at least we are getting some "hype" out
>on Ada 9X.  As any good marketer knows, publicity of any kind is often
>better than no publicity at all. ;-)
>

*often* but not *always*.  In the case of this news thread, the 
"hype" is not helping the perception of Ada 9X in a positive manner...


>> . . . and I see a 
>>few small examples of how they're used with packages/generics/..., 
>>but has anyone implemented a few OO problems with each and compared 
>>them? Semantically, it was easier to add extensiosn to Ada than a 
>>class construct.  But, I think the jury's still out on the "type 
>>extensions 
>> classes" question.  
>
>Actually, there really is not that much difference.  A class-based language 
>happens to have type = module, whereas in package/module-based languages, 
>types are declared inside of modules.
> 

Actually, there's nothing saying that you can't have *MORE* than one
class per module (Ada package) in a class based language.  The class
supports the logical encapsulation of data and operations on that data
(which is the norm in the OO community).  Ada packages would provide
the capability to group related classes and nested classes.

What's the *real* problem with introducing the keyword "class"
instead of "type ... is tagged" ?!?!? 

The tagged type extension doesn't provide the logical encapsulation
mechanism for the associated operations.  So if I *do* add more
than one class (tagged type) to a package, where's the logical
encapsulation of the operations that can be performed on that type?
Leave it up to the programmer to place them in close proximity?
Add more rules to coding guidelines to ensure it?  I'd rather have
the language enforce it...

Is it really that painful to bite the bullet and add the keyword
"class" to the Ada language.  This simple addition to the current
9X approach will provide vendors such as us with a lot more
"perceptual power" to lobby the OO community to seriously look at
using Ada rather than languages such as C++ on their projects.
Once again I'll state it:  

   A *PERCEIVED* feature of an Object Oriented language is that
   it provides a class mechanism with polymorphic behavior.

If Ada 9X comes out without direct support for the concept of class,
then it will have trouble being *PERCEIVED* as a *real* OO language
and you can kiss all those new OO markets bye-bye.

It doesn't matter if I can *achieve* it with tagged types, the simple
fact of the matter is that most people won't dig deep enough into the
concept of tagged types to understand that this is where their
class/inheritance/polymorphism support is embedded.  They will end up
choosing languages like C++ which provide *direct* support for the
class concept.

What do we mean by *direct* support for the class concept?  Simple:

   Add the keyword "CLASS" to the language already !!!

Heck, you've already got the 'CLASS attribute in the language!  Is it
really that much more effort to use "CLASS" instead of 
"TYPE ... IS TAGGED" ???

I'm getting the feeling that the real reason for not adding CLASS to
the language is an extreeeeeeeeeme case of the "Not Invented Here"
syndrome.  In this case the NIH syndrome will hurt the marketing of
Ada as an OO language worse than anything else I can think of
(including the lack of direct support for multiple inheritance, which
is another issue :-)

>If you only declare one type 

   ... [talk about one type per module ]...

>
>But in any case, the debate between Jean Ichbiah and the 
>Ada 9X Mapping/Revision Team (MRT) was not really about 
>"classes" vs. "type extensions," it was whether we 
>should use the keyword "class" in the syntax for type extensions.
>

From reading the above, you can see that my vote is with Mr. Ichbiah...

>The MRT felt that it would simply further confuse the issue by trying
>to cloak our type extensions in the word "class."  
>

"Cloak" ?? Hmmm, so what you're saying is that Ada 9X truly doesn't
have a "class" concept but rather it is a "type extension" ?

>
>So the issue was really about which syntax was most suggestive of the 
>semantics --a kind of issue that unfortunately does not lend itself to 
>objective debate, even though it creates strong feelings on both sides.
>

How about a debate which includes $$ and cents in the marketing
of the language.  Too much technical focus and not enough
market focus on the OO support of Ada 9X will come back to haunt
us ...

>
> . . . People seem to use what they like and OO developers like a
>class construct.  Tagged types are not new and for some reason or
>another were never embraced by the OO community.
>

 ... [ more talk about types inside modules ] ...

>
>Despite the enormous success of C++, there is still a lot of (at least 
>academic) interest in the new OOP languages Modula-3 and Oberon-2, both 
>of which have gone the type-inside-module.  So it may be too early to say that
>"we have a winner."  
>

As the C++ market doubles each year, I don't think there is much
debate who the "winner" will likely be.  C++ has already layed out
most of commercial market battle field for OO languages in the next 10
years.  Wouldn't it be nice to say that "Ada has everything C++ has
*PLUS* tasking, hierarchical libraries, etc..."?  Ada 9X has got to
directly match the class concept of C++ or it will lose too many
potential users to a language which supports it.

When people read an OOD book and it talks about "classes",
"inheritance" and "polymorphism", they will naturally look for these
constructs in a language.  The majority of these people will bypass
Ada 9X when they see that it doesn't have direct support for "classes"
(unless this advice is heeded and the tagged types are changed to
classes :-)


>And for that matter, once you start using one
>of these languages, you will probably discover the type=module vs.
>type-inside-module choice has very little effect on how you design
>and structure your OOP systems.  You will end up creating groups of
>types whether or not the language directly supports the concept of
>"modules."  Similarly, you will often end up having one (primary) type 
>in a module, even if the language allows multiple such types.
>The structure of the problem will probably have more effect on 
>the structure of the program than does the type=module vs. type-inside-module
>decision of the language designer.
>

All the more reason to allow multiple CLASSes in an Ada package?
(which tagged types gives us).  Now all we need to do is make them
look like a class instead of a "tagged type".  Then we've got the best
of both worlds! :-)

Leave Ada types and subtypes as they are in Ada 83.  They serve their
purpose just fine.  Don't confuse them with classes and inheritance.

>> . . .Should be an
>>interesting next few years.
>
>No debate there.
>

It would be even more interesting if Ada 9X became a *real*
commercial competitor of C++ !!!  

  CLASS!  CLASS!  CLASS!

If you don't have class, you won't be considered an OO language!!!
I doubt many reading this c.l.a newsgroup want to hear:

   "Ada's a nice language, but it doesn't have any CLASS!"

:-)



EDITOR'S NOTE: 

  There's more to changing "TYPE ... IS TAGGED" to "CLASS" than
  addressed in this post.  In particular the syntax and semantics of
  encapsulating functions/procedures within a class are left as
  excercise to the MRT. :-) Once again I'll point to Colin Atkinson's
  book on DRAGOON as an excellent example on how to do it...



-- 
John Goodsen
Software Process & Environments
EVB Software Engineering
jgg@evb.com



^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-26 22:58 Bob Munck
  1993-02-28 18:42 ` Don Tyzuk
  0 siblings, 1 reply; 50+ messages in thread
From: Bob Munck @ 1993-02-26 22:58 UTC (permalink / raw)


In Volume 93 : Issue 89,
eachus@mitre-bedford.arpa (Robert I. Eachus) says:

> ... Jean send a message to the list saying it was now time to
> consider the style issues and "with null" was first on the
> list.  ... several people including Jean felt that the
> keyword should be class, not tagged, and should precede
> not follow the "type XXX is." 

Jeez.  It sounds like you guys are arguing over how many angels
can dance on a pin and Jean left in a huff because you decided
it was an odd number.  I mean, this is an ISSUE??!?

It seems to me that Ada is, right now, going through a serious
crisis at the level of pure survival.  Maybe there's a better
focus for all this energy and passion?

Bob Munck



^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-26 16:26 enterpoop.mit.edu!linus!agate!howland.reston.ans.net!paladin.american.edu
  0 siblings, 0 replies; 50+ messages in thread
From: enterpoop.mit.edu!linus!agate!howland.reston.ans.net!paladin.american.edu @ 1993-02-26 16:26 UTC (permalink / raw)


In article <1993Feb25.235118.8156@wdl.loral.com> mab@wdl39.wdl.loral.com (Mark 
A Biggar) writes:

>Most of the current OO comunity has never seen anything except C++, so
>how could they have embraced anything else.  Note that CLOS in Common LISP
>is not really class based (Class based: using simula like classes as the
>major structuring and encapsulation method) and is really closer to
>Ada tagged types then anything else.  Smalltalk is its own little world.
>Everything else OO is either too academic or too little know to have had any
>affect on any large portion of the current OO community.
>
Correct! Much of the supposed OO community in industry is really the C++
community, which seems to think that the only way to do OO is the C++ way.
The most extreme case is those whose understanding of OO can be summarized
"I don't know much about it, but I've heard it's that stuff that C++ can
do that Ada can't." There's a LOT of this around, folks.

I think it was Robert Dewar of NYU who, some years ago in a discussion
about some Ada feature or other (maybe tasking), said "Look, you may
have one model in mind; Ada has another. Just because Ada didn't
adopt _your_ model doesn't make Ada wrong."

I think it's high time to look at Ada on its own merits, and consider
soberly and impartially whether Ada can do our job. We will get nowhere
continually comparing Ada to C++ as though C++ had a monopoly on truth.

Constantly asking "which is better" is futile, because nobody knows,
nobody _can_ know, and even the cost-effectiveness question can be
answered only after years of experience, and the answer _still_ will 
depend upon how the numbers are cooked.

Show me some _solid_ evidence about classes vs. tagged types. I claim
there is none and won't be for years. So let's get back to work.

This newsgroup somehow manages to get back around to this pi**ing match
every few weeks. I am thoroughly bored with it, and you must be too...

Mike Feldman

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-26 14:35 David Emery
  0 siblings, 0 replies; 50+ messages in thread
From: David Emery @ 1993-02-26 14:35 UTC (permalink / raw)


Ed Schonberg @ NYU has done a study comparing C++ and Ada9X
implementations of a set of reusable components based on the Booch
components, I believe.  
				dave

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-25 23:51 Mark A Biggar
  0 siblings, 0 replies; 50+ messages in thread
From: Mark A Biggar @ 1993-02-25 23:51 UTC (permalink / raw)


In article <1993Feb25.170827.2178@ennews.eas.asu.edu> koehnema@enuxhb.eas.asu.e
du (Harry Koehnemann) writes:
>... Tagged types are not new and for some reason or
>another were never embraced by the OO community.  Should be an
>interesting next fwew years.

Most of the current OO comunity has never seen anything except C++, so
how could they have embraced anything else.  Note that CLOS in Common LISP
is not really class based (Class based: using simula like classes as the
major structuring and encapsulation method) and is really closer to
Ada tagged types then anything else.  Smalltalk is its own little world.
Everything else OO is either too academic or too little know to have had any
affect on any large portion of the current OO community.

--
Mark Biggar
mab@wdl1.wdl.loral.com

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-24 21:10 John Goodsen
  1993-02-25  3:48 ` agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!ne
  0 siblings, 1 reply; 50+ messages in thread
From: John Goodsen @ 1993-02-24 21:10 UTC (permalink / raw)


koehnema@enuxha.eas.asu.edu (Harry Koehnemann)

>In article <1993Feb17.065421.12021@sei.cmu.edu> wellerd@ajpo.sei.cmu.edu (Davi
d Weller) writes:
>>Speaking of tagged types,
>>it was my impression that this was Mr. Ichbiah's most sour grape.
>>He was rather insistent on creating a class-based language, rather
>>than the tagged types that we have now.  Although I agreed with him
>>on quite a few points, Tucker's counterpoints were far more
>>compelling.  
>
>Now that's interesting, if it is indeed true.  Technical merits are
>not the sole consideration for any design.  WHile the package/type
>extension approach may have advantages over a class based approach,
>it also has disadvantages - perhaps the largest being understanding
>by developers.  Class based langauges are common, their usage well
>understood (well, as understood as things get in CS), and most
>importantly, are currently embrassed by OO developers.  Type
>extensions (tagged types), while by no means a new concept, are not
>seen in the popular OO langauges.
>
>I think it will be interesting to see how the OO community that Ada
>seeks to crack will embrace extensions as a construct for inheritance.
>Particularly considering their past acceptance of the construct.  I
>also think the Ada community has a big sell ahead of itself.  Not that
>it can't be done, but "technical merit" does not directly lead to
>"popular" or "used" (ask FORTRAN and COBOL - and unfortunately Ada83).
>

How true.  A technological feasible solution in no way gaurantees
a success.  There is a concept of "perceived" need versus "actual"
need.  You don't market to "actual" needs, but to "perceived" needs.
The perception in the OO community is that the class is the natural
structuring concept.  The Ada 9X approach to classes, while technically
feasible is going to have a tough sell into NEW markets, because it
lacks the perception necessary to be embraced by a mainstream of
OO developers.  In particular, the concept of a "class" as a basic
object oriented structuring mechanism.  This same argument also
applies to the lack of direct support for multiple inheritance in Ada9X.  
While there have been proposals on how to perform MI using generics
or method delagation (which are still debatable), the perception 
of multiple inheritance as a core component of the language is not
there and will also hinder the marketing of Ada into NEW markets ...
While those of us who already know and like Ada are excited about
9X features, these 2 lacking perceptual needs (Class level packaging
and Multiple Inheritance) will negatively impact the growth potential
of this powerful language.

Before the flame war on this starts again, execute the following:


 If Flamer Has_Not_Read(DRAGOON) then
    Redirect_Flames ( to => "/dev/null" );
 end if;

--
John Goodsen
Software Process & Environments
EVB Software Engineering
jgg@evb.com



-- 
John Goodsen
Software Process & Environments
EVB Software Engineering
jgg@evb.com

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-22 19:32 asuvax!ennews!enuxhb.eas.asu.edu!koehnema
  0 siblings, 0 replies; 50+ messages in thread
From: asuvax!ennews!enuxhb.eas.asu.edu!koehnema @ 1993-02-22 19:32 UTC (permalink / raw)


In article <1993Feb17.065421.12021@sei.cmu.edu> wellerd@ajpo.sei.cmu.edu (David
 Weller) writes:
>Speaking of tagged types,
>it was my impression that this was Mr. Ichbiah's most sour grape.
>He was rather insistent on creating a class-based language, rather
>than the tagged types that we have now.  Although I agreed with him
>on quite a few points, Tucker's counterpoints were far more
>compelling.  

Now that's interesting, if it is indeed true.  Technical merits are
not the sole consideration for any design.  WHile the package/type
extension approach may have advantages over a class based approach,
it also has disadvantages - perhaps the largest being understanding
by developers.  Class based langauges are common, their usage well
understood (well, as understood as things get in CS), and most
importantly, are currently embrassed by OO developers.  Type
extensions (tagged types), while by no means a new concept, are not
seen in the popular OO langauges.

I think it will be interesting to see how the OO community that Ada
seeks to crack will embrace extensions as a construct for inheritance.
Particularly considering their past acceptance of the construct.  I
also think the Ada community has a big sell ahead of itself.  Not that
it can't be done, but "technical merit" does not directly lead to
"popular" or "used" (ask FORTRAN and COBOL - and unfortunately Ada83).
--
Harry Koehnemann			Arizona State University
koehnema@enuxha.eas.asu.edu		Computer Science Department

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-17 14:50 agate!howland.reston.ans.net!wupost!darwin.sura.net!mlb.semi.harris.com!d
  0 siblings, 0 replies; 50+ messages in thread
From: agate!howland.reston.ans.net!wupost!darwin.sura.net!mlb.semi.harris.com!d @ 1993-02-17 14:50 UTC (permalink / raw)


In article <1993Feb17.065421.12021@sei.cmu.edu>, wellerd@ajpo.sei.cmu.edu
(David Weller) writes:
|> In article <SRCTRAN.93Feb16213209@world.std.com> srctran@world.std.com
|> (Gregory Aharonian) writes:
|> >
|> >Again, did this stuff ever float over comp.lang.ada ?
|> 
|> No, in fact, it didn't.

I don't believe Jean's letter and Tucker's response were ever 
posted to *any* USENET newsgroup.  The copies I have were sent 
to the Ada9X mailing lists (which may be where the 'Internet' 
thing came from).

-- 
Scott McCoy	Harris ISD	Opinions expressed are my own.
Staff Eng - SW	Internet: 	smccoy@dw3g.ess.harris.com

^ permalink raw reply	[flat|nested] 50+ messages in thread
* Re: Ichibah flames, and flames out over, Ada 9X
@ 1993-02-17 11:54 agate!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com!
  0 siblings, 0 replies; 50+ messages in thread
From: agate!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com! @ 1993-02-17 11:54 UTC (permalink / raw)


In article <SRCTRAN.93Feb16213209@world.std.com> srctran@world.std.com (Gregory
 Aharonian) writes:
>   The following article was in the February 15, 1993, issue of Government
>Computer News, cover page.  It mentions an Internet exchange which apparently
>skipped over comp.lang.ada.  Anyways, here it is.
>
>Greg Aharonian
>Source Translation & Optimization
>
>[GCN Article Deleted]
>
>Again, did this stuff ever float over comp.lang.ada ?

No, in fact, it didn't.  Not that I really felt it should.  I do
believe, however, that his "goodbye letter" can be found somewhere
in the Mapping Revision Team comments (available via public ftp from
ajpo.sei.cmu.edu under the directory public/ada9x/mrtcomments).  I'd
suggest that you look back around late October.  I seem to recall he
wrote that letter at the same time Tri-Ada was going on.  I believe
he also used it as a platform to make a final protest against the
"with private" clause for tagged types.  Speaking of tagged types,
it was my impression that this was Mr. Ichbiah's most sour grape.
He was rather insistent on creating a class-based language, rather
than the tagged types that we have now.  Although I agreed with him
on quite a few points, Tucker's counterpoints were far more
compelling.  

Personally, I'm diasppointed that Jean left.  When a knowledgeable
antagonist leaves a group like the MRT's reviewers, there's always
a chance that the health of the 9X project will suffer.  However, if
you'll look at the MRT comments, you'll find that there's still
PLENTY of knowledgeable antagonists out there.  Right, Tuck? :-)

dgw
>-- 
>**************************************************************************
>Greg Aharonian
>Source Translation & Optimiztion
>P.O. Box 404, Belmont, MA 02178

^ permalink raw reply	[flat|nested] 50+ messages in thread

end of thread, other threads:[~1993-03-17 18:18 UTC | newest]

Thread overview: 50+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1993-02-22 23:56 Ichibah flames, and flames out over, Ada 9X Robert I. Eachus
  -- strict thread matches above, loose matches on Subject: below --
1993-03-11 15:13 Tucker Taft
1993-03-10 20:39 John Goodsen
1993-03-10 20:15 John Goodsen
1993-03-10 22:41 ` David Emery
1993-03-12 16:01   ` Tom Pole
1993-03-12 22:59     ` Charles H. Sampson
1993-03-13  3:11     ` Keith Thompson @pulsar
1993-03-14 15:03       ` Fergus James HENDERSON
1993-03-15 23:19       ` Harry Koehnemann
1993-03-16  2:50         ` Michael Feldman
1993-03-17 18:18         ` Robert Firth
1993-03-12 22:02   ` Anthony Howell
1993-03-07 19:15 John Goodsen
1993-03-08  0:45 ` David Emery
1993-03-08 15:36 ` Tucker Taft
1993-03-08 16:28   ` Michael Feldman
1993-03-08 22:15     ` Gregory Aharonian
1993-03-09 14:20       ` Tucker Taft
1993-03-09 14:55         ` C. Michael Holloway
1993-03-10 14:51         ` Gregory Aharonian
1993-03-09 17:12       ` Harry Koehnemann
1993-03-09 20:54         ` Michael Feldman
1993-03-09 20:14       ` Larry M. Jordan
1993-03-09 17:49     ` Harry Koehnemann
1993-03-09 21:01       ` Michael Feldman
1993-03-09 18:12   ` Tom Wicklund
1993-03-09 18:53   ` Larry M. Jordan
1993-03-09 20:24     ` David Weller
1993-03-09 21:03       ` Michael Feldman
1993-03-12 14:49         ` Tucker Taft
1993-03-12 23:54           ` Michael Feldman
1993-03-16 17:34   ` Robert Firth
1993-02-26 22:58 Bob Munck
1993-02-28 18:42 ` Don Tyzuk
1993-03-04 22:44   ` news
1993-03-05  2:39     ` Richard Pattis
1993-03-05 11:36     ` David Weller
1993-03-05 12:06     ` Don Tyzuk
1993-02-26 16:26 enterpoop.mit.edu!linus!agate!howland.reston.ans.net!paladin.american.edu
1993-02-26 14:35 David Emery
1993-02-25 23:51 Mark A Biggar
1993-02-24 21:10 John Goodsen
1993-02-25  3:48 ` agate!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!ne
1993-02-25 17:08   ` Harry Koehnemann
1993-03-01 15:59     ` Tucker Taft
1993-03-02  7:43       ` Dag Bruck
1993-02-22 19:32 asuvax!ennews!enuxhb.eas.asu.edu!koehnema
1993-02-17 14:50 agate!howland.reston.ans.net!wupost!darwin.sura.net!mlb.semi.harris.com!d
1993-02-17 11:54 agate!howland.reston.ans.net!sol.ctr.columbia.edu!The-Star.honeywell.com!

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