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.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!ukma!gatech!gitpyr!tynor From: tynor@pyr.gatech.EDU (Steve Tynor) Newsgroups: comp.lang.ada Subject: Re: Limited Use Clause Message-ID: <6912@pyr.gatech.EDU> Date: 6 Dec 88 19:12:56 GMT References: <8812061626.AA13093@ajpo.sei.cmu.edu> Reply-To: tynor@pyr.UUCP (Steve Tynor) Organization: Georgia Tech Research Institute List-Id: In article <8812061626.AA13093@ajpo.sei.cmu.edu> rracine@AJPO.SEI.CMU.EDU writes: >without any arguments. Why not use the unrestricted 'use'? The only >reason I have heard that can not be refuted is that it makes it hard to tell >where to find things in source code. That argument is not a language issue, >however. It is a Programming Support Environment issue. The compiler >knows where the various procedures are declared. Why can't it give us a >cross-reference listing at the end of each compilation? ... >Saying "Don't use 'use'" tells me a lot about a project. It is not using >a sufficient APSE. It has people who complain about Ada, since they >probably have difficulty reading their code. And they are probably behind >schedule, for similar reasons. > >I hope this generates some discussion. It will from me anyway. I don't know what types of Ada projects you've worked on or how sophisticated your ASPE is, but my experience is based on the Alsys and DEC/ADA compilers and a project involving >60 packages. We adopted a 'no use' policy several months ago due to the unreadability of the code. You say that the argument "is not a language issue, however. It is a Programming Support Environment issue". Why? I thought that one of the objectives of Ada was to define a portable, easily understood language where dependencies are explicit. Why rely on a non-standard ASPE to solve that problem? As you've alluded to, most Ada programming houses do not have access to very sophisticated ASPEs. BTW, my experience with the DEC/SCA is that it is so slow, it is rarely worth the effort. For a simple question of "is this procedure PUSH from package X, Y or Z", it'd much rather be able to answer the question by making explicit use of X.PUSH in the source than requiring the code reader (probably _not_ the author, remember) to "play Mr. Compiler" and figure out which one is getting referenced (a job made all the more difficult with overloading...) So why not give the programmer more control over the "use" clause? Just because I want explicit qualified names for the PUSH procedure, doesn't necessarily mean I need it for "=", or "PUT", or whatever. As it stands, it's all or nothing. Also, for your information, I'm not "one of those people who complain about Ada". I may have specific complaints/suggestions, but I think that, overall, it's a terrific language. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= You can't settle an issue if you keep avoiding the questions... Steve Tynor Georgia Tech Research Institute tynor@gitpyr.gatech.edu