Best UI library for JRuby?


#1

I’m wondering if any UI library has become a standard or is considered
“best” by the JRuby community.

Thanks in advance,
Ken


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#2

Hands down, Monkeybars (http://monkeybars.rubyforge.org/).

Honestly, I don’t know if we have a standard. Monkeybars and the other
libraries out there (Cherri, Profligacy, Glimmer, etc) all have some
way of approaching Swing and SWT to make life easier. Universally,
JRuby UI libraries are built on top of Swing of SWT that I’ve seen.

Logan B.
removed_email_address@domain.invalid
602 714 1148

On Nov 25, 2008, at 3:44 PM, Kenneth McDonald wrote:

http://xircles.codehaus.org/manage_email


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#3

I watched the demo of Monekybars at RubyConf and was shocked at how
much work was involved to get a simple Hello World program working.

My personal, unbiased, recommendation would be Limelight
(http://limelight.8thlight.com
). Actually, it’s very biased. You’ll find Limelight offers a unique
approach to building UI’s, geared toward building web-like
applications. It’s “rather elegant” to quote Dave T…

Micah

On Nov 25, 2008, at 5:22 PM, Logan B. wrote:

602 714 1148


http://xircles.codehaus.org/manage_email


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#4

Could you please elaborate on what exactly was shocking? Monkeybars
is not optimized for the 1 screen demo app. It was extracted from a
real-world large complex GUI that is deployed and being used in the
real world. If you’re saying that having to set up an IDE project or
using a well structured separation of models, views and controller
from the beginning is “shocking” in terms of work involved, I think
that’s a rather crude interpretation of the Monkeybars ecosystem. As
crude, perhaps, as remarking how shockingly non-desktop like any given
limelight app appears. The GUI space is vast and has many different
needs. Limelight serves a role in the Shoes-like-for-the-JVM space,
and Monkeybars and Glimmer serve the needs of more visually complex
applications that need advanced controls like TreeTables, calendar
controls and file browser dialogs.

On Nov 25, 2008, at 5:27 PM, Micah M. wrote:

I watched the demo of Monekybars at RubyConf and was shocked at how
much work was involved to get a simple Hello World program working.

My personal, unbiased, recommendation would be Limelight (http://limelight.8thlight.com
). Actually, it’s very biased. You’ll find Limelight offers a
unique approach to building UI’s, geared toward building web-like
applications. It’s “rather elegant” to quote Dave T…

Micah


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#5

David,

Sure I’ll elaborate. I guess I was expecting something like this…

gem install monekybars
monkeybars hello_world
cd hello_world
rake
open hello_world.app

From what I recall of the demo, it took a couple dozen steps
involving a NetBeans plugin, project configurations, and multiple
builds (which I found odd). I don’t think that’s bad, it’s just not
what I expected.

Clearly a lot of work has gone into the infrastructure of Monkeybars
to encourage a well designed separation of concerns similar to MVC,
which is great! I think Monkeybars provides a excellent opportunity
to write heavy weight Swing applications in Ruby.

Micah

On Nov 25, 2008, at 7:08 PM, David K. wrote:

role in the Shoes-like-for-the-JVM space, and Monkeybars and Glimmer

). Actually, it’s very biased. You’ll find Limelight offers a


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#6

While not trying to speak for Kenneth, it does look like he was asking
for a
library for making UIs in JRuby. From what I can see, Limelight and
Monkeybars are both closer to application frameworks. If I’m wrong
about
that I’d love to hear how to separate the UI stuff from the rake tasks,
main
loops, etc., (for either project.)
Here’s the list as far as I know:

  • Cheri::Swing - builder-style DSL, abandoned
  • Profligacy - custom DSL, abandoned
  • Glimmer - custom (althought builder-like) syntax, uses SWT

I’d really like to hear of any other options out there. I started a
project
to create a builder-like syntax for Swing once I’d realized that Cheri
was
not going to get fixed. I’ve also had some off-the-cuff ideas:

  • Combining Jim W.'s XML builder (just called “Builder”) with
    swixml
  • Somehow wrapping Groovy’s amazing SwingBuilder. Using JRuby and
    Groovy
    together causes huge distribution sizes :frowning:
  • Wrapping a DSL around MigLayout, possibly using the “dslkit” gem
  • Improving the excellent node-graph interface of the JavaFX team’s
    Scenegraph library using (again) a Ruby DSL

