The Ruby GUI debacle

Team,

I truly hate to bring this subject back to the forum, as it is like
killing a dead horse! But I can’t help it, as my frustration keeps on
growing!

I am a Ruby, kind of, newbie. I’ve been in and out of Ruby many times
for a few years now.
I am sure that I and other people (I think) could be using Ruby more
often if there were a “simple” GUI development environment. I put
simple in quote because I understand that it is a very subjective
word.
In the past I experimented with several GUI toolkits, which I know are
excellent GUI toolkit bindings for ruby, including: Qt, Gtk, Wx, Fox
and Tk. I also played or tried playing with Monkeybars with Netbeans
and JRuby; and Shoes. Against my free will I was willing to give it a
try to IronRuby and Ruby on Steel.

As you can read I have been looking for a “simple” GUI environment
where I don’t have to “draw” the widgets. I would like to get a GUI
programming environment where I can drag&drop widgets (diaglog box,
drop-down list, Etc., Etc.) on a pane and then just worry about the
programming part to handle or react to the events generated by the
widgets! I hate to say, but something like VB.

I actually thought that Monkeybars was the answer to my prayers, but I
guess I did not prayed loud enough or perhaps I need to offer
sacrifices to the GUI Toolkits gods. The point is that Monkeybars was
so involved that I went through the tutorial once or twice and then
gave up.
The WX people are nice enough to offer help. But I don’t want to
impose on anyone. To compound my problem I find most tutorials
outdated and many times not explicit enough for beginners.

I also, naively, thought that since IronRuby was from MS, perhaps they
would have a nice drag&drop GUI design IDE.

If anyone knows an IDE where I can use drag&drop to create GUI appls
in Ruby/Jruby/IronRuby/AnyRuby, please let me know. I am willing to
purchase a commercial package, if available.

Thank you for reaching this part of my note, unless you jumped around,
which is OK also!

Ruby S. wrote:

If anyone knows an IDE where I can use drag&drop to create GUI appls
in Ruby/Jruby/IronRuby/AnyRuby, please let me know. I am willing to
purchase a commercial package, if available.

Sorry, I cannot recommend you something similar for Windows (I don’t use
it), but for mac development the .nib files, created with Interface
Builder (a standard Apple GUI creating app, comes bundled with Xcode,
freeware) shall do the thing.
In a nutshell: in Interface Builder you create the elements via
drag-n-drop, then you assign certain actions to certain elements.
You can develop in such a way using MacRuby or RubyCocoa(Ruby with a
Cocoa API).

On 11/1/2010 1:21 AM, Ruby S. wrote:

As you can read I have been looking for a “simple” GUI environment
where I don’t have to “draw” the widgets. I would like to get a GUI
programming environment where I can drag&drop widgets (diaglog box,
drop-down list, Etc., Etc.) on a pane and then just worry about the
programming part to handle or react to the events generated by the
widgets! I hate to say, but something like VB.

You could try WideStudio. It does allow you to create a GUI by dragging
and dropping.

These are the programming notes for Ruby:
http://www.widestudio.org/EE/prog-ruby/prog.html
http://www.widestudio.org/EE/prog-ruby/p5-1.html [Hello World]

and the download is at:
http://www.widestudio.org/

Cheers,
Mohit.
11/1/2010 | 2:11 AM.

Love replying to myself…

On Sun, Jan 10, 2010 at 10:15 AM, John W Higgins [email protected]
wrote:

programming part to handle or react to the events generated by the
widgets! I hate to say, but something like VB.

