问题在于Ruby在运行时所做的事情。与C语言相比,它是一种解释语言,而C语言是一种编译语言。它的可行性如何?Ruby每年都在变得更快,但怎么做到的呢?正在做什么?我们经常使用的方法(each
, map
等)是用C编写的吗?长期目标是让Ruby像C一样快吗?当试图将用Ruby编写的内容转换为C语言,然后让它运行时,最大的问题是什么?或者,这个问题没有意义吗?如果是,为什么?
Ruby为您提供了比C更多的功能。例如,用C编程的一个缺点是程序员必须进行内存管理。这需要时间、自律和技巧。缺少这些都会导致bug和安全漏洞。但是它产生快速的运行时,因为它是针对特定情况而不是一般情况量身定制的。
使用Ruby,您可以专注于应用程序,而不是机制。它为您做内存管理,这意味着(通常)更少的bug和更安全的代码。但是天下没有免费的午餐,你得为增加的运行时间付出代价。C是一种静态语言——关于类型和操作的决定必须在编译时做出。Ruby是一种动态语言,在这种语言中,决策可以推迟到运行时进行,从而形成一种更灵活、反应性更强的语言。比较C和Ruby就像比较苹果和橘子。
当然,你可以用C完成所有这些,正如你所指出的,Ruby是用C编写的,但这是一个大量的工作,你最好是一个该死的优秀程序员。