0

是否有可能设计一种静态类型的 JIT 语言来构建像 Ruby on Rails 这样的 Web 框架,以尝试获得静态类型语言的速度?

html 中的嵌入式 Ruby (eRuby) 是 Ruby on Rails 的一项功能,我看不到在静态类型的 JIT 或编译语言中实现的明显方法。

我不熟悉 Ruby on Rails 实现的内部结构,但更一般地说,Ruby on Rails 是否还有其他功能很难用静态类型的 JIT 或编译语言实现?

4

1 回答 1

0

当然。它不一定能实现您想要的(动态类型只是使优化更难的许多事情之一,您所知道的“快速”语言在静态类型之外进行了许多权衡以实现该性能),但这是完全可能的。事实上,它正在完成。ASP.NET MVC 拥有 Razor 视图引擎已经有一段时间了,它具有静态类型的模板语言。与 C#/VB.NET 相比,少数限制(例如,我认为您不能声明类)是设计决策,而不是技术问题。基本上,您需要做的就是解析模板,从代码中分离(例如)HTML,并生成输出应根据模板输出的字符串的代码。

现在,Ruby on Rails 专门大量使用了 Ruby 的动态特性。虽然许多“静态类型”语言确实具有反射功能,可以实现类似的东西(尽管更冗长),并且其他元编程结构可以很好地输入,但我怀疑你可以简单地将 RoR 移植到运行静态类型语言,尤其是如果您希望最终结果在任何地方都方便。受现有框架的启发,创建一个新框架可能会更好。这已经完成了。一千次。按语言。

于 2012-12-07T20:46:54.590 回答