Re: [Glade-devel] Re: glade code generation



Hi,

(Sorry, if this looks like crossposting, but all CCs look sensible)

I'm speaking up on behalf of glademm, the (separate) C++ code/project generator for glade. And I like the _choice_ to use generated code.

Owen Taylor wrote:
If you generate C code with glade:

 - You get C code which isn't related to how you write code by
   hand. But if you don't know better, you'll copy anyways.
   (Why is this code calling gtk_widget_set_name() and ref'ing
   every widget?)

 - You get the typical code generation problem that once you
   edit it, you risk problems if you generate code again.

 - You get something you can't check into source control reliably.

 - You go to experienced GTK+ programmers for help, and they
   look at you blankly.

I can't speak in favor of the generated C code (I always found the above problems very valid), but for C++ and glademm I found these problems solved. (Except for the fourth point, you need some glademm knowledge to solve glademm problems/bugs, gtkmm only knowledge might help you but is not always sufficient).

The only reason I was ever tempted to use libglade _internally_ as an optional drop in replacement (_transparently_ to any program code!) was it's good gnome widget support. With C++ it should not make any difference to your program code whether the actual widgets are created by libglade(mm) or by gtkmm (generated code).

To support these claims I promise to finish the libglade option in glademm this week: generate your program's skeleton by glademm and use libglade or generated code by choice.

Libglade is a development methology we can support, because it
gets used extensively for real apps. There may be full scale
apps using generated glade code, but certainly not many of them.

I can name a lot of apps using glademm generated code. There _are_ reasons for generated code:

- a single binary is enough, no need to ship .glade and image files seperately, install them to a known location and find them at runtime. - no user can mess up your program's user interface by editing/deleting the .glade/image files (this is clearly a pro and a con!)

Makes sense to me; we had

Don't use glade to generate code, use libglade!

for C I can't disagree, but I would love to have the option to switch between libglade and generated code (statically linked in widgets) without having to change a single line of the program. Since this is feasible with C++, it should be possible for C, too. Perhaps a nice project for a volunteer? (I don't care about C code)

A separation of GUI designer and code generator would benefit glade-[123] IMHO. (IIRC glade-3 does take this road)

The comment about IDE integration is basically that if the source
code editing is integrated with the widget editing, then things can work better:

 - You can click on a widget, and edit its callbacks
 - Source code editing is relatively constrained, because the
   tool you are using to do it knows about the GUI.

I'm all in favor of IDE integration, but personally I don't need it at all. GUI and program code (callbacks) are well separated by glademm (IMHO of course).

   Christof (glademm maintainer)


_______________________________________________
gnome-hackers mailing list
gnome-hackers gnome org
http://mail.gnome.org/mailman/listinfo/gnome-hackers



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