Ruby对GUI开发有什么好处吗?

我正在考虑创建一个基于GUI的工具,我想要跨平台。 我已经解雇了Java,因为我个人不喜欢Swing。 我正在考虑使用C#并使用Mono来实现跨平台。 但是我想知道像Ruby这样的新型跨平台语言能否为我提供一个不错的GUI开发环境。

简短的回答:不(因为你说跨平台 )。

答案很长:跨平台的GUI是一个古老的问题。 Qt,GTK,wxWindows,Java AWT,Java Swing,XUL – 它们都遇到了同样的问题:生成的GUI在每个平台上看起来都不是原生的。 更糟糕的是,每个平台的外观感觉都略有不同,所以即使你能够以某种方式获得在每个平台上看起来都是原生的工具包,你也必须以某种方式编写你的应用程序以在每个平台上感觉原生。

这取决于一个决定:您是否希望最大限度地减少开发工作,并且在每个平台上都拥有一个看起来不太合适的GUI,或者您是否希望最大化用户体验? 如果选择第二个选项,则需要为每个平台开发一个公共后端和自定义UI。

对于你的共同后端,ruby不是一个糟糕的选择。

你将拥有Ruby / GTK ,它允许你在linux下使用GTK工具包。 我认为应该在Windows和Mac Os下工作(对于Gimp,Gaim等)。

法国杂志发表了一篇关于Ruby / GTK的初学者文章 。

编辑:根据SourceForge项目的主页,Ruby-Gnome2(又名Ruby / GTK)是跨平台的(Windows,Linux,Mac Os)。

Ruby有鞋 ,但可能有点轻量级。

使用Ruby,您可以使用Tk,这是一个成熟的跨平台UI工具包。 它是用于Python和Tcl的defacto GUI工具包,也可用于Perl。 最新版本的Tk使用本机小部件来解决Tk看起来过时的主要问题。

一个致力于Tk的语言中立网站是http://www.tkdocs.com/ ,其中包含用Ruby和Tcl编码的示例。

还有FXRuby ,它有一本Pragmatic Programmer书籍的好处,以及基于wxWidgets C ++ GUI框架的wxRuby 。

作为一名wxperl程序员,我知道wxruby也在那里。 Wx速度非常快,具有真正的跨平台外观和感觉。

请查看Ruby GUI 2008调查结果和此处的讨论。 你很想知道。

不确定Ruby,但是你提到了Mono / C# – 我最近使用过Mono和GTK#并且给我留下了非常深刻的印象。 看起来非常稳定,跨平台的可移植性很好。

Ruby / GNOME2运行得很好。 您可以使用Glade拖放窗口elemtns并从Ruby应用程序加载UI。

你看过Java上的SWT吗? 它使用本机小部件,并且比Swing更容易获得一个漂亮的界面。

Java仍然是一个选项,它也是一个不错的选择。 如果您想要使用SWT / JFace的原生外观。 您可以使用eclipse的RCP框架真正制作function强大的UI应用程序。

如果您冒险尝试使用Mac,请查看RubyCocoa 。 这显然只适用于OSX,但我看到很多人在寻求在Mac上进行GUI开发时会抓狂而且如果你喜欢ruby RubyCocoa很有趣。

我强烈支持Qt进行跨平台GUI开发。 它很棒,API非常直观。 GUI外观与Qt几乎是原生的,因为它使用底层操作系统提供的GUI控件。

虽然可以使用C ++其他语言绑定的基本界面。 对于Ruby RubyQt是可用的。 不幸的是,它还很不成熟。

我建议看看visualruby 。 它是一个使用ruby创建GUI的IDE。 它使用GTK作为其图形工具包,这些应用程序在任何平台上看起来都很棒。 您可以在屏幕截图页面上看到Win7,WinXP,Ubuntu和Mac上的屏幕截图:

http://visualruby.net/site/Screen%20Shots.html

您可以通过在各种平台上安装visualruby并运行示例程序,轻松地在每个平台上进行尝试。

检查的答案是在visualruby发布之前写的。