Hi folks!
I'm an experienced Rails developer, but for once this is not a Rails
question. Rather, I have a desktop app I'd like to create -- we're
talking something like a spreadsheet-type app, though not quite. Since
I've been using Ruby more than any other language for the last 2 years,
and since I love working in Ruby, I'd like to try to write the app in
Ruby to the extent possible.
Since this is meant as an end-user productivity application for
nontechnical users, and since I'd like the barriers to use of this app
to be as low as possible, I have a couple of requirements:
* Must run on Linux, Mac OS X, and Windows, preferably with a minimum of
hassle in the build process
* Must install with a minimum of extra dependencies -- ideally I'd like
people to be able to download an executable, unzip it, and run it
immediately, without needing administrator permissions
* Should feel as much like a native app as possible -- I don't want
users to have to deal with an alien UI
I suppose I could go the RIA route, but I tend to think a native app
would be better...
So...does anyone have any suggestions for a good way to do this in Ruby?
My thought process so far has been about like this -- feel free to
correct me on anything I got wrong.
* RubyCocoa: would be my first choice if I didn't care about
cross-platform compatibility, but I don't think I can expect to run a
RubyCocoa app on anything but Mac OS and maybe GnuStep
* Ruby/Tk, Ruby/Qt: I'm under the impression that these tend to need big
library installations, especially on Windows. Is that correct?
* wxRuby: Don't know a heck of a lot about it
* Shoes? Is that still around now that Why has vanished? Is it worth
using?
* JRuby/RJB: at the moment, seems like the best choice (as much as I get
annoyed by working with Java). Is that an accurate assessment? If so,
what tends to get used for GUI libraryies? Swing/Monkeybars/Profligacy?
* Any other suggestions?
I hope I'm not being too idiotic here. I don't know nearly as much as I
should about the current state of desktop GUI app development in Ruby,
and I'd like to fix that! Thanks.
Best,
···
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/.
Marnen Laibow-Koser wrote:
* Any other suggestions?
Consider FXRuby, too. It has a nice table widget, and (IIRC) FXRuby comes with the ruby windows installer, so there's one less thing to set up. (If not, you can just gem install it.)
···
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
Marnen Laibow-Koser wrote:
* JRuby/RJB: at the moment, seems like the best choice (as much as I get
annoyed by working with Java). Is that an accurate assessment? If so,
what tends to get used for GUI libraryies? Swing/Monkeybars/Profligacy?
This is your best route, offering fast, robust cross-platform development with solid GUI components.
Use Monkeybars (or, if adventurous, Jimpanzee) with Rawr (for beautifully simple application packaging).
BTW, using those tools, the amount of Java you'll need to write is approximately zero.
···
--
James Britt
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
* Bowline http://leadthinking.com/191-bowline-a-ruby-gui-framework is
an option too, if you want another point on the spectrum between RIA
and native.
* JRuby/Glimmer uses SWT, so you'll get your native widgets.
* Ruby/QT4 would be my first choice if I knew I was just going to be
deploying on linux, but when I asked in a recent thread, no one had
any experience packaging and deploying it on windows. If you do go
this route and get a windows executable up and running, I'd love to
hear from you.
martin
···
On Wed, Oct 28, 2009 at 9:03 AM, Marnen Laibow-Koser <marnen@marnen.org> wrote:
* RubyCocoa: would be my first choice if I didn't care about
cross-platform compatibility, but I don't think I can expect to run a
RubyCocoa app on anything but Mac OS and maybe GnuStep
* Ruby/Tk, Ruby/Qt: I'm under the impression that these tend to need big
library installations, especially on Windows. Is that correct?
* wxRuby: Don't know a heck of a lot about it
* Shoes? Is that still around now that Why has vanished? Is it worth
using?
* JRuby/RJB: at the moment, seems like the best choice (as much as I get
annoyed by working with Java). Is that an accurate assessment? If so,
what tends to get used for GUI libraryies? Swing/Monkeybars/Profligacy?
* Any other suggestions?
Marnen Laibow-Koser wrote:
Since this is meant as an end-user productivity application for
nontechnical users, and since I'd like the barriers to use of this app
to be as low as possible, I have a couple of requirements:
* Must run on Linux, Mac OS X, and Windows, preferably with a minimum of
hassle in the build process
* Must install with a minimum of extra dependencies -- ideally I'd like
people to be able to download an executable, unzip it, and run it
immediately, without needing administrator permissions
* Should feel as much like a native app as possible -- I don't want
users to have to deal with an alien UI
You'll have realised that there are a number of GUI packages which potentially meet your requirements, though none is perfect; be skeptical of anyone that says the particular one they're cheering is, without reservation, 'the best' or 'the only'.
As an alternative to single posts which tell you which GUI package that author happens to like, you may find this 2008 survey of around 400 ruby programmers specifically on GUI programming in Ruby of interest:
http://www.pressure.to/ruby_gui_survey/
I wouldn't say that being most used or most preferred is an indicator of which is best; lack of knowledge and inertia play a part. But you might assume that the most-used cross-platform GUI packages (Ruby-GNOME2, Shoes, wxRuby) are used for a reason, and start by evaluating some of them.
Bera in mind that Swing/Monkeybars may be disadvantaged in the poll by being tied to a less-used interpreter. But Swing/Monkeybars gets a good deal of regular promotion to compensate.
cheers
alex
Hi,
I recently came across limelight -
http://limelight.8thlight.com/main/sparkle\.
Haven't had a chance to play with it yet but it sounds like it might be
worth consideration.
Cheers,
Jits
···
2009/10/28 Marnen Laibow-Koser <marnen@marnen.org>
Hi folks!
I'm an experienced Rails developer, but for once this is not a Rails
question. Rather, I have a desktop app I'd like to create -- we're
talking something like a spreadsheet-type app, though not quite. Since
I've been using Ruby more than any other language for the last 2 years,
and since I love working in Ruby, I'd like to try to write the app in
Ruby to the extent possible.
Since this is meant as an end-user productivity application for
nontechnical users, and since I'd like the barriers to use of this app
to be as low as possible, I have a couple of requirements:
* Must run on Linux, Mac OS X, and Windows, preferably with a minimum of
hassle in the build process
* Must install with a minimum of extra dependencies -- ideally I'd like
people to be able to download an executable, unzip it, and run it
immediately, without needing administrator permissions
* Should feel as much like a native app as possible -- I don't want
users to have to deal with an alien UI
I suppose I could go the RIA route, but I tend to think a native app
would be better...
So...does anyone have any suggestions for a good way to do this in Ruby?
My thought process so far has been about like this -- feel free to
correct me on anything I got wrong.
* RubyCocoa: would be my first choice if I didn't care about
cross-platform compatibility, but I don't think I can expect to run a
RubyCocoa app on anything but Mac OS and maybe GnuStep
* Ruby/Tk, Ruby/Qt: I'm under the impression that these tend to need big
library installations, especially on Windows. Is that correct?
* wxRuby: Don't know a heck of a lot about it
* Shoes? Is that still around now that Why has vanished? Is it worth
using?
* JRuby/RJB: at the moment, seems like the best choice (as much as I get
annoyed by working with Java). Is that an accurate assessment? If so,
what tends to get used for GUI libraryies? Swing/Monkeybars/Profligacy?
* Any other suggestions?
I hope I'm not being too idiotic here. I don't know nearly as much as I
should about the current state of desktop GUI app development in Ruby,
and I'd like to fix that! Thanks.
Best,
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
Joel VanderWerf wrote:
Marnen Laibow-Koser wrote:
* Any other suggestions?
Consider FXRuby, too.
I'll check it out; thanks for the suggestion.
It has a nice table widget, and (IIRC) FXRuby
comes with the ruby windows installer, so there's one less thing to set
up.
I don't care so much about "one less thing to set up" for development as
I do about not burdening the end user. (And anyway, I'm not using
Windows.) How is FXRuby on this score?
(If not, you can just gem install it.)
Best,
···
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
James Britt wrote:
Marnen Laibow-Koser wrote:
* JRuby/RJB: at the moment, seems like the best choice (as much as I get
annoyed by working with Java). Is that an accurate assessment? If so,
what tends to get used for GUI libraryies? Swing/Monkeybars/Profligacy?
This is your best route, offering fast, robust cross-platform
development with solid GUI components.
That was my impression.
Use Monkeybars (or, if adventurous, Jimpanzee) with Rawr (for
beautifully simple application packaging).
Of course, you *would* say that.
(Actually, seeing your name on Monkeybars was one of the things that
made me think it was worth serious consideration.)
BTW, using those tools, the amount of Java you'll need to write is
approximately zero.
Great! As I said, I *can* write Java, but the language annoys me.
--
James Britt
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
Best,
···
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
Martin DeMello wrote:
annoyed by working with Java). �Is that an accurate assessment? �If so,
what tends to get used for GUI libraryies? �Swing/Monkeybars/Profligacy?
* Any other suggestions?
* Bowline http://leadthinking.com/191-bowline-a-ruby-gui-framework is
an option too, if you want another point on the spectrum between RIA
and native.
Very interesting. I think for this particular project, I don't want to
use HTML and JS for the UI, but I can imagine other projects that
Bowline would be great for!
* JRuby/Glimmer uses SWT, so you'll get your native widgets.
Thanks. I never heard of Glimmer; I'll look it up.
* Ruby/QT4 would be my first choice if I knew I was just going to be
deploying on linux, but when I asked in a recent thread, no one had
any experience packaging and deploying it on windows. If you do go
this route and get a windows executable up and running, I'd love to
hear from you.
Oy. Not this project, then. Although I don't use Windows myself, the
nature of what I'm doing is such that it really has to run everywhere it
can.
martin
Best,
···
On Wed, Oct 28, 2009 at 9:03 AM, Marnen Laibow-Koser <marnen@marnen.org> > wrote:
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
James Britt wrote:
Marnen Laibow-Koser wrote:
* JRuby/RJB: at the moment, seems like the best choice (as much as I get
annoyed by working with Java). Is that an accurate assessment? If so,
what tends to get used for GUI libraryies? Swing/Monkeybars/Profligacy?
This is your best route, offering fast, robust cross-platform
development with solid GUI components.
Use Monkeybars (or, if adventurous, Jimpanzee) with Rawr (for
beautifully simple application packaging).
[...]
At this point, it looks like I'll probably use Monkeybars and JRuby for
this project. But...what about wxRuby and Shoes? I understand Shoes
was very popular for a while at least, and I like wxRuby's lack of
reliance on JVMs, yet I notice no one recommended these. Are there
problems that I'm not aware of, or is that simply coincidental?
(Yes, I realize I may just have to play around with these all and find
out. I'm just trying to get off the ground as quickly as possible.)
Best,
···
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
Alex Fenton wrote:
[...]
You'll have realised that there are a number of GUI packages which
potentially meet your requirements, though none is perfect; be skeptical
of anyone that says the particular one they're cheering is, without
reservation, 'the best' or 'the only'.
Oh, of course. I just wanted to get a sense of what was being used and
how people felt about it.
As an alternative to single posts which tell you which GUI package that
author happens to like, you may find this 2008 survey of around 400 ruby
programmers specifically on GUI programming in Ruby of interest:
The 2008 Ruby GUI Survey
Yes, I found that. It's fascinating and useful.
I wouldn't say that being most used or most preferred is an indicator of
which is best; lack of knowledge and inertia play a part. But you might
assume that the most-used cross-platform GUI packages (Ruby-GNOME2,
Shoes, wxRuby) are used for a reason, and start by evaluating some of
them.
I did check them out. None seems right for this project, but I will
absolutely keep Shoes and wx in mind for future work.
Bera in mind that Swing/Monkeybars may be disadvantaged in the poll by
being tied to a less-used interpreter. But Swing/Monkeybars gets a good
deal of regular promotion to compensate.
In this case, I think being tied to JRuby may actually be an advantage.
It's the only way I can see to have a cross-platform, easily
distributable Ruby application. And it seems like both wxRuby and Shoes
depend too much on native extensions to work with JRuby, and depend too
much on MRI to distribute to general users. If I'm wrong on either of
those, please correct me.
cheers
alex
Best,
···
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
That looks extremely cool! Thanks for the pointer.
martin
···
On Sun, Nov 1, 2009 at 5:46 AM, Jiten Bhagat <lists@jits.co.uk> wrote:
Hi,
I recently came across limelight -
http://limelight.8thlight.com/main/sparkle\.
Haven't had a chance to play with it yet but it sounds like it might be
worth consideration.
FYI, if you're interested in Limelight, there will be a talk on it at
Qcon SF this year:
http://blog.headius.com/2009/10/missed-rubyconf-attend-qcons-ruby-track.html
- Charlie
···
On Sat, Oct 31, 2009 at 7:16 PM, Jiten Bhagat <lists@jits.co.uk> wrote:
Hi,
I recently came across limelight -
http://limelight.8thlight.com/main/sparkle\.
Haven't had a chance to play with it yet but it sounds like it might be
worth consideration.
Jiten Bhagat wrote:
Hi,
I recently came across limelight -
http://limelight.8thlight.com/main/sparkle\.
Haven't had a chance to play with it yet but it sounds like it might be
worth consideration.
It looks beautiful, but the tutorial app is somewhat slow and has
display bugs. I see that it's pretty new, though; it's got potential to
become the new Shoes...
Cheers,
Jits
Best,
···
2009/10/28 Marnen Laibow-Koser <marnen@marnen.org>
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
Marnen Laibow-Koser wrote:
I don't care so much about "one less thing to set up" for development as I do about not burdening the end user. (And anyway, I'm not using Windows.) How is FXRuby on this score?
At worst you would either have an install script that does "gem install fxruby" after ruby itself is installed, or you could try to package a complete system using something like rubyscript2exe (google "rubyscript2exe fxruby"). There's also exerb, which the author of FXRuby has used (http://lylejohnson.name/blog/2008/12/30/building-standalone-fxruby-applications-with-exerb/\).
···
--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
I don't wish to spread FUD, so please note that I'm *not* saying that
QtRuby doesn't work on windows, just that I do not personally have
access to a windows machine to test it out, and have not heard from
anyone who has packaged it.
martin
···
On Wed, Oct 28, 2009 at 5:58 PM, Marnen Laibow-Koser <marnen@marnen.org> wrote:
Martin DeMello wrote:
* Ruby/QT4 would be my first choice if I knew I was just going to be
deploying on linux, but when I asked in a recent thread, no one had
any experience packaging and deploying it on windows. If you do go
this route and get a windows executable up and running, I'd love to
hear from you.
Oy. Not this project, then. Although I don't use Windows myself, the
nature of what I'm doing is such that it really has to run everywhere it
can.
Marnen Laibow-Koser wrote:
[...]
At this point, it looks like I'll probably use Monkeybars and JRuby for
this project. But...what about wxRuby and Shoes? I understand Shoes
was very popular for a while at least, and I like wxRuby's lack of
reliance on JVMs, yet I notice no one recommended these. Are there
problems that I'm not aware of, or is that simply coincidental?
Never mind. I just realized that these will not be feasible for the
current project because they will require a Ruby interpreter, and I
don't want to even expect that my end-users will have *that*! (I'm
targeting, among others, educational and corporate users who don't have
admin rights and wouldn't know what to do with them if they had.)
Monkeybars it is, then.
···
(Yes, I realize I may just have to play around with these all and find
out. I'm just trying to get off the ground as quickly as possible.)
Best,
--
Marnen Laibow-Koser
http://www.marnen.org
marnen@marnen.org
--
Posted via http://www.ruby-forum.com/\.
In this case, I think being tied to JRuby may actually be an advantage. It's the only way I can see to have a cross-platform, easily distributable Ruby application. And it seems like both wxRuby and Shoes depend too much on native extensions to work with JRuby, and depend too much on MRI to distribute to general users.
Yes, I think you're right here. It's possible to create fully native packages using wxRuby etc, but there's no single cross-platform tool like RAWR. You have to use a mix of tools, eg Ocra for Windows, Platypus for OS X. RAWR is a credit to the developers.
a
Marnen Laibow-Koser wrote:
Never mind. I just realized that these will not be feasible for the current project because they will require a Ruby interpreter, and I don't want to even expect that my end-users will have *that*! (I'm targeting, among others, educational and corporate users who don't have admin rights and wouldn't know what to do with them if they had.) Monkeybars it is, then.
Users will still have to have Java installed to use a JRuby app.
···
--
James Britt
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