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 越复杂,你应该越接近原生平台。您还需要评估每个图形库的学习曲线以及在平台之间移植所需的工作量。