Ruby对GUI开发有好处吗?
我正在考虑创建一个我希望跨平台的基于GUI的工具。我已经解雇了Java,因为我个人不喜欢Swing。我目前正在考虑使用Cand使用Mono使其跨平台。但是我想知道像Ruby这样的新型跨平台语言能否为我提供一个不错的GUI开发环境。
解决方案
Ruby拥有Shoes,但这可能有点轻巧。
不确定Ruby,但我们提到了Mono / C,我最近使用过Mono和GTKquite,对此印象深刻。似乎非常稳定,跨平台的可移植性很好。
使用Ruby,我们可以使用Tk,这是一个成熟的跨平台UI工具包。它是用于Python和Tcl的事实上的GUI工具包,也可以与Perl一起使用。 Tk的最新版本利用本机窗口小部件解决了Tk看起来过时的主要问题。
专门针对Tk的与语言无关的网站是http://www.tkdocs.com/,其中包含以Ruby和Tcl编码的示例。
我们将拥有Ruby / GTK,它使我们可以在Linux下使用GTK工具包。我认为应该可以在Windows和Mac OS(如Gimp,Gaim等)下工作。
一家法国杂志发表了一篇很好的关于Ruby / GTK的初学者文章。
编辑:根据SourceForge项目的主页,Ruby-Gnome2(又名Ruby / GTK)是跨平台的(Windows,Linux,Mac OS)。
简短的答案:不(因为我们说的是跨平台)。
长话短说:跨平台的GUI是一个古老的问题。 Qt,GTK,wxWindows,Java AWT,Java Swing和XUL都遇到相同的问题:生成的GUI并非在每个平台上都是本地的。更糟糕的是,每个平台的外观都有些许不同,因此,即使我们能够以某种方式获得在每个平台上看起来都是本机的工具包,也必须以某种方式对应用程序进行编码才能在每个平台上都具有本机的感觉。
这取决于一个决定:我们是否要最小化开发工作并且拥有在每个平台上看起来和感觉都不正确的GUI,还是我们想最大化用户体验?如果选择第二个选项,则需要为每个平台开发一个公共后端和一个自定义UI。
对于常见的后端,红宝石并不是一个不错的选择。
还有FXRuby,它得益于《实用程序员》一书,以及基于wxWidgets C ++ GUI框架的wxRuby。
Ruby / GNOME2运作良好。我们可以使用Glade拖放窗口元素,然后从Ruby应用程序中将其加载到UI中。
我们是否看过Java上的SWT?它使用本机窗口小部件,并且比Swing更容易获得良好的界面。
Java仍然是一个选择,它也是一个不错的选择。如果我们想要本机的外观,请使用SWT / JFace。我们可以使用eclipse的RCP框架真正制作功能强大的UI应用程序。
作为wxperl程序员,我知道wxruby也在那里。 Wx非常快,并且具有真正的跨平台外观。
如果我们尝试使用Mac,请查看RubyCocoa。它显然仅适用于OSX,但我已经看到很多人在Mac上进行GUI开发时挠头,如果我们喜欢红宝石,RubyCocoa会很有趣。
在这里查看Ruby GUI 2008调查结果和讨论。我们将很想知道。
我坚决支持Qt进行跨平台GUI开发。太棒了,API非常直观。 Qt的GUI外观几乎是本机的,因为它使用了底层操作系统提供的GUI控件。
尽管可以使用C ++的基本接口,但也可以使用其他语言绑定。对于Ruby,可以使用RubyQt。不幸的是,这还很不成熟。