7

Open Dylan 看起来真的很有趣。但是,在我将它用于实际开发之前,我想知道它的实现有多成熟。我知道 Dylan 本身是一门古老的语言,它已被 Apple 使用。

4

3 回答 3

6

好吧,当前的实现 Open Dylan 是自 95 年以来由 Harlequin 和 Functional Objects 开发的,在 2003 年成为开源之前。

成熟度如何定义?编译器包括一个 IDE(仅限 Win32,抱歉)、CORBA、OLE,总共有 850000 行代码。这(几乎)是所有 Dylan 代码。

这意味着,与其他语言不同,它是自托管的。编译器本身是用 Dylan 编写的(除了一些用于运行时/垃圾收集器绑定的 C 行(约 4000 行代码)。后端是本机 x86 代码或 C。

请不要将此实现与周围的其他两个实现混淆:Gwydion Dylan(也是用 Dylan 编写的;以前在 CMU 开发,现在也是开源的),它将 Dylan 编译为 C;和 Apple Dylan(在 Apple 的大存储区某处关闭;)。

于 2011-12-15T00:42:28.350 回答
2

根据Hacker News 的评论,它还没有准备好。他们刚刚开始重振这个项目。

于 2011-12-11T18:48:51.187 回答
1

截至 2020 年 6 月 4 日,从https://github.com/dylan-lang/opendylan下载的 OpenDylan 项目中的文件分类包括:

Excel表格显示

所以你可以看到有 3,112 个 Dylan 文件,总字节数为 30,643,409,而 C 语言中只有 104 个文件,总字节数仅为 1,288,062 字节。这支持了 Hannes 的回答,但也可以量化一些事情。

为了不强调 stesch 的答案,这不再被认为是相关的……这看起来不像是一个“尚未准备好的项目”。这看起来也不像是一个刚刚恢复的项目。因此,请通过“stesch”打折可能具有误导性的答案。

我研究编程语言,而 Dylan 是我的第一选择,因为:

  1. 它建立在 Lisp 原则之上,一个非常坚实的基础
  2. 它是唯一的 Infix Lisp,最初是由 Apple 创建的,到目前为止,Apple 已经为用户创造了惊人的价值。
  3. 因为它是中缀,所以使用类 C 语言(JavaScript、C#、C、Java 等)的普通程序员能够更容易地学习一门强大而强大的语言。
  4. 这种语言具有完整的 Lisp 宏功能。在 C 语言中,宏语言似乎是固定的,是一种完全不同的语言,有时需要额外的括号才能使其工作,从而导致细微的错误。Lisp 宏在更高级别实现,在编译过程中更进一步,并且还使用相同的语言(Lisp)而不是完全不同的语言,因此它具有相同的“形状”并且更易于使用。宏的使用在 Lisp 语言中更为常见,因为它更容易,而且更强大。

如果你有兴趣,请阅读: D-Expressions: Lisp Power, Dylan Style

还有这个,为了理解Lisp 宏为什么以及如何强大: Let over Lambda -- 50 Years of Lisp 这是本书的大部分内容,在线,免费阅读。我为最后几章购买了这本书,一章是关于性能的,一章是在 Lisp 上实现 Forth,然后是在 Forth 上实现 Lisp。

领域特定语言是我们武器库中的一个巨大工具,但我们没有很好地使用它。Lisp 的宏功能(以及 Forth 的类似灵活性)允许动态定义 DSL,作为正在创建的解决方案的不可或缺的补充。您扩展了语言——在更常用的代码旁边提供表达解决方案的新方法。

在一个稍微偏离的话题上,我有点喜欢 Factor 作为一个更好的 Forth。由目前为 Apple 工作的天才 Slava Pestov 创建。

  1. 维基百科上的因子编程语言

  2. 因素网站

  3. Slava Pestov 关于 Factor 的 YouTube 演示

在他的视频中,Slava 解释说 Factor 是基于 Forth 和 Lisp 的。我打算深入研究它以找出这意味着什么,因为我一直希望寻找在其他语言中实现的真正 Lisp 风格的宏功能的存在。


编辑:

同样在 Slava Pestov 的 Factor 视频中,他解释了为什么他的面向对象的实现优于许多其他语言,我认为这非常重要,因为很多东西都建立在 OO 之上。

于 2020-06-04T13:07:02.587 回答