5

对于 Web 应用程序,我使用 Ruby on Rails。现在是时候看看我是否可以用 Ruby 编写桌面应用程序了。

所以我想知道我应该选择哪一个。

我看到它的方式是 MacRuby+IronRuby vs JRuby。

前者让我拥有适用于 Mac 和 Windows 的桌面应用程序,而后者让我拥有两者,但只学习一个工具。

  • 使用前者而不是后者有强有力的论据吗?

  • JRuby 桌面应用程序会像 MacRuby+IronRuby 桌面应用程序一样原生(或接近原生)吗?

  • 每种解决方案的优缺点是什么?

我也很新桌面开发。分享你的想法和经验!

4

2 回答 2

3

MacRuby使用本机 Apple Objective C 堆栈。
优点:它的类库基本上是Objective C GUI 类的包装器。您可以获得快速的本机应用程序。
缺点:只能在 Mac 上运行。它们也不能移植到 iPad 或 iPhone(没有任何 Ruby 解决方案)。

IronRuby使用本地 Windows .NET 框架。
优点:使用本机 WinForms 创建丰富的本机应用程序。它可以访问完整的 .NET 库生态系统。
缺点:仅在 Windows 上运行。

JRuby使用 Java 抽象层 (JVM)。
优点:可用的多个 GUI 库。最常见的是 SWT 和 Swing。SWT 使用原生小部件,速度更快,更原生。Swing 是纯 Java(模拟小部件)并且更便携。还有更多库抽象了 SWT 和 Swing 以使它们对 Ruby 更友好。以挥霍的挥霍为例。
缺点:一层之上一层之上一层。Swing 和 SWT 非常成熟,但它们之上的 Ruby 层则不那么成熟。

还有另一个选项
Ruby与 Qt 库。
Qt 是跨平台的,使用本机小部件并用 C++ 编写。它相当快,但图书馆既复杂又大。

我的经验法则是你的 GUI 越复杂,你应该越接近原生平台。您还需要评估每个图形库的学习曲线以及在平台之间移植所需的工作量。

于 2010-08-23T00:33:26.487 回答
1

IronRuby 的主要开发者很多,因此您可能需要仔细考虑这一点。 https://en.wikibooks.org/wiki/Ruby_Programming/GUI_Toolkit_Modules可能会有所帮助

于 2010-08-23T13:41:25.607 回答