【发布时间】:2011-10-08 10:47:47
【问题描述】:
几乎每个 LISP 爱好者都声称该语言的主要优势之一是它可以适应问题,而不是让问题适应语言。我正在寻找在简单的商业软件或网络应用程序领域如何实现这一点的真实世界示例。除了 DSL,还有什么其他的吗?有没有足够复杂/不明显的例子?
PS:为什么我不能在标题中使用“问题”?
【问题讨论】:
几乎每个 LISP 爱好者都声称该语言的主要优势之一是它可以适应问题,而不是让问题适应语言。我正在寻找在简单的商业软件或网络应用程序领域如何实现这一点的真实世界示例。除了 DSL,还有什么其他的吗?有没有足够复杂/不明显的例子?
PS:为什么我不能在标题中使用“问题”?
【问题讨论】:
Here 是 Paul Graham 网站上的 lisp 应用程序列表。该页面包含来自许多不同领域的产品/公司。
除其他外,雅虎! Store 是基于 WAS lisp 的(Graham 的产品被雅虎收购)。感谢罗伯特指出。
我认为您可能会对以下 stackoverflow 帖子感兴趣:What is lisp used for today and where do you think it's going?
【讨论】:
Paul Graham 在 MIT 网站上发表的一篇文章讨论了他们从使用 lisp 为他们的初创公司 Viaweb 获得的优势:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/lecture-notes/lecture2lispstor.pdf
这篇文章值得全文阅读,但与您的问题相关的三个引述很突出:
而且我们在功能上总是远远领先于他们。 有时,在绝望中,竞争对手会尝试引入 我们没有的功能。但是使用 Lisp 我们的开发周期 速度如此之快,以至于我们有时可以在其中复制一个新功能 竞争对手在新闻稿中宣布它的一两天。经过 报道新闻稿的记者们开始打电话的时间 我们,我们也会有新功能。
在我们的竞争对手看来,我们一定有某种 秘密武器——我们正在解码他们的 Enigma 流量或 某物。事实上我们确实有一个秘密武器,但它更简单 比他们意识到的。没有人将其功能的消息泄露给 我们。我们只是能够比任何人都更快地开发软件 认为可能。
为了支持这一说法 [声明与上面的第一句话无关]我会告诉你 关于我在看另一件事时发现缺少的一件事 四种语言 [python、java、C、perl]。我想,你怎么能在他们身上完成任何事情, 没有z?对我来说,最大的 z 之一是宏。 [5] 许多语言都有一个叫做宏的东西。但是 Lisp 宏是 独一无二。
但我想我可以给出一种可能令人信服的论点。 Viaweb 编辑器的源代码大概在 20-25% 左右 宏。宏比普通的 Lisp 函数更难写, 并且在不使用它们时使用它们被认为是不好的风格 必要的。所以该代码中的每个宏都在那里,因为它必须 是。这意味着至少 20-25% 的代码在这个 程序正在做你在其他任何地方都无法轻易做到的事情 语言。
还值得注意的是,文章中的主要论点不是您应该使用 lisp。主要论点是你应该使用最强大的语言,而不是坚持使用你最熟悉的语言,这将是你的本能。在作者的案例中,语言是 lisp;对于许多现代公司,我想知道 Go 是否可能是当前的等价物?
【讨论】: