[comp.lang.c++] Examples where c++ beats ADA?

dove@rocket.stars.flab.Fujitsu.JUNET (Webster Dove) (05/04/89)

I am thoroughly familiar with LISP flavors.
I am moderately familiar with C++.
I am marginally familiar with ADA.

A coworker who also knows a little c++ and ADA asks,
"Why do you believe C++ is so much better than ADA for OOP?".

I cogitate for a while and answer, "Init methods and virtual functions".

He asks, "Why are they better than using generics?".

I cogitate some more and answer, "Because you can make heterogeneous
lists with virtuals and you can't do that with ADA".

He asks, "Is that all?".

I send out mail to the net.

If you have a good (simple) example of something that is easy to do in
one and not the other could you mail it to me? (either direction is
interesting) I will spread the info around here to temper the MilSpec
fanatics :)

Web
--
		Dr. Webster Dove
		Computing Systems and Architectures
		Advanced Signal Processing Engineering (ASPEN) Dept.
		Sanders Associates (a Lockheed Company)

mat@mole-end.UUCP (Mark A Terribile) (05/07/89)

> A coworker who also knows a little c++ and ADA asks,
> "Why do you believe C++ is so much better than ADA for OOP?".
 
> I cogitate for a while and answer, "Init methods and virtual functions".
 
> He asks, "Why are they better than using generics?".
 
> I cogitate some more and answer, "Because you can make heterogeneous
> lists with virtuals and you can't do that with ADA".
 
> He asks, "Is that all?".
 
> If you have a good (simple) example of something that is easy to do in
> one and not the other could you mail it to me? (either direction is
> interesting) I will spread the info around here to temper the MilSpec
> fanatics :)



Please see ACM SIGPLAN Notices V22 #5, May 1987, *Is Ada an Object Oriented
Programming Language?*

Please also see Multiple Inheritance as implemented in C++ 2.0 .

(To summarize the excellent article, Ada lacks virtualization and will always
lack virtualization.  This pushes you back onto type fields, and type fields
require case statements with knowledge of all the possible cases scattered
throughout code that would activate a method.  Tasks can't be used as objects
because of the limitations on what you can do with them.)
-- 

(This man's opinions are his own.)
From mole-end				Mark Terribile

jwolf@hpcupt1.HP.COM (John Wolf) (05/09/89)

Lets put it simply:

Dynamic_Binding + Inheritance = True Objected Oriented Language
Ask Bertrand.

*Ada's generics are statically bound (i.e. accomplished at compile time).
*Ada's doesn't have Inheritance, multiple or otherwise.

Argue all you want Ada fans, Ada cannot get around the two above
mentioned shortcommings.

However, you are comparing apples and oranges.

I am a great fan of Ada Tasking.  Try going parallel with C++ - kluge city.

Just an opinion - please don't get nasty