Yahoo! Widgets (JavaScript) - do we have a anything like this?

Dear Glenn,

Fox is a GUI toolkit that can run on Windows, Linux, OSX.
There are Ruby bindings FXRuby for it.
Just yesterday,a new version of foxGUIb, a very nice helper for building
GUIs with all
sorts of widgets was released.
(I had a segmentation fault using it on Cygwin/WindowsXP, though,
but that seems unrelated to foxGUIb, since it doesn't
occur under Redhat)..
I don't know about Javascript implementations, but that
will surely not be a problem given Ruby's universal fame as a
web-development language ....

Best regards,

Axel

Dňa Štvrtok 09 Február 2006 10:32 Nuralanur@aol.com napísal:

Dear Glenn,

Fox is a GUI toolkit that can run on Windows, Linux, OSX.
There are Ruby bindings FXRuby for it.
Just yesterday,a new version of foxGUIb, a very nice helper for building
GUIs with all
sorts of widgets was released.
(I had a segmentation fault using it on Cygwin/WindowsXP, though,
but that seems unrelated to foxGUIb, since it doesn't
occur under Redhat)..
I don't know about Javascript implementations, but that
will surely not be a problem given Ruby's universal fame as a
web-development language ....

Best regards,

Axel

I believe Glenn called for something that lets him do desktop applets, not
standard GUI. Can you make something like completely borderless windows with
non-rectangular shapes in FOX?

<insert random religious rant against synthetic GUIs from a recent KDE whore

David Vallner

I believe Glenn called for something that lets him do desktop applets, not
standard GUI. Can you make something like completely borderless windows
with non-rectangular shapes in FOX?

<insert random religious rant against synthetic GUIs from a recent KDE
whore here>

David Vallner

A standard GUI toolkit could be used to create the widgets, using the
borderless attribute to the windows. However, FOX is not a good candidate
because it isn't pretty. There is Qt, Tk(with tile
http://tktable.sourceforge.net/tile/\), GTK(not pretty on mac). Best stick
with what you're writing for depending on the target: Windows, GNOME, or KDE
environments.

Tsume

Quoting tsumeruby@tsumelabs.com:

> I believe Glenn called for something that lets him do desktop applets, not
> standard GUI. Can you make something like completely borderless windows
> with non-rectangular shapes in FOX?
>
> <insert random religious rant against synthetic GUIs from a recent KDE
> whore here>
>
> David Vallner

A standard GUI toolkit could be used to create the widgets, using the
borderless attribute to the windows. However, FOX is not a good candidate
because it isn't pretty. There is Qt, Tk(with tile
http://tktable.sourceforge.net/tile/\), GTK(not pretty on mac). Best stick
with what you're writing for depending on the target: Windows, GNOME, or KDE

environments.

Tsume

Ah well, here it comes... That is very, very true. Cross-platform GUIs are IMO
a
myth, since the widgets are only the least of it.

A Windows application will look completely out of place in KDE, and vice versa.
E.g. the Windows convention is to use labels next to toolbar buttons, GNOME
uses relatively large icons with labels below them, KDE by default doesn't have
labels next to toolbar items, Mac has very few very large icons on toolbars.
Putting the application menu bar on the top of the screen is the default on
Mac, a somewhat popular setting in KDE, unheard of in Windows. (I personally
feel mad whenever I use a non-KDE app that has the menu bar inside the window.)
Mac apps are likely not to make heavy use of context menus because of the
tradition of one-button mice, and instead use drag-and-drop for all sorts of
things that would look plain weird to a Windows user. And then there's KDE
letting you customize half every aspect of window behaviour and appearance.
Single click vs. double click for activation. And the list goes on and on and
on ad infinitum.

Most applications have their official specific GUI design guidelines which are
more or less followed by the developers targeting that platform - I expect the
Windows ones being by and large rather ignored. If you want to make a truly
cross-platform application, you need a toolkit that provides complete
integration into the targetted environments, and you still need to spend time
tweaking the frontends to look and feel like KDE on KDE, like GNOME on GNOME,
etc.

