Lars Christensen wrote:
[]
> > >     @contents = FXHorizontalFrame.new(self,
> > >       LAYOUT_SIDE_TOP|LAYOUT_FILL_X|LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0)
> > >
> > > Yuck! What was that 5th zero about again?
> >
> > Most of the constructor arguments for FOX widgets are *optional* (with
> > reasonable default values). For the case you mentioned (FXHorizontalFrame),
> > only the first argument (the parent container widget) is required:
> >
> >     @contents = FXHorizontalFrame.new(self)
> >
> > If some future version of Ruby supports keyword arguments, the situation
> > will be even better.
> 
> Great! By why keep the arguments if you can do without them. When you use
> them, the expression becomes unreadable. You still won't be able to
> remember with the 5th argument was about. The only exception is the use of
> named arguments (by symbol or string, which is possible with today's
> ruby!):
> 
>       @button = Button.new('Click me', :border => 10);
> 
> This is readable -- "Button.new('Click me', 10)" isn't. Is 10 the border?
> the font size? It becomes a short circuit in my brain rather than a short
> cut.

What I don't understand here is that you seem to criticize FOX for
having extra-arguments in the constructor while at the same time you
recognize that there is a perfectly legitimate way of using those
extra-arguments: @button = Button.new('Click me', :border => 10);

It is not the fault of FOX is someone does the unreadable thing:
Button.new('Click me', 10) instead of the proper way.

I fail to see your point..
-- 
Renaud Hebert
phone: (33) 01 30 77 59 92
mailto:renaud.hebert / alcatel.fr