我正在考虑创建一个我想要跨平台的基于 GUI 的工具。我不喜欢 Java,因为我个人不喜欢 Swing。我目前正在考虑使用 C# 并使用 Mono 使其成为跨平台的。但是我想知道像 Ruby 这样的新奇跨平台语言是否可以为我提供一个不错的 GUI 开发环境。
13 回答
简短的回答:不(因为你说cross-platform)。
长答案:跨平台 GUI 是一个古老的问题。Qt、GTK、wxWindows、Java AWT、Java Swing、XUL——它们都面临着同样的问题:生成的 GUI 并不是在每个平台上看起来都是原生的。更糟糕的是,每个平台的外观和感觉都略有不同,因此即使您能够以某种方式获得在每个平台上看起来都是原生的工具包,您也必须以某种方式编写应用程序以在每个平台上都感觉原生。
它归结为一个决定:您是想尽量减少开发工作并拥有一个在每个平台上看起来和感觉都不太正确的 GUI,还是想最大限度地提高用户体验?如果选择第二个选项,则需要为每个平台开发一个通用后端和自定义 UI。
ruby 对于您的公共后端来说不是一个糟糕的选择。
Ruby 有Shoes,但这可能有点轻量级。
您将拥有Ruby/GTK,它允许您在 linux 下使用 GTK 工具包。我认为这应该在 Windows 和 Mac Os 下工作(如 Gimp、Gaim 等)。
一家法国杂志发表了一篇关于 Ruby/GTK 的不错的初学者文章。
编辑:根据SourceForge 项目的主页,Ruby-Gnome2(又名 Ruby/GTK)是跨平台的(Windows、Linux、Mac Os)。
借助 Ruby,您可以使用 Tk,这是一个成熟的跨平台 UI 工具包。它是 Python 和 Tcl 的事实上的 GUI 工具包,也可与 Perl 一起使用。最新版本的 Tk 使用本机小部件,解决了 Tk 看起来过时的主要问题。
专门介绍 Tk 的语言中立网站是http://www.tkdocs.com/,其中包括用 Ruby 和 Tcl 编写的示例。
作为一名 wxperl 程序员,我知道 wxruby 也在那里。Wx 非常快,并且具有真正的跨平台外观和感觉。
看看Ruby GUI 2008 调查结果和这里的讨论。你会很想知道的。
不确定 Ruby,但你提到了 Mono/C#——我最近使用过 Mono 和 GTK#,印象非常深刻。似乎很稳定,跨平台的可移植性很好。
Ruby/GNOME2 运行良好。您可以使用 Glade 拖放窗口元素并从您的 Ruby 应用程序加载它的 UI。
你看过 Java 上的 SWT 吗?它使用原生小部件,并且比 Swing 更容易获得漂亮的界面。
如果您曾经冒险使用 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 发布之前编写的。