You can guess why Yahoo! Widgets don't have a Linux version. I dare claim it's
at least in part because all the major, and a lot of the minor Linux desktop
environments already have support for desktop applets (gDesklets, Kicker
applets, SuperKaramba), and the interest in using the Yahoo API would be
negligible.

You can make a GUI app that compiles and runs on most major platforms, but odds
are it will look completely out of place on the ones the developer doesn't use
himself.

That said, don't take this as an anti-FOX rant, I haven't worked with it any,
but if you're starting out on GUI programming, you should possibly ignore the
cross-platform issue and use a toolkit that is easy to use, learn, and Just
Works - I recommend Swing to people that ask me about Java GUIs for the same
reasons, even if SWT tends to look better. If FOX does deliver these, it's in
my opinion a very good toolkit to bite your GUI teeth on, and with native
theming support for WinXP and upwards in the works, it can also end up being a
very good toolkit for Windows development. Just don't get fooled by the
cross-platform buzzword, because that's just the tip of the proverbial
iceberg.

David Vallner

Have you even used Tk/Tile?

Tsume

···

On Friday 10 February 2006 01:59 am, david@vallner.net wrote:

Quoting tsumeruby@tsumelabs.com:
> > I believe Glenn called for something that lets him do desktop applets,
> > not standard GUI. Can you make something like completely borderless
> > windows with non-rectangular shapes in FOX?
> >
> > <insert random religious rant against synthetic GUIs from a recent KDE
> > whore here>
> >
> > David Vallner
>
> A standard GUI toolkit could be used to create the widgets, using the
> borderless attribute to the windows. However, FOX is not a good candidate
> because it isn't pretty. There is Qt, Tk(with tile
> http://tktable.sourceforge.net/tile/\), GTK(not pretty on mac). Best stick
> with what you're writing for depending on the target: Windows, GNOME, or
> KDE
>
> environments.
>
> Tsume

Ah well, here it comes... That is very, very true. Cross-platform GUIs are
IMO a
myth, since the widgets are only the least of it.

A Windows application will look completely out of place in KDE, and vice
versa. E.g. the Windows convention is to use labels next to toolbar
buttons, GNOME uses relatively large icons with labels below them, KDE by
default doesn't have labels next to toolbar items, Mac has very few very
large icons on toolbars. Putting the application menu bar on the top of the
screen is the default on Mac, a somewhat popular setting in KDE, unheard of
in Windows. (I personally feel mad whenever I use a non-KDE app that has
the menu bar inside the window.) Mac apps are likely not to make heavy use
of context menus because of the tradition of one-button mice, and instead
use drag-and-drop for all sorts of things that would look plain weird to a
Windows user. And then there's KDE letting you customize half every aspect
of window behaviour and appearance. Single click vs. double click for
activation. And the list goes on and on and on ad infinitum.

Most applications have their official specific GUI design guidelines which
are more or less followed by the developers targeting that platform - I
expect the Windows ones being by and large rather ignored. If you want to
make a truly cross-platform application, you need a toolkit that provides
complete integration into the targetted environments, and you still need to
spend time tweaking the frontends to look and feel like KDE on KDE, like
GNOME on GNOME, etc.

You can guess why Yahoo! Widgets don't have a Linux version. I dare claim
it's at least in part because all the major, and a lot of the minor Linux
desktop environments already have support for desktop applets (gDesklets,
Kicker applets, SuperKaramba), and the interest in using the Yahoo API
would be negligible.

You can make a GUI app that compiles and runs on most major platforms, but
odds are it will look completely out of place on the ones the developer
doesn't use himself.

That said, don't take this as an anti-FOX rant, I haven't worked with it
any, but if you're starting out on GUI programming, you should possibly
ignore the cross-platform issue and use a toolkit that is easy to use,
learn, and Just Works - I recommend Swing to people that ask me about Java
GUIs for the same reasons, even if SWT tends to look better. If FOX does
deliver these, it's in my opinion a very good toolkit to bite your GUI
teeth on, and with native theming support for WinXP and upwards in the
works, it can also end up being a very good toolkit for Windows
development. Just don't get fooled by the cross-platform buzzword, because
that's just the tip of the proverbial iceberg.

