Re: [gnome-love] Things that make you go "What in the world is That?!?"



Awesome, thanks for taking the time to answer all my questions.  I know
I threw a lot at you.

On Tue, 2004-05-25 at 00:16, Ed Mack wrote:
Fair enough.  Are all of these answers to both questions?  If so, then I
have three more questions (I'll explain in a minute why I have so many
questions):
  1) Why would (or why wouldn't) new developers need to know about
     optimizing options of gcc?

It's not essential - which is why I haven't learnt about it. The further
advanced features aren't a necessity for someone beginning in all this,
it's more just of a curiosity that might be useful later on in life

Yep, I agree.  I don't think it belongs in my current tutorial, but I've
thought about writing another one on performance aspects.  Such a
tutorial would be a great place for optimization flags (btw, the basic
lesson there is that almost all the flags are only for special cases,
you should just use -O2 if you want to optimize your code), profiling
tools, etc.  I had only thought about profiling tools at this point, but
if I get around to writing up this other tutorial, then thanks for this
suggestion.  :)

  2) Really?  Most of my makefiles start out like 5 lines long (though
     some slowly grow over time).  I'm curious as to why you don't like
     writing them.  I'm suspecting you're using examples that rely on
     more advanced make features which make them hard to understand and
     remember, but maybe it's just that I've used make for a decade and
     I really don't remember what it's like to be a beginner with that
     tool.  I *really* want to understand the beginner point of view,
     though, as I've already noticed a number of places in my tutorial
     where I assumed to much or misguided new developers into advanced
     details.  I very much want to avoid that.

I don't like them as the syntax I use is just lifted from other files,
and I'm not always sure what can/can't be done - I'm not confident in
there use. Also, I always end up referring to a makefile I made a while
ago to remind me how to do it.. that's my memory's fault :) Mine are
much the same as yours in regards to length

That makes sense.  I have a brief blurb about it and a link to a very
good guide for beginners with this tool on this page of my tutorial:

http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/ch01s03.html

I have a little note to myself in the tutorial about writing some
example Makefiles for others to use, and couple them with my simple
examples.  So, I believe your suggestion is well placed and I'll try to
do that.

  3) You are by no means the only one with a weakness in this area.
     Let me just say that you are definitely in good company.  Again, I
     have a question.  I once believed this was necessary for the
     beginner to learn.  I tried to analyze why I had thought that.  It
     appears that you may have thought the same.  What led you to
     believe that?

I don't need to use it, as I'm surviving without it, but when you see
all major projects making use of the *auto system, you begin to realise
it must be useful to those projects (of course my personal pet projects
are nowhere near the same size of complexity). 

Yeah, again that makes sense.  And yes, the auto* tools are useful.  The
thing is that these tools are designed to make a nearly impossible task
possible, namely of trying to make software portable to every bizarre
platform that exists.  Trying to design tools to do that, you can
imagine, is pretty difficult.  Thus, while these tools have succeeded in
making extreme portability possible, unfortunately the tools are still
(in my opinion) ridiculously complex.

Personally, I think there are two reasons, in addition to the
all-major-projects-use-it reason, that beginners think they need to know
auto* tools: (1) Other documentation (e.g. the GGAD at
http://developer.gnome.org/doc/GGAD/ggad.html) gives them fairly
prominent coverage, and (2) We frequently make the mistake of telling
newbies that they need to compile gnome from CVS *before* starting to do
anything else to develop with gnome--and a lot of issues in working
around compiling from CVS happen to deal with fighting the auto* tools.

I have a little rant about this autotool stuff, and a few other things,
in this section of my tutorial:
http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/ch01.html#dontlearn

I think just knowing what
was going on would make me a happier person, because I don't like
blindly relying on things.

Yes, I believe this is and will continue to be a very common question. 
I've tried to address it, without going into the details of these more
advanced tools...

I really should google up some of this information.

Before you do that, could you take a look at
http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/ch05s02.html
and
http://www.gnome.org/~newren/tutorials/developing-with-gnome/html/ch05s03.html

These are two of the sections of my "What in the world is That?"
chapter, and they deal primarily with the autotools.  The do /not/
explain how to use them, they just give a high level overview of what
the different tools and files are used for.  I'd appreciate any feedback
on whether or not my explanations are clear.



Thanks for your input and time,
Elijah



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]