Forum: Ruby Ruby GUI Survey: Results

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
669b7046f02e5dfc4bda4421f1069731?d=identicon&s=25 Alex Fenton (Guest)
on 2009-02-10 03:42
(Received via mailing list)
The results of the survey of Ruby GUI programming carried out at the end
of last year are now available at
http://www.pressure.to/ruby_gui_survey/

== SUMMARY OF FINDINGS

* The survey received a total of 399 responses; 80% of these completed
the whole survey. Respondents were evenly split into those who'd never
done GUI programming in Ruby, those who had in the past but weren't
doing so now, and those who were currently doing so.

* Most of those doing GUI development were working alone, either on
"fun" projects or open-source software. One in three was using GUI
libraries to develop in-house company tools; just under 10% were working
on commercial GUI software.

* The Ruby GUI "scene" remains fragmented: the survey found at least a
dozen separate GUI libraries in current use. The most used toolkits were
Shoes (21%), Ruby-GNOME2 (19%) and wxRuby (16%).

* Of users naming a single preferred toolkit, Ruby-GNOME2 and Shoes were
chosen by 26%, wxRuby by 17% and RubyCocoa 11%; no other toolkit
received more than 10%.

* There are striking differences between Japanese and Euro-American Ruby
users. Among Japanese Ruby developers, Ruby-GNOME2 is the preferred
toolkit of a majority (56%), whereas among Euro-Americans, it lies third
behind Shoes and wxRuby in popularity.

* Preference for one or other of the two leading comprehensive toolkits
(GNOME2 and Wx) is not strongly predicted by the general importance
attached to features of GUI libraries. This suggests their capabilities
and range of potential applications largely overlap.

* The emergence of new Ruby implementations and their associated GUI
options has already had an effect on usage. MacRuby/Cocoa and, to a
lesser degree, JRuby/Swing are well used and well regarded.
MacRuby/Cocoa was the highest rated among all options for how well it
met users' GUI  development requirements.

* Ruby-Tk received the worst rating for how well it meets users' GUI
requirements, with a modal rating of 'poor'. It was the only library for
which fewer respondents said they planned to use it in the future than
are currently using it. Its continued inclusion in the standard library
is unjustified.

* Among those with an opinion, there's a 60/40 split against including
any GUI library in the Ruby standard distribution.

* The high degree of fragmentation has not served potential GUI
developers well. Almost all see Ruby as a viable GUI programming
language, but the immaturity of the toolkits is the commonest reason for
not using Ruby for GUI work. The means of redistributing ruby GUI apps
to end users is another obstacle.

* The release of Ruby 1.9 addresses some perceived impediments to GUI
development in Ruby, such as improved speed, and, more importantly, the
availability of system-level threading. There is scope for the reference
Ruby implementation to further improve Ruby as a platform for desktop
applications, for example, by offering bytecode loading.

== Etc

Many thanks to those who took the time to complete the survey, and also
to the GUI developers who helped in the development of the survey.

alex
346383adc7102ff181c69efb8c4504a4?d=identicon&s=25 M. Edward (Ed) Borasky (Guest)
on 2009-02-10 03:59
(Received via mailing list)
On Mon, Feb 9, 2009 at 6:39 PM, Alex Fenton <alex@deleteme.pressure.to>
wrote:
> Many thanks to those who took the time to complete the survey, and also to
> the GUI developers who helped in the development of the survey.

And many thanks to you for doing this research!!

--
M. Edward (Ed) Borasky

I've never met a happy clam. In fact, most of them were pretty steamed.
11b74267d849cc2c95e66c634c1b53f9?d=identicon&s=25 Mark Roseman (Guest)
on 2009-02-10 17:22
(Received via mailing list)
Alex Fenton <alex@deleteme.pressure.to> wrote:
> The results of the survey of Ruby GUI programming carried out at the end
> of last year are now available at
> http://www.pressure.to/ruby_gui_survey/

Alex, thanks so much for all the effort you put into this, that is very
useful.

> * Ruby-Tk received the worst rating for how well it meets users' GUI
> requirements, with a modal rating of 'poor'. It was the only library for
> which fewer respondents said they planned to use it in the future than
> are currently using it. Its continued inclusion in the standard library
> is unjustified.

This result doesn't at all surprise me. Though I am quite curious about
a few things (not in the survey, this is more a broader question to
those who participated and others):
  - how many people are still using 'classic' Tk vs. the newer themed
widget sets (Tile or ttk)?
  - how many are even aware of tile/ttk? :-)
  - for how many does the existing Tk documentation and examples just
blow?

I ask mainly because those are some of the things I was trying to target
with http://www.tkdocs.com ... I'm of the opinion that Tk isn't a
fantastic GUI option for Ruby, but in recent incarnations it's not as
bad as most people are aware, though the lack of awareness itself is an
issue.

Mark
00109e19a784b64f81b483a5dbec690a?d=identicon&s=25 Chauk-Mean Proum (chauk-mean)
on 2009-02-10 18:58
Alex Fenton wrote:
> The results of the survey of Ruby GUI programming carried out at the end
> of last year are now available at
> http://www.pressure.to/ruby_gui_survey/
>