David Vallner

I had a look at Tile, and it looks promising too. But I tried doing some
Ruby/Tk, and didn't quite "click" with the toolkit. There's also the fact
that Tcl/Tk's white performance elephant in the middle of the room is even
heavier than Ruby's - I don't know whether the Ruby binding binds "directly"
to the Tk code or goes through an embedded Tcl interpreter it controls.

Personally, I'm pondering giving the GTK or QT bindings a look, although I
don't know what state the latter is in, or if there are more extensive KDE
bindings available. The GTK binding should be pretty usable from what I've
heard. I'm also waiting for wxRuby 2 to go final, since I actually have
experience with the toolkit, and had some better experience using it on my
Windows box than GTK. Mind you, all of this was a looong time ago, I haven't
been doing any GUI programming since over a year, and even then it was from
necessity Windows Forms of .NET 1.1 infamy *shudder*.

David Vallner

Dňa Štvrtok 09 Február 2006 18:26 tsumeruby@tsumelabs.com napísal:

···

On Friday 10 February 2006 01:59 am, david@vallner.net wrote:
Have you even used Tk/Tile?

Tsume

I had a look at Tile, and it looks promising too. But I tried doing some
Ruby/Tk, and didn't quite "click" with the toolkit. There's also the fact
that Tcl/Tk's white performance elephant in the middle of the room is even
heavier than Ruby's - I don't know whether the Ruby binding binds
"directly" to the Tk code or goes through an embedded Tcl interpreter it
controls.

Personally, I'm pondering giving the GTK or QT bindings a look, although I
don't know what state the latter is in, or if there are more extensive KDE
bindings available. The GTK binding should be pretty usable from what I've
heard. I'm also waiting for wxRuby 2 to go final, since I actually have
experience with the toolkit, and had some better experience using it on my

Well, I'll reply in the middle of the paragraph. I usually think about ruby
bindings; how much they are complete and are they stable the bindings are
compared to others. Qt might be the best toolkit to use, however the ruby
bindings are not frozen yet, hence I don't want to use it until rdale stops
modifying how the toolkit works. He just made the signal/slots similar to how
rails works. GTK is very stable and one of the two top best at stability. Tk
is the most stable of course, being around longer since all of the other
toolkits, and now in 1.8.4 having the method to switch all the tk methods to
use tile so the developer doesn't have to call on tile widgets. FOX is okay,
but when you don't call methods right, you end up with crappy code because
you can't find which method you called wrong when you have a 5000 line
script. I don't write line by line, execute as I type each out like a new
programmer, I write half complete programs before I start testing.

Windows box than GTK. Mind you, all of this was a looong time ago, I
haven't been doing any GUI programming since over a year, and even then it
was from necessity Windows Forms of .NET 1.1 infamy *shudder*.

For the finale!
*Laughs*

···

On Friday 10 February 2006 04:54 am, David Vallner wrote:

David Vallner

Dňa Štvrtok 09 Február 2006 18:26 tsumeruby@tsumelabs.com napísal:
> On Friday 10 February 2006 01:59 am, david@vallner.net wrote:
> Have you even used Tk/Tile?
>
> Tsume

Dňa Piatok 10 Február 2006 00:34 tsumeruby@tsumelabs.com napísal:

> Windows box than GTK. Mind you, all of this was a looong time ago, I
> haven't been doing any GUI programming since over a year, and even then
> it was from necessity Windows Forms of .NET 1.1 infamy *shudder*.

For the finale!
*Laughs*

*cough* To add insult to injury, this was after experimenting with the
insanely comfortable and well thought out Swing and SWT over on the Java
side. I had to use .NET because it actually ran out of the box on college
machines, and there was a libpcap binding available. I can't start to count
the hours I spent pouring over the .NET docs to verify that no, there are
absolutely NO layout managers or anything like that except the goddamn
useless docking and anchoring. Or not being able to bind the contents of a
List widget to a collection and then automagically refresh it short of
learning ADO. Etc.