Anybody interested in trying one of these ideas out? :slight_smile:


#7

You seem to be describing the process of running a default doesn’t-yet-
do-anything app. That process would be:

gem install monkeybars
monkeybars ‘hello_world’
cd hello_world
rawr install #Rawr is an independent library that can be used apart
from Monkeybars but will be a dependency starting in Monkeybars 1.0
rake rawr:bundle:exe # or rawr:bundle:app if you want an osx bundle

double-click the exe that was built for you

Netbeans is not required, just handy for designing GUI forms. The
Rawr library gives you multiple types of builds: you can go all the
way to an exe, build the intermediate jar file or just use it to
compile any java classes you might be using. During the presentation
I intentionally took every step in the process explicitly to try to
“pull the curtains back” and show that there was no funny business
going on, everything was live fire that day so it may have seemed a
bit more cumbersome than needed. I guess people can see for
themselves whenever confreaks gets the video posted.

David K.

On Nov 25, 2008, at 6:53 PM, Micah M. wrote:

From what I recall of the demo, it took a couple dozen steps
involving a NetBeans plugin, project configurations, and multiple
builds (which I found odd). I don’t think that’s bad, it’s just not
what I expected.

Clearly a lot of work has gone into the infrastructure of Monkeybars
to encourage a well designed separation of concerns similar to MVC,
which is great! I think Monkeybars provides a excellent opportunity
to write heavy weight Swing applications in Ruby.

Micah


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#8

On Mon, 8 Dec 2008 19:37:31 -0800
“Zed A. Shaw” removed_email_address@domain.invalid wrote:

On Mon, Dec 08, 2008 at 08:52:14PM -0500, Karlin Fox wrote:

  • Profligacy - custom DSL, abandoned

Profligacy’s not abandoned, it’s done. :slight_smile: Actually, Alex Payne said he
might take it over, but I believe I forgot to give him the keys.

Sorry, that’s Alex Pooley. Wrong Alex. :slight_smile:


Zed A. Shaw
http://freehackersunion.org/


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#9

On Mon, Dec 08, 2008 at 08:52:14PM -0500, Karlin Fox wrote:

  • Profligacy - custom DSL, abandoned

Profligacy’s not abandoned, it’s done. :slight_smile: Actually, Alex Payne said he
might take it over, but I believe I forgot to give him the keys.


Zed A. Shaw
http://freehackersunion.org/


To unsubscribe from this list, please visit:

http://xircles.codehaus.org/manage_email

#10

On Dec 8, 2008, at 6:52 PM, Karlin Fox wrote:

While not trying to speak for Kenneth, it does look like he was
asking for a library for making UIs in JRuby. From what I can
see, Limelight and Monkeybars are both closer to application
frameworks. If I’m wrong about that I’d love to hear how to
separate the UI stuff from the rake tasks, main loops, etc., (for
either project.)

You can drop Monkeybars into an existing project with the Monkeybars
jar. No need to put in rake tasks. Monkeybars never set up a main loop
for you, or dictates that your app be a certain way. We just threw in
a lot of helpers to the core. I believe one of our users started
adding Monkeybars to an existing Java/Swing project this way.

  • Combining Jim W.'s XML builder (just called “Builder”) with
    swixml
  • Somehow wrapping Groovy’s amazing SwingBuilder. Using JRuby and
    Groovy together causes huge distribution sizes :frowning:
  • Wrapping a DSL around MigLayout, possibly using the “dslkit” gem
  • Improving the excellent node-graph interface of the JavaFX team’s
    Scenegraph library using (again) a Ruby DSL

Now, if you’re talking about UI layout in JRuby, Monkeybars doesn’t do
that, and probably never will. You could use any of these (Swing)
approaches with Monkeybars (or just use a GUI editor such as Netbeans).


Karlin Fox | Developer
Atomic Object | http://atomicobject.com
[Ph] +1 616 776 6020 [Fx] +1 616 776 6015

Logan B.
removed_email_address@domain.invalid
602 714 1148