Ruby GUIs and installation effort

I think one GUI system dos not depends others except ruby will bee more flexible.

R. Mark Volkmann wrote:

I'm concerned about the state of GUI toolkits for Ruby when in comes to
installation requirements, particularly under Mac OS X. I'm think about the
case where we want to create a Ruby-based GUI application for non-developers to
use.

I recently went through the steps to get Tk working with Ruby under Mac OS X.
It was fairly complicated. After all that work I found that GUIs I had created
under Windows didn't look very good on Mac OS X. I then decided to try FOX.
That required downloading the X11 software from Apple. I installed that and
then found that I didn't automatically get the X11 library files that are
needed in order to build FOX. Maybe I'll get this figured out eventually.

The bottom line is that even if you take the time to write a great GUI app.
using Ruby, your audience of potential users will likely be quite small.
Installing Ruby is easy enough, but setting up a GUI toolkit is prohibitively
complex for a non-developer. Compare this to Java. Install the Java Runtime
Environment or use Java Web Start and Swing is available.

One answer is to create web apps instead. That's not appropriate for every
application though.

Do others think this is an issue?

--
R. Mark Volkmann
Partner, Object Computing, Inc.

Complete sense. What we need is an interface to make use of many toolkits
Ex. Swing. I've been using WideStudio, but the main complaint is from MacOS
users(it needs X11, and its not "pretty" like Cocoa). The main problem with
these toolkits like wxWidgets(aka wxWindows, changed because M.S. forced
them to change the name) are 1) lack of features, and 2) glitches between
operating systems.

What you say is not really an issue at all. On unicies you are required to
downloaded needed runtime libraries. This also includes MacOSX. Simply
download and install the needed libraries. If they are too difficult get a
computer specialist to install them for you. Libraries are the main
issue, if
they are not in the system, it can be problematic to the non-tech savy user.

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

_______________________________________________
programming is my life
my blog:http://blog.itpub.net/liubin
http://www.ruby-cn.org/

Here's an idea

XML/YAML based GUI Element Description Language

Using this language, all we need is a blank canvas to render the GUI
Elements/widgets to.

Something like

<guiElement name='button'>

   <create>
       <cstr>
           <parm name='name'>
                <setVariable name='name'>
           </parm>
           <parm name='x'>
           </parm>
       </cstr>
   </create>

  <render>
    <box>
       <x><variable name='x'/></x>
       <y><variable name='y'/></x>
       <w>100</w>
       <h>100</h>
    </box>
    <shade>
    </shade>
    <font face='Arial' size='10'/>
    <text><variable name='label'/></text>
  </render>

   <events>
   <events>

</button>

Plenty of oportunity to cache rendered bitmaps for efficiency.

bin liu wrote:

I think one GUI system dos not depends others except ruby will bee more flexible.

Complete sense. What we need is an interface to make use of many toolkits
Ex. Swing. I've been using WideStudio, but the main complaint is from MacOS
users(it needs X11, and its not "pretty" like Cocoa). The main problem with
these toolkits like wxWidgets(aka wxWindows, changed because M.S. forced
them to change the name) are 1) lack of features, and 2) glitches between
operating systems.

What you say is not really an issue at all. On unicies you are required to
downloaded needed runtime libraries. This also includes MacOSX. Simply
download and install the needed libraries. If they are too difficult get a
computer specialist to install them for you. Libraries are the main issue, if
they are not in the system, it can be problematic to the non-tech savy user.

David Ross
   

Sure. This type of framework would be more flexible, but what about
the people who use different languages? I definiately don't want to
embed/use a ruby based gui frame work. Eclipse is an abomination
to any work for me. This type of framework you describe can be
real bothersome to people. There is no way to tackle the issue of GUIs
because everybody has thier own choice. (ex. BSD vs. Linux) I could argue
all day about the annoyances in each and every GUI toolkit out there,
even WideStudio. The GUI toolkit choice is up to the user, if the develoer
has a disagreement with design in the code... send patches. There is no
thing as a perfect toolkit.

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

impossible. too slow. you would have to write half in c in any case

Alex

