Re: libglade frustration redux



On Sat, 2007-02-17 at 13:18 -0500, Gerald I. Evenden wrote:
LOL

I give up!  I throw in the towel.

Sorry to hear that.  I believe that you could have found GTK programming
very rewarding.  Note that I did not say "libglade" because I think you
had difficulties because you focused on libglade and Glade rather than
GTK+ itself, of which you hadn't really learned.


I am sorry I have bothered y'all but this experience has demonstrated to me 
how one can become completely overwhelmed by the complexity of a system.

Modern GUI programming is very complex.  This is the case whether you
are doing GTK, Qt, Tcl/Tk, or any other modern toolkit.  The theories,
though, thankfully are all similar.  Event-driven programming is
sometimes hard to understand.


Not only is one inundated with a zillion identifiers and terse documentation 
but also magic potions for locating the spartan information.

Google, google, google.  Where would we be without it.  The elixir you
seek.

I have never found a GUI class library yet that is as well documented as
GTK (okay, Trolltech's Qt is maybe better -- if that one suits you, go
for for it.)  I have a feeling you are in for a very rough ride on any
toolkit.  If you think that GTK has a lot of identifiers, you should see
Qt's class library.  Or any of the Sun Java Foundation classes.  Or
Microsoft's .NET.


As for effort, I think I have payed reasonable dues in trying to run down 
information.  What is overwhelming is the fact that the number of paths one 
has to search is large and it is difficult to know which one to follow.  It 
would have helped to have a master index at the top of the documentation 
tree.

Yes some kind of index over all the documents covered at
developer.gnome.org is a good idea.  


A long time ago I did a relatively simple GUI to display cartographic map 
information using the Athena widgets.  I thought they were a little 
complicated but I managed to get the first draft done in a couple of weeks 
and polished the whole thing within a month.  Granted the Athena display was 
a little primative but it did work and did not take 21 days to learn the 
basics (as one book on GTK+ suggests).

Athena was likely considered complicated and powerful in it's time, no
doubt about it.  The breadth and depth of GTK definitely makes it an
order of magnitude more powerful, but more complicated than athena.
However, I still believe that had you put in reasonable effort you would
have got a nice start in GTK.  

The problem is, in my opinion, that you put the cart before the horse.
Rather than *learn* basic GTK (which takes about a day if you already
know C), you dove right into making GUIs with Glade without any
understanding of how this might fit into the GTK framework, and without
any knowledge of the fundamentals of GTK, such as which widgets, events,
signals, and callbacks.  


Since then I stayed with command line projects and simple libraries like gsl, 
etc. where the documentation was fairly complete and any additional 
information was readily available in any halfass math library.

Sounds like you've spent many years developing command-line projects.
Frustrations like you express are quite common among experienced
programmers making the jump from procedural, text-mode programming to
complex, event-driven GUI programming.


One thing that did attract me to this system was glade which nicely handles 
the layout aspects and callback issues.  But it obviously does not go far 
enough.

Glade is of no use if you haven't understood GTK+.  Glade is merely a
tool for developing in GTK, not a GUI system in and of itself.  


I'll give a look at Tcl/Tk but I am not aware of a glade equivalent for that 
system.  Otherwise I will fall back on ncurses.

Seems to me you're hung up on this idea of a glade gui designer.  One of
the beautiful things about Gtk (Qt is similar) is that I can build a
nice GUI in just a few minutes with pure code.  Without understanding
how the GUI is actually constructed, how the widgets interact with each
other, and how to interact with the widgets, I don't see how you would
have succeeded with Glade and libglade.  I'm not saying you should build
your GUI's with code all the time; just that that provides an foundation
that would have allowed you to make more progress than you did.

If ncurses is sufficient for your purposes, then I think this is where
you should go.  But choose whatever toolkit fits your purpose and that
you find understandable.  Whatever is most useful for you.

If you choose to revisit GTK, I am willing to answer any specific
questions you have about some part of GTK+.  I am not an expert, but I
have coded several simple GTK apps.  Lately I use python rather than C,
but the API is the same.  I also have had some experience in Tcl/Tk
(enough to hate it), and have written major app using Qt.


Again, thanks for your time and comments.

Sorry to prolong this rather circular thread.

Michael





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