Have a look at XRCise (
http://wxruby.rubyforge.org/wiki/wiki.pl?UsingXRCise) - should be pretty
close to what you want (if you want to use wx).

John

I forgot that the tutorial uses DialogBlocks which is commerical - you
could
use wxGlade as opposed to DialogBlocks to create the xrc file.

John

On 10 janv. 2010, at 18:21, Ruby S. wrote:

If anyone knows an IDE where I can use drag&drop to create GUI appls
in Ruby/Jruby/IronRuby/AnyRuby, please let me know.

http://www.macruby.org/

Good Morning,

On Sun, Jan 10, 2010 at 9:21 AM, Ruby S.
[email protected]wrote:

As you can read I have been looking for a “simple” GUI environment
where I don’t have to “draw” the widgets. I would like to get a GUI
programming environment where I can drag&drop widgets (diaglog box,
drop-down list, Etc., Etc.) on a pane and then just worry about the
programming part to handle or react to the events generated by the
widgets! I hate to say, but something like VB.

Have a look at XRCise
(http://wxruby.rubyforge.org/wiki/wiki.pl?UsingXRCise)

  • should be pretty close to what you want (if you want to use wx).

John

Thank you to everyone that already posted and answer.

If at all possible, I would like a cross-platform package!

On 1/10/2010 12:21 PM, Ruby S. wrote:

As you can read I have been looking for a “simple” GUI environment
where I don’t have to “draw” the widgets. I would like to get a GUI
programming environment where I can drag&drop widgets (diaglog box,
drop-down list, Etc., Etc.) on a pane and then just worry about the
programming part to handle or react to the events generated by the
widgets! I hate to say, but something like VB.

Look at using glade to generate the interface, the code the callbacks

On 11/1/2010 2:40 AM, Ruby S. wrote:

Thank you to everyone that already posted and answer.

If at all possible, I would like a cross-platform package!

WideStudio is.

Cheers,
Mohit.
11/1/2010 | 2:52 AM.

On Jan 10, 7:17 pm, John W Higgins [email protected] wrote:

Good Morning,
Have a look at XRCise (
http://wxruby.rubyforge.org/wiki/wiki.pl?UsingXRCise) - should be pretty
close to what you want (if you want to use wx).

John

I forgot that the tutorial uses DialogBlocks which is commerical - you could
use wxGlade as opposed to DialogBlocks to create the xrc file.

John

I was struggling with the same problem too when I started my work on
RStreamTuner (http://github.com/bosko/rstreamtuner). First I’ve tried
ruby Tk but lack of good documentation (and knowledge of Tcl)
prevented me to make something useful so I’ve decided to try WxWidgets
and wxruby. I must say that I’m really satisfied with it. Simple
applications can be made very quickly and documentation is quite good

  • better say excellent for one open source project.

Although DialogBlocks are commercial tool their demo version can be
used for moderate complex GUI (I think they have limitation to 30
widgets. I didn’t know about wxGlade and I will certainly try it.
Anyway wxruby is my choice for ruby GUI applications because to simple
way of using, very logical interface and their portability. My
application is working on Linux and Windows without any problem.
WxRuby guys even make binary gem for RubyInstaller (http://
www.rubyinstaller.org/) that I use on Windows. Only problem I’ve faced
is x64 bit version of their gem which didn’t work on my Ubuntu 9.10,
but that was quite easy to overcome.

Regards,
Bosko I.

I’ve used FoxGUIb which works quite well for drag and drop for several
small projects. It is fairly easy to use and there is a tutorial on the
site.
Tom R.

Ruby S. wrote:

I actually thought that Monkeybars was the answer to my prayers, but I
guess I did not prayed loud enough or perhaps I need to offer
sacrifices to the GUI Toolkits gods. The point is that Monkeybars was
so involved that I went through the tutorial once or twice and then
gave up.

I am really curious as to why using Monkeybars was such trouble.

Contact me off-list if you like.

I used to contribute to Monkeybars, and I now use my own fork of it
(Jimpanzee) and in both cases one goal was to make things stupid simple.


James B.

www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
www.neurogami.com - Smart application development

On 10.01.2010 18:21, Ruby S. wrote:

If anyone knows an IDE where I can use drag&drop to create GUI appls
in Ruby/Jruby/IronRuby/AnyRuby, please let me know. I am willing to
purchase a commercial package, if available.

NetBeans. Monkeybars is the glue to use NetBeans’ GUI builder in JRuby.

On 10.01.2010 21:30, James B. wrote:

But know that you do not have to use Netbeans to make a UI for
Monkeybars.

If you want a half-way decent drag & drop UI layout… thing, like
NetBeans’ SWING Builder (or whatever it’s called), like the OP, then you
pretty much have to use NetBeans. :wink:

For myself, I use SwingSet for simple UI items (an “About” screen, or
simple user input) and the Netbeans GUI editor for more sophisticated
layouts.

Hard to beat Netbeans for that.

Well, Visual Studio, maybe, but since VS plays in a way different league
than Sun ever did, and IronRuby isn’t finished yet to hook into
.NET…

On Sunday 10 January 2010 12:44:34 pm Reid T. wrote:

On 1/10/2010 12:21 PM, Ruby S. wrote:

As you can read I have been looking for a “simple” GUI environment
where I don’t have to “draw” the widgets. I would like to get a GUI
programming environment where I can drag&drop widgets (diaglog box,
drop-down list, Etc., Etc.) on a pane and then just worry about the
programming part to handle or react to the events generated by the
widgets! I hate to say, but something like VB.

Look at using glade to generate the interface, the code the callbacks

Or use QTDesigner.

Point is, this isn’t a Ruby problem, this is a GUI library problem.
You’d have
the same problem in C++, C#, Python, Perl, C, OCaml, Lisp, Haskell,
Erlang,
EcmaScript (JavaScript), Java, Scheme, Clojure…

The problem is mostly that you don’t know what you’re looking for.
You’re
looking for something called a “GUI Designer”. Google it, and you’ll
find
dozens.

Once you can design a GUI for a library, in its native language, you can
probably work with it in Ruby. That process is complex enough that you
should
probably follow a tutorial, rather than figure it out yourself, unless
you
already know C/C++.

So, here’s a tutorial:

http://www.arachnoid.com/ruby/RubyGUIProject/

James, I don’t remember if the problems was with Netbeans or something
else. But I followed a video to the period and I never got it right!
I am sure that if I tried long enough, I would probably succeed. Then
again with a job and a family it is difficult to dedicate infinite
time to these tools. So I gave up and continued writing ASCII mode
scripts!
To me, Monkeybars looked perfect because it makes available the power
of swing! But, here I am, still struggling!

Phillip G. wrote:

On 10.01.2010 18:21, Ruby S. wrote:

If anyone knows an IDE where I can use drag&drop to create GUI appls
in Ruby/Jruby/IronRuby/AnyRuby, please let me know. I am willing to
purchase a commercial package, if available.

NetBeans. Monkeybars is the glue to use NetBeans’ GUI builder in JRuby.

But know that you do not have to use Netbeans to make a UI for
Monkeybars. Monkeybars works by hooking into compiled Swing UI code.
But you can also use inline Swing code to get the same thing. That’s
the point of my Neurogami::SwingSet project, to make it easier to write
Swing stuff in a text editor. (It’s true of Jimpanazee, but I don’t
recall if that code made it into Monkeybars.)

But if there’s another tool preferred for creating the Swing UI layer,
that should work fine too, just tell the app what file is to be used.

For myself, I use SwingSet for simple UI items (an “About” screen, or
simple user input) and the Netbeans GUI editor for more sophisticated
layouts.

Hard to beat Netbeans for that.


James B.

www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
www.neurogami.com - Smart application development

To me, Monkeybars looked perfect because it makes available the power
of swing! But, here I am, still struggling!

What exactly is the “power of Swing”? The deal-breaker for me always was
that there seems to be no possibility to create native-feel applications
on OS X because I have yet to find a possibility to create menus in the
menubar instead of the window. Swing does not know this concept and
doesn’t care. When it comes to UI, this can hardly be called
“cross-platform”, just because it “runs” on the target platform. Also,
the windows somehow don’t feel right, which may be because Swing only
fakes a native look instead of using native iconography and widgets. The
absence of complex widgets and the horribly complex API doesn’t make
things easier, as well.

I had good experiences with QT and QTDesigner, although I don’t have any
experience in using it with Ruby (i did C++ development).

Regards,
Florian

Ruby S. wrote:

James, I don’t remember if the problems was with Netbeans or something
else. But I followed a video to the period and I never got it right!

Ah, well, I’m pretty sure that, for all sorts of reasons, the videos are
out of date. :frowning:

I am sure that if I tried long enough, I would probably succeed. Then
again with a job and a family it is difficult to dedicate infinite
time to these tools. So I gave up and continued writing ASCII mode
scripts!
To me, Monkeybars looked perfect because it makes available the power
of swing! But, here I am, still struggling!

As I say, if you want to ask me question off-list, please drop me a
line.


James B.

www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
www.neurogami.com - Smart application development

If anyone knows an IDE where I can use drag&drop to create GUI appls
in Ruby/Jruby/IronRuby/AnyRuby, please let me know. I am willing to
purchase a commercial package, if available.

In a way the situation is a bit difficult for GUI apps in the year 2010.

The WWW really made this kind of trivial in an online-fashion. Want to
change colours of your formular or borders? Use a bit CSS. Need calback
actions? A bit Javascript. And so on.

With the various GUIs, they sometimes use completely different mindsets.

Personally I use ruby-gnome. I am quite happy with it. It has a great
wiki. Unfortunately, the ruby-gnome guys lack one or two more
maintainers who can spend some time every now and then on it.

My hope is that all the different GUIs learn from the WWW and adopt
several conventions. I’d love to be able to use CSS instead of
gtk-resource files to colourize my widget sets - and I refuse to use
“gtk themes”, and I don’t enjoy if upstream developers impose their
mindset on me (and my apps) when they don’t really want to learn from
the www. (This is a generalization, I am well aware that GUIs are a lot
of work, with many boring bugs to fix in the long run)

Sometimes I think it would be cool to have a dedicated Ruby GUI team,
completely spending time on Ruby + GUI only.

Hey … just a X-Mas wish … something like Squeak or Gambas for Ruby
would be kinda neat, but I don’t think that would happen :slight_smile:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs