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: Brian Rogoff Subject: Re: Naming of Tagged Types and Associated Packages Date: 1998/08/07 Message-ID: #1/1 X-Deja-AN: 379015528 References: <6qfp80$p0u$1@nnrp1.dejanews.com> Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: 902536780 12780 bpr 206.184.139.132 Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1998-08-07T00:00:00+00:00 List-Id: Thanks for bringing this back to c.l.a, Patrick. I was loathe to respond to this in c.l.e., as I remember several language wars starting from c.l.ada/eiffel crossposting, and I just don't care for them. On Fri, 7 Aug 1998 doylep@ecf.toronto.edu wrote: > Brian Rogoff wrote: > > [...] that allows you to > > use the same names for types and variables. I find that very ugly, but I'm > > sure if I used Eiffel long enough my abhorence would diminish. should be "abhorrence", sorry. > > I think you would, for two reasons: My main reason was that I'll get used to anything given time, including C++, Perl, pro-wrestling, Taco Bell, ... > 1. Nothing's stopping you from making yourself use different names for > everything. True, but I can't stop other programmers from doing it, and I suspect from these postings that this may be a common practice in Eiffel. Overall, I think this is a fairly minor nit to pick, but then we wouldn't be programmers if we didn't like to argue over minor nits, would we? > 2. It allows you to avoid contrivances by permitting things like this: > > class CAR > > feature > steering_wheel : STEERING_WHEEL > > end > > What else are you going to call the steering wheel? A > direction_control_device? I think any other name would be contrived. Call the steering wheel Steering_Wheel, and call the type something like Steering_Wheel_Type, or Steering_Wheel_T. Personally, I like type names and variable names to be lexically distinguished, so the EuLisp/Dylan convention, which would be to name it something like , would be my choice if I could do it all myself, but I don't think the _Type convention is bad at all, and its used widely in my Ada reference of choice (Ada as a Second Language). If you want to talk about having to create contrived names, be careful, Eiffel doesn't have overloading, which is far worse IMO. Apparently the Sather designers agreed, when they decided to "fix" Eiffel, they added overloading. Other languages, like OCaml, do away with most of the need to name types altogether, so the antiredundantists should consider such languages before disparaging the Ada way in deference to Eiffel way. pragma Rant(On); 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. I like Eiffel's assertion mechanisms (though I'm not sure they belong in the language or would be better left as a tool) but I think its type system is hopelessly broken, it *requires* whole-program analysis due to covariance; bye-bye separate compilation! OTOH, despite the fact that Ada has numerous annoying flaws and misfeatures, I find the overall language design quite sound. It supports the OO style well, but doesn't enforce it, and allows you not to use it at all if it isn't what you want. Obviously, people are free to have different opinions, and I wouldn't want to start another Eiffel/Ada flamefest, so I generally avoid posting my opinion on the Eiffel ng. pragma Rant(Off); -- Brian