Received: by 10.66.86.6 with SMTP id l6mr8176975paz.11.1351289043562; Fri, 26 Oct 2012 15:04:03 -0700 (PDT) Received: by 10.68.223.98 with SMTP id qt2mr7818143pbc.20.1351289043547; Fri, 26 Oct 2012 15:04:03 -0700 (PDT) Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed.news.ucla.edu!usenet.stanford.edu!kt20no11676050pbb.1!news-out.google.com!s9ni48504pbb.0!nntp.google.com!kt20no11676044pbb.1!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.java.help Date: Fri, 26 Oct 2012 15:04:03 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=69.28.149.29; posting-account=CP-lKQoAAAAGtB5diOuGlDQk0jIwmH0T NNTP-Posting-Host: 69.28.149.29 References: , <7nel88tb2t3hpmnrke0dke1j46s8tsmoqa@4ax.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0fdfb5b1-04e9-4ed1-8af0-e80c279ee060@googlegroups.com> Subject: Re: Please recommend a book From: Lew Injection-Date: Fri, 26 Oct 2012 22:04:03 +0000 Content-Type: text/plain; charset=ISO-8859-1 Lines: 33 Xref: csiph.com comp.lang.java.help:2186 David Lamb wrote: > It seemed to me his problem was understanding something that depends on > a gazillion imports, not managing the imports themselves. I'm having difficulty how the number of imports impacts the clarity of the code. Imports aren't part of the logic; they simply allow abbreviated names for types and type members. Now if code is hyper-complex and depends on too many other types, that is a structural or architectural problem with the code itself, and not with Java /per se/. But is a "zillion" really above that threshold? How much is the OP's "zillion"? Anyway, the dependency question is easy. If a method needs a capability provided by another module (i.e., class or interface), it depends on that. That's true of every single modular computer language there is, and not unique to Java. Example: If you write a Swing program that uses a 'JPanel' (a type of window widget), then that program depends on 'JPanel'. The imports provide a very simple and compact description of the dependencies, if imports are used. They are optional, after all. But otherwise the FQNs (fully-qualified names) of the constructs provide the same information. The OP seems to be complaining about hard programs, not a hard programming language. Java is really dog-dirty simple as a language. The question of dependencies is one the OP had better master as a programmer generally, because like other fundamental programming skills it's necessary for Java programming, too. -- Lew