Alex,

The task you've just done was not an easy one.
Thanks for sharing all these findings.

Chauk-Mean.
Ae16cb4f6d78e485b04ce1e821592ae5?d=identicon&s=25 Martin DeMello (Guest)
on 2009-02-10 19:50
(Received via mailing list)
On Tue, Feb 10, 2009 at 8:09 AM, Alex Fenton <alex@deleteme.pressure.to>
wrote:
> The results of the survey of Ruby GUI programming carried out at the end of
> last year are now available at
> http://www.pressure.to/ruby_gui_survey/

That was an excellent survey and analysis. Kudos.

martin
669b7046f02e5dfc4bda4421f1069731?d=identicon&s=25 Alex Fenton (Guest)
on 2009-02-10 22:06
(Received via mailing list)
Mark Roseman wrote:

> Alex, thanks so much for all the effort you put into this, that is very
> useful.


Thank you, I'm glad it's useful.


> This result doesn't at all surprise me. Though I am quite curious about
> a few things (not in the survey, this is more a broader question to
> those who participated and others):
>   - how many people are still using 'classic' Tk vs. the newer themed
> widget sets (Tile or ttk)?

Until doing this research, my only experience of Tk was in Perl c2001.
At the time I was thrilled, because it was the first time I'd created a
GUI app.

Doing the survey prompted me to try out Ruby's stdlib Tk on OS X - just
running a couple of the samples. I don't know, is what comes with Ruby
'classic' by default?

>   - how many are even aware of tile/ttk? :-)

I was vaguely aware of various themeing engines for Tk that were
intended to improve the appearance.


>   - for how many does the existing Tk documentation and examples just
> blow?

I didn't look at the documentation. The samples looked wrong simply
because the widgets looked wrong (not native). But looking at the
screenshots of the Win XP ttk / tile theme on its wiki page, they look
OK. I revised my view of the toolkit a little.


> I ask mainly because those are some of the things I was trying to target
> with http://www.tkdocs.com ... I'm of the opinion that Tk isn't a
> fantastic GUI option for Ruby, but in recent incarnations it's not as
> bad as most people are aware, though the lack of awareness itself is an
> issue.

I'm inclined to agree: I suspect that the negative survey response to Tk
is at least in part due to reputation. All of the cross-platform
toolkits have functional limitations and aesthetic shortcomings.

It's another reason why I think Ruby-Tk would be best hived off out of
the standard library to a separate project. If it takes installing some
extra packages after installing Ruby to make Tk look as good as
possible, then why wouldn't a user just install some other GUI package
that's at the end of a 'gem install xxx' command.

As a separate project, Ruby-Tk would then be freer to optimise the
experience as it's first installed (eg, using ttk/tile), rather than
being bound to the necessarily more controlled and conservative core
Ruby change and release system.

It's not for me, now, but it seems it can stake a claim for a place as
a 'lightweight' Ruby GUI toolkit.

alex
11b74267d849cc2c95e66c634c1b53f9?d=identicon&s=25 Mark Roseman (Guest)
on 2009-02-11 00:25
(Received via mailing list)
Alex Fenton <alex@deleteme.pressure.to> wrote:
> Doing the survey prompted me to try out Ruby's stdlib Tk on OS X - just
> running a couple of the samples. I don't know, is what comes with Ruby
> 'classic' by default?
>
> It's another reason why I think Ruby-Tk would be best hived off out of
> the standard library to a separate project. If it takes installing some
> extra packages after installing Ruby to make Tk look as good as
> possible, then why wouldn't a user just install some other GUI package
> that's at the end of a 'gem install xxx' command.


Hi Alex,

Thanks for the reply.  I don't disagree at all, but I did want to
clarify one thing related to the above.

Ruby/Tk already comes with both the 'classic' and the 'themed' widget
sets out of the box, with nothing at all extra to install.  The catch,
and it's no small one, is that the two widget sets have slightly
different API's in places.

Because of that, if you ask for a button using the same Ruby/Tk code as
you were using before, you still get the old button, whereas you have to
use a different call to get the themed variant ... it amounts to
replacing 'TkButton.new' with 'Tk::Tile::Button.new'.  So if you don't
know to update the code (and how are people supposed to find that out),
your GUI still looks pretty shitty.

Thanks again
Mark
669b7046f02e5dfc4bda4421f1069731?d=identicon&s=25 Alex Fenton (Guest)
on 2009-02-11 00:50
(Received via mailing list)
Mark Roseman wrote:

> Ruby/Tk already comes with both the 'classic' and the 'themed' widget
> sets out of the box, with nothing at all extra to install.  The catch,
> and it's no small one, is that the two widget sets have slightly
> different API's in places.

Thanks for the explanation. To summarise: the ruby standard library
says: "We give you Tk widgets; they look like shit. Maybe you knows
secret codez for handsome widgets?!?!"