···

On Nov 25, 2004, at 6:23 AM, bin liu wrote:

I think one GUI system dos not depends others except ruby will bee more flexible.

Sure. This type of framework would be more flexible, but what about
the people who use different languages? I definiately don't want to
embed/use a ruby based gui frame work. Eclipse is an abomination
to any work for me. This type of framework you describe can be
real bothersome to people. There is no way to tackle the issue of GUIs
because everybody has thier own choice. (ex. BSD vs. Linux) I could argue
all day about the annoyances in each and every GUI toolkit out there,
even WideStudio. The GUI toolkit choice is up to the user, if the develoer
has a disagreement with design in the code... send patches. There is no
thing as a perfect toolkit.

David Ross

I disagree that it's unhelpful.

Look at Swing - a minimum of native components, with many lightweight
widgets based on these. This means loose binding to the platform and hence
better/easier portability.

Such a system would become a natural choice over existing frameworks for
all-Ruby projects.

Obviously, for projects that include Python, C, whatever, you're right that
it's not ideal. I'm not sure how important this is, although, thinking about
Java, it may be more important than I have considered it.

I think I'd vote for XML-based systems (XUL or XAML) to deal with these
problems rather well, if I had any experience with them.

What about an XUL-interpreting framework for Parrot?

Cheers,
Dave

Lyndon Samson ha scritto:

Here's an idea

XML/YAML based GUI Element Description Language

I don't really like xml/yaml based gui description, but consider that Gtk/glade, wxruby/xrc , qtruby/qtdesigner all use xml files fto describe a gui. Maybe we need an xslt trsformation :slight_smile:

Anyway, also consider that Sean Russel is/was sorking on a cross-gui gui package wich used an xmlish interface, XUL, IIRC.
http://raa.ruby-lang.org/project/rouge-gui/

Dave Burt ha scritto:

Look at Swing - a minimum of native components, with many lightweight widgets based on these. This means loose binding to the platform and hence better/easier portability.

It seem to me that many people "hate" swing, consider it one of the main reason think that java is slow, and generally think SWT is much better.

Anyway, I really don't think a real cross platform gui is possible.
Gtk, and wxWidget both use some basic things and build over them to gain portability.
But even in this case you're requiring the user to install it, and stuff like the platform's interface guideline would be messed up.