What didn't help was the local "if we're not coding it, it's not worth coding"
MS fandom, that answered all of my questions about how the bloody hell do you
post events across threads sanely with a "Huh? Why don't you code everything
in automatically generated GUI event handlers like every Form Designer weenie
does?". I stopped asking after the third time I failed explaining to them
that all the input to the application comes from two network interfaces
completely asynchronously and there are no GUI events at all.

David Vallner

Dňa Piatok 10 Február 2006 00:34 tsumeruby@tsumelabs.com napísal:

Well, I'll reply in the middle of the paragraph. I usually think about ruby
bindings; how much they are complete and are they stable the bindings are
compared to others. Qt might be the best toolkit to use, however the ruby
bindings are not frozen yet, hence I don't want to use it until rdale stops
modifying how the toolkit works. He just made the signal/slots similar to
how rails works. GTK is very stable and one of the two top best at
stability. Tk is the most stable of course, being around longer since all
of the other toolkits, and now in 1.8.4 having the method to switch all the
tk methods to use tile so the developer doesn't have to call on tile
widgets. FOX is okay, but when you don't call methods right, you end up
with crappy code because you can't find which method you called wrong when
you have a 5000 line script. I don't write line by line, execute as I type
each out like a new programmer, I write half complete programs before I
start testing.

Hmm, how "rubyish" are the Qt and GTK bindings anyway? I have personally a
HUGE pet peeve against ever writing using for example #set_foo in a ruby
binding instead of #foo= (wxRuby); goes for camelCase in method names, or
Hungarian notation in class names instead of using module namespaces (FOX).
Even if there's probably very good reasons for both of those, and if not,
possibly very unreasonable to change them now, my mind still has problems
switching between naming conventions mid-script.

David Vallner

Dňa Piatok 10 Február 2006 00:34 tsumeruby@tsumelabs.com napísal:
> Well, I'll reply in the middle of the paragraph. I usually think about
> ruby bindings; how much they are complete and are they stable the
> bindings are compared to others. Qt might be the best toolkit to use,
> however the ruby bindings are not frozen yet, hence I don't want to use
> it until rdale stops modifying how the toolkit works. He just made the
> signal/slots similar to how rails works. GTK is very stable and one of
> the two top best at stability. Tk is the most stable of course, being
> around longer since all of the other toolkits, and now in 1.8.4 having
> the method to switch all the tk methods to use tile so the developer
> doesn't have to call on tile widgets. FOX is okay, but when you don't
> call methods right, you end up with crappy code because you can't find
> which method you called wrong when you have a 5000 line script. I don't
> write line by line, execute as I type each out like a new programmer, I
> write half complete programs before I start testing.

Hmm, how "rubyish" are the Qt and GTK bindings anyway? I have personally a
HUGE pet peeve against ever writing using for example #set_foo in a ruby
binding instead of #foo= (wxRuby);

That particular thing is solved for Qt4 -
http://www.kdedevelopers.org/node/1686

goes for camelCase in method names, or
Hungarian notation in class names instead of using module namespaces (FOX).
Even if there's probably very good reasons for both of those, and if not,
possibly very unreasonable to change them now, my mind still has problems
switching between naming conventions mid-script.

But the camelCase is still there.

Mark

···

On Friday 10 February 2006 01:52, David Vallner wrote:

David Vallner

FOX uses Hungarian notation in its class names?

···

On 2/9/06, David Vallner <david@vallner.net> wrote:

Hmm, how "rubyish" are the Qt and GTK bindings anyway? I have personally a
HUGE pet peeve against ever writing using for example #set_foo in a ruby
binding instead of #foo= (wxRuby); goes for camelCase in method names, or
Hungarian notation in class names instead of using module namespaces (FOX).

