From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_MSGID, SUBJ_ALL_CAPS autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fdb77,4873305131bf4d94 X-Google-Attributes: gidfdb77,public X-Google-Thread: 1014db,4873305131bf4d94 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,4873305131bf4d94 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,4873305131bf4d94 X-Google-Attributes: gid109fba,public From: Jon S Anthony Subject: Re: ADA SUCKS, C/C++/JAVA RULES!!!! Date: 1997/11/10 Message-ID: #1/1 X-Deja-AN: 288432045 Distribution: world References: <34557f2b.1934172@news.mindspring.com> <36984222@NEWS.SAIC.COM> <345A83CA.CD776C91@flash.net> <63fl3r$d5c$1@news.luth.se> <345B7A48.F32E4924@flash.net> <63usl7$hqo$7@route1.mdrf.france3.fr> <647jig$igl17@beaker.nit.gwu.edu> Organization: PSINet Newsgroups: comp.lang.ada,comp.lang.c,comp.lang.c++,comp.lang.java.advocacy Date: 1997-11-10T00:00:00+00:00 List-Id: ckann@seas.gwu.edu (Charles W. Kann) writes: > because Ada made the decision that there is never a reason to use > multiple inheritence, Actually, all that was decided was there was no reasonably agreed upon definition of how MI works in all the various OOLs that have it. This led to a decision to provide building blocks to allow the programmer to build whatever version he thought was "correct". Personally, I think MI is a complete goof wrt any modeling effort and "should" be avoided if at all possible. In some implementation vehicles you can't avoid it as it is the only multi-view combinator you have. > I have never been able to figure out a way to write general purpose > programs which use an interface like construct. Such as? By far the most common use of MI is as a kludge to implement mixin behavior. You get this cleanly and simply in Ada95 with SI and generic mixins. > I would love to hear if someone has (and Generics don't count. They Yes, of course. Please feel free to give a case where MI as implemented in C++ (from the NG list I assume you think C++ is it as Java does not have MI either) is really necessary. If you want something that is really useful, you might better think along the lines of multiple dispatch and generic functions ala' CLOS. > are backwards and non-dynamic. And neither does the stupid "alias > type" field in a record which is advocated by AdaMagic. Talk about > a KLUDGE, it was never even checked when I used it). This is really a _view_ capability. IMO, views are far more expressive and consistent than MI. You can say that the mechanism provided for this is "nutsy boltsy", but it is not a kludge per se. Shrug. > Many researchers believe that language greatly influences how programmers ... Right. > that if you need to change your best model of your program to match > the language, you will nearly always end up with a less good > program. More or less agree. > That said, I believe you should learn many programming languages and > ways to develop a program so you have many more ways to view a program, > and more tools to use when implementing it. Which is my argument for > teaching Ada, Java, C++, Eiffel, Prolog, and LISP (minimally) in any > real Computer Science curriculum. My only "disagreement" here would be the "minimally" tag on Lisp. While it has problems like anything else, IMO it is by far the most expressive and flexible of all those listed. /Jon -- Jon Anthony Synquiry Technologies, Ltd., Belmont, MA 02178, 617.484.3383 "Nightmares - Ha! The way my life's been going lately, Who'd notice?" -- Londo Mollari