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