> Dňa Piatok 10 Február 2006 00:34 tsumeruby@tsumelabs.com napísal:
> > Well, I'll reply in the middle of the paragraph. I usually think about
> > ruby bindings; how much they are complete and are they stable the
> > bindings are compared to others. Qt might be the best toolkit to use,
> > however the ruby bindings are not frozen yet, hence I don't want to use
> > it until rdale stops modifying how the toolkit works. He just made the
> > signal/slots similar to how rails works. GTK is very stable and one of
> > the two top best at stability. Tk is the most stable of course, being
> > around longer since all of the other toolkits, and now in 1.8.4 having
> > the method to switch all the tk methods to use tile so the developer
> > doesn't have to call on tile widgets. FOX is okay, but when you don't
> > call methods right, you end up with crappy code because you can't find
> > which method you called wrong when you have a 5000 line script. I don't
> > write line by line, execute as I type each out like a new programmer, I
> > write half complete programs before I start testing.
>
> Hmm, how "rubyish" are the Qt and GTK bindings anyway? I have personally
> a HUGE pet peeve against ever writing using for example #set_foo in a
> ruby binding instead of #foo= (wxRuby);

That particular thing is solved for Qt4 -
http://www.kdedevelopers.org/node/1686

> goes for camelCase in method names, or
> Hungarian notation in class names instead of using module namespaces
> (FOX). Even if there's probably very good reasons for both of those, and
> if not, possibly very unreasonable to change them now, my mind still has
> problems switching between naming conventions mid-script.

But the camelCase is still there.

I think I was wrong. I haven't tried it out, but the README from the latest
release (and perhaps earlier, not sure) suggests that you can use underscores
or camelCase.

Cool.

Mark

···

On Friday 10 February 2006 10:04, Mark Somerville wrote:

On Friday 10 February 2006 01:52, David Vallner wrote:

Mark

> David Vallner

Dňa Piatok 10 Február 2006 16:44 Lyle Johnson napísal:

···

On 2/9/06, David Vallner <david@vallner.net> wrote:
> Hmm, how "rubyish" are the Qt and GTK bindings anyway? I have personally
> a HUGE pet peeve against ever writing using for example #set_foo in a
> ruby binding instead of #foo= (wxRuby); goes for camelCase in method
> names, or Hungarian notation in class names instead of using module
> namespaces (FOX).

FOX uses Hungarian notation in its class names?

Well, sort of. The fact that all the classes start with FX, -and- are in a FOX
namespace too if I recall correctly. Seems a bit overkill to me. Just an
aesthetic quibble basically, anyone may feel free to disagree with me. I
suppose there's more advantages to preserving consistency with the C++
version,

David Vallner

Dňa Piatok 10 Február 2006 12:44 Mark Somerville napísal:

···

On Friday 10 February 2006 10:04, Mark Somerville wrote:
> On Friday 10 February 2006 01:52, David Vallner wrote:
> > Hmm, how "rubyish" are the Qt and GTK bindings anyway? I have
> > personally a HUGE pet peeve against ever writing using for example
> > #set_foo in a ruby binding instead of #foo= (wxRuby);
>
> That particular thing is solved for Qt4 -
> http://www.kdedevelopers.org/node/1686
>
> > goes for camelCase in method names, or
> > Hungarian notation in class names instead of using module namespaces
> > (FOX). Even if there's probably very good reasons for both of those,
> > and if not, possibly very unreasonable to change them now, my mind
> > still has problems switching between naming conventions mid-script.
>
> But the camelCase is still there.

I think I was wrong. I haven't tried it out, but the README from the latest
release (and perhaps earlier, not sure) suggests that you can use
underscores or camelCase.

Cool.

Utterly. It seems there's more people around with pet peeves like me. (Run for
the hills! Doom is upon us!)

David Vallner

The possibility to use either has been in qtruby for a long time.

Tsume

···

On Friday 10 February 2006 08:44 pm, Mark Somerville wrote:

> But the camelCase is still there.

I think I was wrong. I haven't tried it out, but the README from the latest
release (and perhaps earlier, not sure) suggests that you can use
underscores or camelCase.

Cool.

Mark