是否可以在运行之前将Ruby转换为C?

Dav*_*vid 0 c ruby interpreted-language compilation

问题是Ruby在运行时所做的事情.与C语言相比,它是一种解释语言,C语言是一种编译语言.它有多可行?Ruby每年都在变快,但是如何?做了什么?我们使用的方法(each,map等等)是用C语言编写的,加快了一切吗?长期目标是让Ruby像C一样快吗?尝试将用Ruby编写的内容转换为C然后让它运行时,最大的问题是什么?或者,这个问题没有任何意义吗?如果是这样,为什么?

cda*_*rke 5

Ruby为您提供了比C更多的功能.例如,C语言编程的缺点之一是程序员必须进行内存管理.这需要时间,自我贬低和技能.缺少任何这些都会导致错误和安全漏洞.但它产生了快速的运行时间,因为它是针对特定情况而不是一般情况而定制的.

使用Ruby,您可以专注于应用程序,而不是机制.它为您执行内存管理,这意味着(通常)更少的错误和更安全的代码.但是没有免费的午餐 - 你会因为运行时间增加而付费.

C是一种静态语言 - 必须在编译时对类型和操作做出决定.Ruby是一种动态语言,可以将决策推迟到运行时,从而产生更灵活和反应灵活的语言.比较C和Ruby就像比较苹果和橘子.

当然,你可以用C语言完成所有这些,Ruby是用C语言编写的,但你需要做很多工作,你最好成为一名该死的好程序员.