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
Lines: 47

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