I think that stuff like wxruby (or tk, wich I'm told can work with Aqua) is the best you can get.

just my 0.02 euro

Dave Burt wrote:

Sure. This type of framework would be more flexible, but what about
the people who use different languages? I definiately don't want to
embed/use a ruby based gui frame work. Eclipse is an abomination
to any work for me. This type of framework you describe can be
real bothersome to people. There is no way to tackle the issue of GUIs
because everybody has thier own choice. (ex. BSD vs. Linux) I could argue
all day about the annoyances in each and every GUI toolkit out there,
even WideStudio. The GUI toolkit choice is up to the user, if the develoer
has a disagreement with design in the code... send patches. There is no
thing as a perfect toolkit.

David Ross
   
I disagree that it's unhelpful.

Look at Swing - a minimum of native components, with many lightweight widgets based on these. This means loose binding to the platform and hence better/easier portability.

I've to agree with everybody else on this small fact. Swing is slow
as molasses, and everyone that creates a big apps with Java using
guis knows how slow Java can be. I believe that MagicDraw UML is
the program which is offering thier apps in a Java to C++ compiler
due to the slowness of Java, the Swing is so bloated the program
operates so slow its terrifying.

* all references to Java refer to Sun's slow implementation

Such a system would become a natural choice over existing frameworks for all-Ruby projects.

Obviously, for projects that include Python, C, whatever, you're right that it's not ideal. I'm not sure how important this is, although, thinking about Java, it may be more important than I have considered it.

I think I'd vote for XML-based systems (XUL or XAML) to deal with these problems rather well, if I had any experience with them.

I've looked into XUL, and used it some. Its great for RAD. I've only
used it in small projects with mozilla. There is actually a XUL generator
for Python, but some people don't want thier apps open-source.
Yes yes, ruby isnt byte encoded, but one could create the lib to
the gui in another lanauge and link/load.

What about an XUL-interpreting framework for Parrot?

*grin*

Cheers,
Dave

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

Dave Burt ha scritto:

Look at Swing - a minimum of native components, with many lightweight
widgets based on these. This means loose binding to the platform and
hence better/easier portability.

It seem to me that many people "hate" swing, consider it one of the main
reason think that java is slow, and generally think SWT is much better.

I'm happy to leave the AWT/Swing debate to c.l.j; suffice it to say my view
is Swing's API's far better designed (which is more important from toolkit
user's perspective than how easy it is to port)

Anyway, I really don't think a real cross platform gui is possible.

Why not?

Gtk, and wxWidget both use some basic things and build over them to gain
portability.
But even in this case you're requiring the user to install it, and stuff
like the platform's interface guideline would be messed up.

I think that stuff like wxruby (or tk, wich I'm told can work with Aqua)
is the best you can get.

I don't think anything we have now is the best you can get :slight_smile:

Maybe the only practical approach to having a Portable Ruby GUI Framework
(PRGF) is an incremental approach, getting the likes of wx, tk, maybe even
Gtk, up to speed on the platforms they're behind on.

Call me nuts, I just like the idea of a Ruby toolkit that works out of the
box on Windows, Mac and *nixes like so much of Ruby's useful libraries.

just my 0.02 euro

Darn -- outbid! My AUD $0.02 is worth little more than half that, at current
market rates. I guess you win :slight_smile:

Cheers!
Dave

···

"gabriele renzi" <rff_rff@remove-yahoo.it> wrote:

D Burt :What about an XUL-interpreting framework for Parrot?
D Ross : *grin*
D Burt : I'm glad someone enjoyed it :slight_smile:

"David Ross":

Swing is slow as molasses [...]
I've looked into XUL, and used it some. Its great for RAD. [...]
[*]Some people don't want thier apps open-source.[*]
Yes yes, ruby isnt byte encoded, but one could create the lib to
the gui in another lanauge and link/load.

What about XUL for user-interface description with closed-source (native?
Parrot?) application code? Is this sort of thing possible?

gabriele renzi wrote:

Dave Burt ha scritto:

Look at Swing - a minimum of native components, with many lightweight widgets based on these. This means loose binding to the platform and hence better/easier portability.

It seem to me that many people "hate" swing, consider it one of the main reason think that java is slow, and generally think SWT is much better.

Java isn't that slow. We use it for some applicationst that do some heavy market share calculation and graphical branding and it don't lag.

Zach

David Ross wrote:

Dave Burt wrote:

Sure. This type of framework would be more flexible, but what about
the people who use different languages? I definiately don't want to
embed/use a ruby based gui frame work. Eclipse is an abomination
to any work for me. This type of framework you describe can be
real bothersome to people. There is no way to tackle the issue of GUIs
because everybody has thier own choice. (ex. BSD vs. Linux) I could argue
all day about the annoyances in each and every GUI toolkit out there,
even WideStudio. The GUI toolkit choice is up to the user, if the develoer
has a disagreement with design in the code... send patches. There is no
thing as a perfect toolkit.

David Ross
  
I disagree that it's unhelpful.

Look at Swing - a minimum of native components, with many lightweight widgets based on these. This means loose binding to the platform and hence better/easier portability.

I've to agree with everybody else on this small fact. Swing is slow
as molasses, and everyone that creates a big apps with Java using
guis knows how slow Java can be.

I don't entirely agree here.

  I believe that MagicDraw UML is

the program which is offering thier apps in a Java to C++ compiler
due to the slowness of Java, the Swing is so bloated the program
operates so slow its terrifying.

Swing is bloated yes, but it is not as slow as you suggest. I disagree on reasons for developing software written in java which does heavy calculation and graphical manipulation.

Zach

I'm happy to leave the AWT/Swing debate to c.l.j; suffice it to say my view
is Swing's API's far better designed (which is more important from toolkit
user's perspective than how easy it is to port)

not awt. swt.

Anyway, I really don't think a real cross platform gui is possible.

Why not?

because to target mac os x, windows, gnome, or kde,
in *every* case you need an *entirely* different look
and feel. this just isn't possible with the standard
mechanisms used in gui creation.

let me summarize:
  layouts are *just too low-level*

Alex

···

On Nov 25, 2004, at 2:03 PM, Dave Burt wrote:

Quoting Dave Burt <dave@burt.id.au>:

Call me nuts, I just like the idea of a Ruby toolkit that works out of the
box on Windows, Mac and *nixes like so much of Ruby's useful libraries.

This is the state I'm hoping we reach at some point ... a one-click installer
for all major platforms that includes the most commonly used GUI libraries.

···

--
R. Mark Volkmann
Partner, Object Computing, Inc.

Zach Dennis ha scritto:

Java isn't that slow. We use it for some applicationst that do some heavy market share calculation and graphical branding and it don't lag.

I agree, I just said that people usually think "mh.. this grey/violet gui is little responsive, the java virtua machine must be slow!".
This happens to me at least one time a week, I'm sick of explaining it is swing not the jvm that is slowish :slight_smile:

R. Mark Volkmann wrote:

Quoting Dave Burt <dave@burt.id.au>:

Call me nuts, I just like the idea of a Ruby toolkit that works out of the
box on Windows, Mac and *nixes like so much of Ruby's useful libraries.
   
This is the state I'm hoping we reach at some point ... a one-click installer
for all major platforms that includes the most commonly used GUI libraries.

That specific method would mean an insanely huge download. It would
need to be split into seperate packages. You still have a limited
interface like wxWidgets though, so for real work it just won't do
unless its a simplistic application.

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/

"Alexander Kellett" <ruby-lists@lypanov.net>:

I'm happy to leave the AWT/Swing debate to c.l.j; suffice it to say my
view
is Swing's API's far better designed (which is more important from
toolkit
user's perspective than how easy it is to port)

not awt. swt.

Goes to show I should have left the Java bit alone.

Anyway, I really don't think a real cross platform gui is possible.

Why not?

because to target mac os x, windows, gnome, or kde,
in *every* case you need an *entirely* different look
and feel. this just isn't possible with the standard
mechanisms used in gui creation.

let me summarize:
layouts are *just too low-level*

I disagree that they inherently are.

Consider web applications as an example of how a platform-independent GUI
spec can be loaded in the platform's look-and-feel. Mozilla's XUL browsers
extend this idea into the realm of usable interface-building. It's possible.

Cheers,
Dave

···

On Nov 25, 2004, at 2:03 PM, Dave Burt wrote:

Hello Dave,

"Alexander Kellett" <ruby-lists@lypanov.net>:

I'm happy to leave the AWT/Swing debate to c.l.j; suffice it to say my
view
is Swing's API's far better designed (which is more important from
toolkit
user's perspective than how easy it is to port)

not awt. swt.

Goes to show I should have left the Java bit alone.

Anyway, I really don't think a real cross platform gui is possible.

Why not?

because to target mac os x, windows, gnome, or kde,
in *every* case you need an *entirely* different look
and feel. this just isn't possible with the standard
mechanisms used in gui creation.

let me summarize:
layouts are *just too low-level*

I disagree that they inherently are.

Consider web applications as an example of how a platform-independent GUI
spec can be loaded in the platform's look-and-feel. Mozilla's XUL browsers
extend this idea into the realm of usable interface-building. It's possible.

No it's not. If you want to confirm to apples user interface
guidelines you have to use exact spacing (12 pt here, 14 pt there,
round help icon button to the right of a dialog, make cancel the
default button not okay, .... ) and a specific way to layout fields
in a dialog. Okay some of the MacOSX applications
don't do this (even some of apple's own).

Mozilla does not look really native to apple users. It has the same
look but not the same feel.

···

On Nov 25, 2004, at 2:03 PM, Dave Burt wrote:

--
Best regards, emailto: scholz at scriptolutions dot com
Lothar Scholz http://www.ruby-ide.com
CTO Scriptolutions Ruby, PHP, Python IDE 's