best
alex
703fbc991fd63e0e1db54dca9ea31b53?d=identicon&s=25 Robert Dober (Guest)
on 2009-02-11 01:14
(Received via mailing list)
On Tue, Feb 10, 2009 at 3:39 AM, Alex Fenton <alex@deleteme.pressure.to>
wrote:
Let me join my fellow posters in complimenting you on this job.
Very nice.

There was one thing which alarmed me a little bit. You found that
MacRuby was used, if not widely, with a non negligible percentage .

Charles Nutter just recently expressed some concerns of them not
seeming to care of the specs. Is there any update on this Charly? Well
I thought maybe we should discuss this here and sorry if this is a
digression from your excellent work Alex.

Cheers
Robert
Fd22ee3cfc7dac283ce8e451af324f7d?d=identicon&s=25 Chad Perrin (Guest)
on 2009-02-11 01:30
(Received via mailing list)
On Tue, Feb 10, 2009 at 11:39:03AM +0900, Alex Fenton wrote:
> The results of the survey of Ruby GUI programming carried out at the end
> of last year are now available at
> http://www.pressure.to/ruby_gui_survey/

Thanks!


>
> * Ruby-Tk received the worst rating for how well it meets users' GUI
> requirements, with a modal rating of 'poor'. It was the only library for
> which fewer respondents said they planned to use it in the future than
> are currently using it. Its continued inclusion in the standard library
> is unjustified.

I'm not sure that means it's unjustified.  There may be perfectly
reasonable justifications other than popularity.  For instance, if any
GUI toolkit is going to be included with the standard distribution of
Ruby, I'd like it to be a toolkit that's already installed on the
system.
Contrary to many common perceptions, not every computer in the world
running a GUI on a Unix-like system has (or should have) GTK or Qt on
it.


>
> * The high degree of fragmentation has not served potential GUI
> developers well. Almost all see Ruby as a viable GUI programming
> language, but the immaturity of the toolkits is the commonest reason for
> not using Ruby for GUI work. The means of redistributing ruby GUI apps
> to end users is another obstacle.

What evidence do you have of a connection between these two facts
("fragmentation" and incompleteness)?
11b74267d849cc2c95e66c634c1b53f9?d=identicon&s=25 Mark Roseman (Guest)
on 2009-02-11 13:36
(Received via mailing list)
Alex Fenton <alex@deleteme.pressure.to> wrote:
> Thanks for the explanation. To summarise: the ruby standard library
> says: "We give you Tk widgets; they look like shit. Maybe you knows
> secret codez for handsome widgets?!?!"

Bingo. :-)
Fd22ee3cfc7dac283ce8e451af324f7d?d=identicon&s=25 Chad Perrin (Guest)
on 2009-02-11 21:23
(Received via mailing list)
On Wed, Feb 11, 2009 at 08:48:51AM +0900, Alex Fenton wrote:
> Mark Roseman wrote:
>
> >Ruby/Tk already comes with both the 'classic' and the 'themed' widget
> >sets out of the box, with nothing at all extra to install.  The catch,
> >and it's no small one, is that the two widget sets have slightly
> >different API's in places.
>
> Thanks for the explanation. To summarise: the ruby standard library
> says: "We give you Tk widgets; they look like shit. Maybe you knows
> secret codez for handsome widgets?!?!"

There are a lot of shortcomings in documentation for Ruby libraries,
I've
noticed.  This appears to be just another example of that -- and not
specific to Tk.
E4f967492dbd03c526cc9b397e68021d?d=identicon&s=25 Hidetoshi NAGAI (Guest)
on 2009-02-14 00:48
(Received via mailing list)
From: Mark Roseman <mark@markroseman.com>
Subject: Re: Ruby GUI Survey: Results
Date: Wed, 11 Feb 2009 08:23:52 +0900
Message-ID: <mark-627840.18203410022009@mara100-84.onlink.net>
> Because of that, if you ask for a button using the same Ruby/Tk code as
> you were using before, you still get the old button, whereas you have to
> use a different call to get the themed variant ... it amounts to
> replacing 'TkButton.new' with 'Tk::Tile::Button.new'.  So if you don't
> know to update the code (and how are people supposed to find that out),
> your GUI still looks pretty shitty.

Additional Information. :-)

A sample script "<ruby-src-tree>/ext/tk/sample/ttk_wrapper.rb"
can make old Ruby/Tk scripts to use Ttk widgets as default.
For example, "ttk_wrapper.rb -l" lists current supported theme names
on your environment. (With no option, shows a usage.)
"ttk_wrapper.rb -t keramik <ruby-src-tree>/ext/tk/sample/demo-en/widget"
executes "Ruby/Tk Widget Demo" with "keramik" theme.

When "Tk.default_widget_set = :Ttk", TkButton and so on denote
Ttk (Tile) widgets.
And when "Tk.default_widget_set = :Tk" (default), TkButton and so on
denote starndard Tk widgets (Tk::Button and so on).

Of course, Tk widgets and Ttk widgets have different options.
Some utility methods (those are used in ttk_wrapper.rb) hide
imcompatible errors.
Those may be dangerous. Please use them at your own risk. ;-)
This topic is locked and can not be replied to.