0

我一直在摆弄 ruby​​ on rails。但我的问题真的很简单。ruby 使用的语言是否用于桌面应用程序?我的意思是没有Rails?例如,它可以与 GUI 包和图形库相结合来创建游戏吗?我读过 ruby​​ 是基于 C 的。所以它会很快,对吧?

4

4 回答 4

16

ruby 使用的语言是否用于桌面应用程序?

是的。

我的意思是没有Rails?

是的。

例如,它可以与 GUI 包和图形库相结合来创建游戏吗?

是的,可以。

我读过 ruby​​ 是基于 C 的。所以它会很快,对吧?

不,它不会像 C 一样“快”,因为这不是 Ruby 的重点。Ruby 在任何意义上都不是“基于”C 的。运行 Ruby 代码的解释器可能是用 C 编写的(有很多解释器,但并非全部都是),但这与语言本身无关。C 和 Ruby 并没有真正的可比性,并且占据着完全不同的细分市场。

于 2012-05-10T17:56:19.547 回答
3

我对速度至关重要的程序没有经验;但是,根据我的经验,Ruby 对于具有 GUI 的用户应用程序来说已经足够快了,并且与其他类似的动态语言几乎没有区别(Ruby 1.9 有时甚至更快)。

我不命名“相似语言”是有原因的:我认为语言基准根本没有用。虽然 Ruby 对于通用编程来说足够快这一事实可能会让您感到高兴,但我认为更重要的是,如果您已经了解并喜欢 Ruby,那么您将更有效率地使用它。

在某些限制情况下,Ruby 甚至会比 C 更快:您在 C 中对作为 Ruby 核心 lang 和 std lib 中的方法提供的函数的实现可能比 Ruby VM 中的慢。这只是说,速度通常不是问题,除非您实际上很清楚应该关注速度的特定原因。

一些不错的 GUI 库是FXRubyShoes ,这是在Hackety Hack项目中用于教孩子编程的一个非常简单的库。在使用 Ruby 和 Python 编程时,我通常使用Tk,因为它包含在标准库中,无需安装其他任何东西。

对于游戏,您可以尝试GosuChingu;Gosu 可能是开发最活跃的 Ruby 游戏库,Chingu 是基于 Gosu 提供的基础的一个很好的类集合。他们没有其他游戏库(例如 Pygame)的良好社区,但您可以轻松地开始使用它们制作小游戏。

于 2012-05-10T18:00:30.570 回答
1

查看鞋子 GUI,它有不同的实现,每个都有一个颜色名称,最流行的红色和绿色鞋子,它们通常用于制作你在 Flash 或常规 javascript 中看到的那种游戏。它们对于那种游戏来说已经足够快了。一些实现甚至可以使用 JRuby。

于 2012-05-10T19:03:49.213 回答
0

Ruby是一种语言,其通用实现(例如ruby​​-1.9.3-pl94)是用 C 编码的解释器。 Filemain.c包含 C 中的函数,该main函数在 file 中设置用 C 实现的 Ruby VM vm.c

您可以有多个 Ruby 实现。听说有人想在Parrot VM上重新实现 Ruby (本身是用 C 实现的);但这项努力或许仍在进行中。JRuby是 JVM 之上的 Ruby。

事实上,解释器与编译器并没有太大的区别。许多解释器包含一个带有该 VM 的翻译器(您可以将其视为编译器)的虚拟机一些 VM 实现有一个即时动态的机器代码翻译器。JIT 部分动态生成机器代码。

您可以使用例如Ruby-Gnome编写图形应用程序,它是 Gnome 和 Gtk 的粘合剂。您还可以使用Ruby Qt,它是 KDE 和 Qt 的粘合剂

于 2012-05-10T17:57:24.783 回答