As anyone can tell by looking at the topics of my recent posts, I’m
having trouble picking a Ruby GUI to use for a project. Here are some
of the toolkits I’m considering and the pros and cons of each. My
project, by the way, is a simple open-source, instant messaging client
that would have to work on Windows and NIX systems.
Tk
pros: comes with Ruby; pretty much everywhere; powerful TkText widget
cons: messy, mostly undocumented API; unconventional appearance;
requires tcl; no tree control; it’s Tk
FOX
pros: consistent and attractive appearance; very OO
cons: no substitute for TkText - FXScintilla might do the trick, but
it’s API is a lot more complicated than TkText; somewhat C+±ish API;
FxTreeList doesn’t allow setting styles for individual items
Qt
pros: supposed to be really nice
cons: costs money on Win32 - out of the question
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires large download on
Win32 machines; X-ish interface
Wx
pros: well-designed Rubyish API; supports changing tree item styles;
seems pretty stable for a young project; native widgets
cons: brand new - could have problems; on Linux, requires a large
download (wxGTK) in order to work (6MB)
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
Also, antialiased fonts would be extremely nice, but no toolkit seems
to support them, except Gtk (right?) which I can’t use because of the
large Win32 dependencies.
The FXScintilla Widget is a beast (like the docs say), but I’m as beginner
of a prgrammer as you can get (I know that’s not gramatically correct) - and
I was able to figure it out.
-Rich
···
----- Original Message -----
From: “Bill Atkins” dejaspam@batkins.com
Newsgroups: comp.lang.ruby
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Saturday, May 15, 2004 7:18 AM
Subject: Need Help Selecting a GUI
As anyone can tell by looking at the topics of my recent posts, I’m
having trouble picking a Ruby GUI to use for a project. Here are some
of the toolkits I’m considering and the pros and cons of each. My
project, by the way, is a simple open-source, instant messaging client
that would have to work on Windows and NIX systems.
Tk
pros: comes with Ruby; pretty much everywhere; powerful TkText widget
cons: messy, mostly undocumented API; unconventional appearance;
requires tcl; no tree control; it’s Tk
FOX
pros: consistent and attractive appearance; very OO
cons: no substitute for TkText - FXScintilla might do the trick, but
it’s API is a lot more complicated than TkText; somewhat C+±ish API;
FxTreeList doesn’t allow setting styles for individual items
Qt
pros: supposed to be really nice
cons: costs money on Win32 - out of the question
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires large download on
Win32 machines; X-ish interface
Wx
pros: well-designed Rubyish API; supports changing tree item styles;
seems pretty stable for a young project; native widgets
cons: brand new - could have problems; on Linux, requires a large
download (wxGTK) in order to work (6MB)
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
Also, antialiased fonts would be extremely nice, but no toolkit seems
to support them, except Gtk (right?) which I can’t use because of the
large Win32 dependencies.
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
Also, antialiased fonts would be extremely nice, but no toolkit seems
to support them, except Gtk (right?) which I can’t use because of the
large Win32 dependencies.
Any thoughts on these?
I have comed to pretty much the same conclusions… I am seriously
considering making multiple frontends for my aeditor project.
So on unix it supports: gtk or qt… (havn’t decided 100% yet)
on windows: windows native widget set
on mac: cocoa?
Lots of hard work, in order to get antialiasing and i18n. It seems
as XUL+ruby is still too far away.
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires
large download on
Win32 machines; X-ish interface
“supposed to be unstable on Win32”
Maybe. But I used to run my own Ruby-GNOME2 IRC client
on Windows just fine. Once in a while you may find a
bug (not really related to Windows), but if it’s
reproducible, it’s fixable
“requires large download on Win32 machines”
That’s the major drawback. I haven’t tested something
to shrink the package size yet.
“X-ish interface”
The Wimp engine does a good job at making your app
have a native appearance.
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
I once started a project that used nothing more than Ruby/DL, and drew
its own widgets onto whatever windowing API was available (X, Gtk,
Win32, etc.). Didn’t get very far, but I’m beginning to realize that
there may be a lot of value in a cross-platform “pure Ruby” windowing
toolkit.
Does anyone else see any value there? Has anyone else ever attempted this?
As anyone can tell by looking at the topics of my recent posts, I’m
having trouble picking a Ruby GUI to use for a project. Here are some
of the toolkits I’m considering and the pros and cons of each. My
project, by the way, is a simple open-source, instant messaging client
that would have to work on Windows and NIX systems.
Tk
pros: comes with Ruby; pretty much everywhere; powerful TkText widget
cons: messy, mostly undocumented API; unconventional appearance;
requires tcl; no tree control; it’s Tk
FOX
pros: consistent and attractive appearance; very OO
cons: no substitute for TkText - FXScintilla might do the trick, but
it’s API is a lot more complicated than TkText; somewhat C+±ish API;
FxTreeList doesn’t allow setting styles for individual items
Qt
pros: supposed to be really nice
cons: costs money on Win32 - out of the question
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires large download on
Win32 machines; X-ish interface
Wx
pros: well-designed Rubyish API; supports changing tree item styles;
seems pretty stable for a young project; native widgets
cons: brand new - could have problems; on Linux, requires a large
download (wxGTK) in order to work (6MB)
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
Also, antialiased fonts would be extremely nice, but no toolkit seems
to support them, except Gtk (right?) which I can’t use because of the
large Win32 dependencies.
Any thoughts on these?
FLTK? The FLTK shared lib and ruby bindings are smaller than 1MB.
Problem is that it’s still not released ‘into the wild’ (at least the
source code for the bindings, that is). On Monday I’ll try to remember to
see if there has been any progress on that front.
webrick + native browser
you’re program spawns a webserver (fork or popen) and then spanws a browser
pointing at it. the webrick server IS the ui.
pros: works on *nix, windoze, mac. familiar ui. extremely quick to code.
cons: limiting ui (but what do you really need for an im client?)
just something to consider - i had managed to make this work in 30 lines of
code or so a while back - now i can’t seem to find it, but it’s pretty
straightword:
url = start_server
require ‘rbconfig’
case platform
when /*nix/
start_nix_client url
when /windoze/
start_windoze_client url
when /mac/
start_mac_client url
end
-a
···
On 15 May 2004, Bill Atkins wrote:
As anyone can tell by looking at the topics of my recent posts, I’m
having trouble picking a Ruby GUI to use for a project. Here are some
of the toolkits I’m considering and the pros and cons of each. My
project, by the way, is a simple open-source, instant messaging client
that would have to work on Windows and NIX systems.
Tk
pros: comes with Ruby; pretty much everywhere; powerful TkText widget
cons: messy, mostly undocumented API; unconventional appearance;
requires tcl; no tree control; it’s Tk
FOX
pros: consistent and attractive appearance; very OO
cons: no substitute for TkText - FXScintilla might do the trick, but
it’s API is a lot more complicated than TkText; somewhat C+±ish API;
FxTreeList doesn’t allow setting styles for individual items
Qt
pros: supposed to be really nice
cons: costs money on Win32 - out of the question
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires large download on
Win32 machines; X-ish interface
Wx
pros: well-designed Rubyish API; supports changing tree item styles;
seems pretty stable for a young project; native widgets
cons: brand new - could have problems; on Linux, requires a large
download (wxGTK) in order to work (6MB)
–
EMAIL :: Ara [dot] T [dot] Howard [at] noaa [dot] gov
PHONE :: 303.497.6469
ADDRESS :: E/GC2 325 Broadway, Boulder, CO 80305-3328
URL :: Solar-Terrestrial Physics Data | NCEI
TRY :: for l in ruby perl;do $l -e “print "\x3a\x2d\x29\x0a"”;done
===============================================================================
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
I once started a project that used nothing more than Ruby/DL, and drew
its own widgets onto whatever windowing API was available (X, Gtk,
Win32, etc.). Didn’t get very far, but I’m beginning to realize that
there may be a lot of value in a cross-platform “pure Ruby” windowing
toolkit.
Does anyone else see any value there? Has anyone else ever attempted
this?
One of my students has done a prototype for a pure-Ruby GUI framework
using OpenGL as the back-end. She is finishing up now and the report
should be available in 2-3 weeks. Even though she hasn’t focused on it
being pretty I think it’s a “doable” approach and gives lots of freedom.
Based on her prototype I’d like to get a releasable version 0.1
together, see if there is some interest in it and if it can evolve from
there. I have early vacation this year but when I’m back (late June)
I’ll try to get a tarball together if there is any interest.
First, I was going to reply from the original message of this thread that
was sent by ‘Bill Atkins’. My Outlook Express was saying ‘A program is
trying to access e-mail addresses you have stored in Outlook’ !!
Couple of days back, I posted a similar message.
I liked Fox a lot. Its very much Object Oriented.
But I was surprised this morning when I went to the official website of Fox http://www.fox-toolkit.org and found ‘Coming Soon’ By godaddy !!!
Mohammad
“Good artist borrow idea from others and great artist steal it !”
···
----- Original Message -----
From: “Rich” rich@lithinos.com
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Saturday, May 15, 2004 10:06 AM
Subject: Re: Need Help Selecting a GUI
The FXScintilla Widget is a beast (like the docs say), but I’m as beginner
of a prgrammer as you can get (I know that’s not gramatically correct) -
and
I was able to figure it out.
-Rich
----- Original Message -----
From: “Bill Atkins” dejaspam@batkins.com
Newsgroups: comp.lang.ruby
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Saturday, May 15, 2004 7:18 AM
Subject: Need Help Selecting a GUI
As anyone can tell by looking at the topics of my recent posts, I’m
having trouble picking a Ruby GUI to use for a project. Here are some
of the toolkits I’m considering and the pros and cons of each. My
project, by the way, is a simple open-source, instant messaging client
that would have to work on Windows and NIX systems.
Tk
pros: comes with Ruby; pretty much everywhere; powerful TkText widget
cons: messy, mostly undocumented API; unconventional appearance;
requires tcl; no tree control; it’s Tk
FOX
pros: consistent and attractive appearance; very OO
cons: no substitute for TkText - FXScintilla might do the trick, but
it’s API is a lot more complicated than TkText; somewhat C+±ish API;
FxTreeList doesn’t allow setting styles for individual items
Qt
pros: supposed to be really nice
cons: costs money on Win32 - out of the question
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires large download on
Win32 machines; X-ish interface
Wx
pros: well-designed Rubyish API; supports changing tree item styles;
seems pretty stable for a young project; native widgets
cons: brand new - could have problems; on Linux, requires a large
download (wxGTK) in order to work (6MB)
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
Also, antialiased fonts would be extremely nice, but no toolkit seems
to support them, except Gtk (right?) which I can’t use because of the
large Win32 dependencies.
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires
large download on
Win32 machines; X-ish interface
“supposed to be unstable on Win32”
Maybe. But I used to run my own Ruby-GNOME2 IRC client
on Windows just fine. Once in a while you may find a
bug (not really related to Windows), but if it’s
reproducible, it’s fixable
GTK is working OK under win32 nowadays, the installation is easy (and
many geeks already have gimp under win32 anyway ;O) ). Some things don’t
work as well as under linux, but you really have to look for them
nowadays (at least from my experience). For instance, I have problems
with drag&drop: only drag&drop of files or folders seem to work when
talking to other applications (which is of course what you want 90% of
the time) [1]. That’s the only win32 specific problem I had with GTK so far.
Otherwise GTK has some policies that can get frustrating (for me at
least). like cancel-ok button order, and double-click for the open/save
file dialog, and i don’t think you can override those (although most
people wouldn’t mind the double-click i guess). GTK also comes with a
set of nice icons that you can use.
finally FOX has quite some limitations, but it’s true that under windows
you can ship a 1.5Mb .exe with FOX and ruby included (but under linux
FOX is rarely installed so there you go…).
Also, maybe you want to investigate printing. FOX doesn’t support it,
maybe GTK only under linux (??) etc.
emmanuel
[1] I wanted to get drops from mozilla or internet explorer of anything
(urls or text) and couldn’t. Otherwise, drops from explorer of files or
folders are OK
One of my students has done a prototype for a pure-Ruby GUI framework
using OpenGL as the back-end. She is finishing up now and the report
should be available in 2-3 weeks. Even though she hasn’t focused on it
being pretty I think it’s a “doable” approach and gives lots of freedom.
Based on her prototype I’d like to get a releasable version 0.1
together, see if there is some interest in it and if it can evolve from
there. I have early vacation this year but when I’m back (late June)
I’ll try to get a tarball together if there is any interest.
I’d be interested in looking at it and I think I may actually have some
time in late June…
I think jeroen is in the process of changing providers or
something…for now, try http://www.fox-toolkit.com.
Jamey
Mohammad Khan wrote:
First, I was going to reply from the original message of this thread that
was sent by ‘Bill Atkins’. My Outlook Express was saying ‘A program is
trying to access e-mail addresses you have stored in Outlook’ !!
Couple of days back, I posted a similar message.
I liked Fox a lot. Its very much Object Oriented.
But I was surprised this morning when I went to the official website of Fox http://www.fox-toolkit.org and found ‘Coming Soon’ By godaddy !!!
Mohammad
“Good artist borrow idea from others and great artist steal it !”
The FXScintilla Widget is a beast (like the docs say), but I’m as beginner
of a prgrammer as you can get (I know that’s not gramatically correct) -
and
I was able to figure it out.
-Rich
From: “Bill Atkins” dejaspam@batkins.com
Newsgroups: comp.lang.ruby
To: “ruby-talk ML” ruby-talk@ruby-lang.org
Sent: Saturday, May 15, 2004 7:18 AM
Subject: Need Help Selecting a GUI
As anyone can tell by looking at the topics of my recent posts, I’m
having trouble picking a Ruby GUI to use for a project. Here are some
of the toolkits I’m considering and the pros and cons of each. My
project, by the way, is a simple open-source, instant messaging client
that would have to work on Windows and NIX systems.
Tk
pros: comes with Ruby; pretty much everywhere; powerful TkText widget
cons: messy, mostly undocumented API; unconventional appearance;
requires tcl; no tree control; it’s Tk
FOX
pros: consistent and attractive appearance; very OO
cons: no substitute for TkText - FXScintilla might do the trick, but
it’s API is a lot more complicated than TkText; somewhat C+±ish API;
FxTreeList doesn’t allow setting styles for individual items
Qt
pros: supposed to be really nice
cons: costs money on Win32 - out of the question
Gtk
pros: plenty of widgets; antialiasing
cons: supposed to be unstable on Win32; requires large download on
Win32 machines; X-ish interface
Wx
pros: well-designed Rubyish API; supports changing tree item styles;
seems pretty stable for a young project; native widgets
cons: brand new - could have problems; on Linux, requires a large
download (wxGTK) in order to work (6MB)
Wx would be my choice except that it requires such a large download on
Linux. I would really prefer that the user download as little as
possible, aside from Ruby itself. Considering that my project’s
source will be under 300K, it seems silly to require large GUI
downloads just to make it work.
Also, antialiased fonts would be extremely nice, but no toolkit seems
to support them, except Gtk (right?) which I can’t use because of the
large Win32 dependencies.
Any thoughts on these?
Bill
Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.
GTK is working OK under win32 nowadays, the installation is easy (and many
geeks already have gimp under win32 anyway ;O) ). Some things don’t work
as well as under linux, but you really have to look for them nowadays
(at least from my experience). For instance, I have problems with
drag&drop: only drag&drop of files or folders seem to work when talking to
other applications (which is of course what you want 90% of the time) [1].
That’s the only win32 specific problem I had with GTK so far.
I’m currently rewriting with Fox an application I started with Gtk, because
I’ve stumpled in a blocking problem with a TreeView (it just crashes ruby
with a segmentation fault when adding items to the tree). The app is quite
complex and so it could probably be a bug in my code messing with Gtk …
but since it crashes that way it is very difficult to debug.
Never had such kind of problems with Fox, and I used it quite a lot on both
Windows and Linux.
GTK is working OK under win32 nowadays, the
installation is easy (and many
geeks already have gimp under win32 anyway ;O) ).
Some things don’t work
as well as under linux, but you really have to
look for them nowadays
(at least from my experience). For instance, I have
problems with
drag&drop: only drag&drop of files or folders seem
to work when talking to
other applications (which is of course what you
want 90% of the time) [1].
That’s the only win32 specific problem I had with
GTK so far.
I’m currently rewriting with Fox an application I
started with Gtk, because
I’ve stumpled in a blocking problem with a TreeView
(it just crashes ruby
with a segmentation fault when adding items to the
tree). The app is quite
complex and so it could probably be a bug in my code
messing with Gtk …
but since it crashes that way it is very difficult
to debug.
Never had such kind of problems with Fox, and I used
it quite a lot on both
Windows and Linux.
I seem to have tracked down the problem to “something”
(that I don’t really know yet) within the pragprog
installation.
I am running a fresh built version of Ruby compiled
with MinGW:
C:\msys\1.0\home\ruby-gnome2\gtk\sample\gtk-demo>ruby
-v
ruby 1.8.2 (2004-05-19) [i386-mingw32]
And a fresh built version of the latest Ruby-GNOME2
CVS version, and the stability problems that I was
having simply disappeared.
You would do me a great favor if you tested it to see
if at least part of the stability problems that you
have been having are solved as well. And I extend this
invitation to anyone that has been having some
Ruby-GNOME2 stability problems on Windows.
Make sure the new Ruby is in the PATH, instead of
the “old”.
4.1) You could do it by renaming the “old” to
something creative as “ruby_old”, and renaming the new
as “ruby”; or
4.2) A bit more difficult to get right. But substitute
in the PATH Env. Var. the Ruby path, so it points to
the “new ruby”.
Open the “Prompt for DOS” by running cmd.exe or command.com or whatever, and try this:
C:>ruby -v
ruby 1.8.2 (2004-05-19) [i386-mingw32]
C:>ruby -e “require ‘gtk2’”
C:>
That’s it. I hope your further tests will be as good
as mine were.
GTK is working OK under win32 nowadays, the
installation is easy (and many
geeks already have gimp under win32 anyway ;O) ).
Some things don’t work
as well as under linux, but you really have to
look for them nowadays
(at least from my experience). For instance, I have
problems with
drag&drop: only drag&drop of files or folders seem
to work when talking to
other applications (which is of course what you
want 90% of the time) [1].
That’s the only win32 specific problem I had with
GTK so far.
I’m currently rewriting with Fox an application I
started with Gtk, because
I’ve stumpled in a blocking problem with a TreeView
(it just crashes ruby
with a segmentation fault when adding items to the
tree). The app is quite
complex and so it could probably be a bug in my code
messing with Gtk …
but since it crashes that way it is very difficult
to debug.
Never had such kind of problems with Fox, and I used
it quite a lot on both
Windows and Linux.
I seem to have tracked down the problem to “something”
(that I don’t really know yet) within the pragprog
installation.
I am running a fresh built version of Ruby compiled
with MinGW:
C:\msys\1.0\home\ruby-gnome2\gtk\sample\gtk-demo>ruby
-v
ruby 1.8.2 (2004-05-19) [i386-mingw32]
And a fresh built version of the latest Ruby-GNOME2
CVS version, and the stability problems that I was
having simply disappeared.
You would do me a great favor if you tested it to see
if at least part of the stability problems that you
have been having are solved as well. And I extend this
invitation to anyone that has been having some
Ruby-GNOME2 stability problems on Windows.
Make sure the new Ruby is in the PATH, instead of
the “old”.
4.1) You could do it by renaming the “old” to
something creative as “ruby_old”, and renaming the new
as “ruby”; or
4.2) A bit more difficult to get right. But substitute
in the PATH Env. Var. the Ruby path, so it points to
the “new ruby”.
Open the “Prompt for DOS” by running cmd.exe or command.com or whatever, and try this:
C:>ruby -v
ruby 1.8.2 (2004-05-19) [i386-mingw32]
C:>ruby -e “require ‘gtk2’”
C:>
That’s it. I hope your further tests will be as good
as mine have been.
You would do me a great favor if you tested it to see
if at least part of the stability problems that you
have been having are solved as well. And I extend this
invitation to anyone that has been having some
Ruby-GNOME2 stability problems on Windows.