有人尝试过Crystal编程语言(机器代码编译的Ruby)吗?

33
像许多人一样,我一直坚信“Ruby永远不可能有一个纯编译器,因为这门语言过于动态,无法使用静态编译器。”但最近我发现了这些项目:

GitHub上的Crystal编程语言

静态编译的Ruby

这两个项目似乎非常有趣。它们可以给我们原生编译语言的速度(以及通常需要商业要求、混淆代码的编译语言),同时保持Ruby的所有(或大部分)优雅和灵活性。添加一个良好的支持库(或更可能的是访问现有的C++库),你就可以轻松理解为什么这些东西很有趣。有人试过Crystal语言吗?(我还没有,因为ruby-llvm编译问题)他/她对此有何感想?您认为,鉴于这些设计选择,是否实际上可以开发出一个本地代码(机器代码)编译器来编译Ruby(在合理的努力和时间范围内)?这是否具有意义?

如果编译器是正确的,它怎么可能失去意义呢? - Marcin
1
开发这样一个编译器是否有意义(也就是:有用的)呢,当然有。我怎么会如此愚蠢地认为编译器本身不可能有意义(也就是:正确)。 - AlexBottoni
据报道,JRUBY的速度与任何其他Java应用程序一样快。我曾经使用Smalltalk,并认为它非常慢...然而,实际上是我们使用的IDE导致了延迟。实际上,Smalltalk模块本身是从C和C++运行时中使用的。我的意思是说,奇特的语言可以很快;正如爱迪生所说的那样,“天才是1%的灵感加99%的汗水”。 - will
2个回答

46

我是 Crystal 的开发人员。目前,列表中列出的并没有完全实现,事实上类的实现也只是刚开始。

虽然我非常喜欢这个想法,但我需要更多时间来思考如何实现它。嘿嘿。

第二篇文章有完全不同的方法,因为它不会引入一种新语言:它只会尝试编译 Ruby 的一个子集,或者可能会被编译成本地代码,但仍允许一些动态性能成本(我几个月前曾与该文章的作者交谈过)。

对于这两种方法,我的感觉是:如果它能够实现就太好了。我们需要一种快速的语言,具有优雅,可读且易用的语法和库(就像 Ruby 所提供的那样)。


4
如果你能让它运作起来就太棒了。我想不断地磨练和提高我的技能,并将它们直接应用在CPU玻璃上。 - Alex Nye
5
如果你想关注它的发展,请访问:http://github.com/manastech/crystal - asterite

12

我是Foundry的开发者;第二篇文章是我的。

关于同一主题的较新文章可以参考“嵌入式开发人员的一种语言”,或者您也可以通过订阅foundry-lang.org 跟踪开发进度。

但请注意,我的项目是商业性质的,(至少最初)不是开源的,并且主要专注于嵌入式开发。当然,您仍然可以在桌面或服务器上使用它。

我还是ruby-llvm维护者之一;请将遇到的问题报告为项目页上的错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接