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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,63a41ccea0fc803a X-Google-Attributes: gid103376,public From: Matthew Heaney Subject: Re: Naming of Tagged Types and Associated Packages Date: 1998/08/08 Message-ID: #1/1 X-Deja-AN: 379042055 Sender: matt@mheaney.ni.net References: <6qfp80$p0u$1@nnrp1.dejanews.com> NNTP-Posting-Date: Fri, 07 Aug 1998 20:01:26 PDT Newsgroups: comp.lang.ada Date: 1998-08-08T00:00:00+00:00 List-Id: Brian Rogoff writes: > The truth is I don't think I'll use Eiffel again, because I don't think > its a very good language design. I think OO is overrated, and languages > that try to enforce OO as the *only* programming tool are not for me. You sometimes hear Ada refered to as "a 70's language." I sometimes think of Eiffel as "an 80's language," since it forces one to program using a "pure" object-oriented paradigm. What's so great about "pure" object-oriented programming, anyway? Not having done any programming in Eiffel, I'm not going to comment on the design of that language, but I agree that object-oriented programming is only one tool among many that a programmer should have at his disposal. The OO hype left over from the 80's hasn't quite subsided, but the tide is turning. People are finally beginning to realize that using (public) inheritence to compose abstractions creates too many dependencies, which can stymie the growth of a large system in development. Indeed, the debates about the "proper" taxonomy for an inheritence tree are redolent of the debates we had in the 70's about what the "proper" decomposition of functions should be. This is ironic, since the object-oriented paradigm was intended to silence those debates! Creating deep (public) inheritence hierarchies, though typical in "pure OO" languages, is definately not a technique that should be used in Ada95 or C++, where objects have value semantics. Another thread on this list has alluded to the better way, using "closed" abstractions that use inheritence as a private, implementation mechanism.