This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Projects for beginners
- Subject: Re: Projects for beginners
- From: Andy Walker <jawalker at stl dot quik dot com>
- Date: Thu, 01 Feb 2001 20:39:31 -0600
- CC: gcc at gcc dot gnu dot org
- References: <10102011037.AA05776@vlsi1.ultra.nyu.edu>
- Reply-To: jawalker at mail dot quik dot com
Richard Kenner wrote:
<snip>
> Include files conceptually should be hierarchical. We have the basic
> things that are needed by everybody (which perhaps could all be included by
> one header file, say gcc.h) and then a bynch of other include files that
> are each only needed by some parts of the compiler. These would have the
> rule that they could *only* depend on files in the first set.
>
> Doing things this way is far cleaner and shows the structural dependencies
> in a much clearer fashion.
This triggers a pet peeve of mine. A short comment, then I will abandon this.
It has somehow become intrinsic in the programming craft to insist that some
task would be done so very much better if the practitioners would just [insert
your favorite holy grail here]. Far too many of these pronouncements include,
in the background, predicting the future. This is a problem for me because I
cannot do it. I have met no one that will show me how (maybe it'is a Jazz
thing, a la Louis Armstrong?)
When I have whined about my personal predicament, the pontificators have told
me that if I have the talent, and just put in the time, I might eventually
learn the skill, which they then try to demonstrate to me with a practiced "set
piece."
I have the talent. I have the training. I have put in the time. Open
examinations have shown me time and again that nobody else can do it while I am
watching. (I have noticed that the smarter ones explain that "there just isn't
time" to do it while I watch.)
I refuse to believe it anymore, I won't play the game anymore, and I call it
when I see it.
"The basic things that are needed by everybody" falls in this class of
predicting the future. Most bright programmers can construct a situation where
the needs of two programmers are difficult or impossible to reconcile with one
header. If it were relatively simple to decide what is needed, a tool to do it
would already be part of the C language.
Expending rare and irreplaceable volunteer time by chasing header conflicts is
a shameful waste. Please do not dump the header guards.
As soon as I get done tinkering with hashed switch addressing, I will look at
applying header guards.
'scuzzi for the diatribe.
Andy