Lisp在现实世界中


146

我已经对Lisp(实际上是Scheme)进行了实验,发现它是一门非常美丽的语言,我有兴趣进一步学习。但是,似乎Lisp从未在严肃的项目中使用过,而且我还没有将Lisp列为任何职位发布中所需要的技能。我很高兴听到有人使用Lisp或看到它在“现实世界”中使用过,或者知道它是否被视为纯粹的学术语言。


1
@titaniumdecoy:刚发现Clojure并没有使用Lisp样式语言的经验之后,我为那些寻求使用Lisp话语的人添加了Clojure标签。:)
安德·特纳

1
@titaniumdecoy:Clojure是Lisp的后代,它在JVM上运行,并且能够利用用Java编写的API
Ande Turner,

12
我不会学习Lisp作为改善您的职业的方法,因为它不会。一定要学习它,使您成为一个更好的通用程序员。
skaffman

13
在Clojure邮件列表中,我们经常从使用该语言的人员那里获得行业成功案例。
雷恩,2009年

42
@skaffman:但这对您的职业发展没有帮助吗?
Erik Forbes,2009年

Answers:


88

Franz,Inc .在其网站上提供了详尽的成功案例列表。然而:

请不要假设Lisp仅适用于动画和图形,人工智能,生物信息学,B2B和电子商务,数据挖掘,EDA /半导体应用,专家系统,财务,智能代理,知识管理,机械CAD,建模和仿真,自然语言,优化,研究,风险分析,计划,电信和Web创作只是因为这些是它们碰巧列出的唯一内容。—肯特·皮特曼

我们可以在这里找到其他成功案例:http//lisp-lang.org/success/

以及使用Common Lisp的当前公司列表:https//github.com/azzamsa/awesome-lisp-companies


41
对我来说,那句话似乎是一个非常空洞的口头禅。当然,它可能存在于那些区域中,但随后大多是遗留代码。根据我的实际经验,Python与绕的C / C ++的结合已大大取代了Lisp,成为实用的黑客选择的快速原型语言。
约翰·科特林斯基

30
@kotlinski的证据在哪里?当您过度概括该行业时,您所谈论的是平均值,而不是平均值的最佳部分。成功的故事几乎每次都遵循独特且不太平均的技术/想法。
卢卡·拉米什维利 Luka Ramishvili)2012年

更多信息,请访问:lisp-lang.org/success(详细介绍)以及此处:使用Common LIsp的公司
Ehvince '19

54

Emacs的elisp计数吗?这是我所熟悉的最“真实世界”的用法(尽管我不确定Emacs也算作“真实世界”)。


不,但是vim有;)。不幸的是(或者幸运的是,没有人用)编写过严肃的软件vimscript
new123456 2011年



25

作为一家小型创业公司,我们已经建立了一些人称为“应用程序服务器”的东西。但实际上,它只是一堆用于sql连接和Web应用程序的集成通用lisp库。一些细节可以在cl-dwim项目页面

以此为基础,我们为匈牙利政府开发并运行了一个网络应用程序,该应用程序从地方政府收集数据并计算国家预算的相关部分。这是我们现在正在计划的第二个预算。

它有大约4000个用户,并且在计算机集群上运行。

从“学术语言”开始:我们正在为业务流程建模使用诸如持续性延续之类的东西。它是一些带有一些额外的与过程相关的原语和一些约束的随机Lisp代码。它可以在代码中的随机点处停止并在等待某些外部事件时入睡(进入数据库)。

是实用的还是学术的?你决定... :)


哇!我完全认为,考虑到其中大多数功能,政府使用的所有软件最多都是基本功能。还在使用吗?
RR 2012年

5
当然不是。。。一旦设计好项目,证明是可行的,并且分配了足够的金钱/注意力,我们就被抛弃了。一家联系良好的大公司接管,并用Java编写了自己的版本。一个有趣的消息是,他们多年来一直在运行我们的代码库。我为他们提供了一天的咨询服务……
Attila Lendvai 2012年


22

保罗·格雷厄姆(Paul Graham)使用并撰写了有关用LISP编写的ViaWeb的文章

在这里阅读有关内容-超越平均水平


4
那不是一个很好的例子,他们几年前就倒闭了
1800

9
顺便说一句,我能补充一点,我认为保罗在这件事上有妄想:不是LISP赋予了他们优势,只是聪明而专心。如果VB是手头上唯一的工具,他们本可以成功。
杰夫

23
他们并没有破产,而是被雅虎收购。差异很大,至少对开发商而言。:-)
Head Geek,

18
@ 1800:只有在Yahoo拥有它并用另一种语言重写它之后,它才会“掉进地下”,所以请停止稻草人。
wfarr

6
@ 1800:忘了马提亚斯所说的,我实际上认为它很有趣。您断言“在现实世界中没有其他LISP的重要例子”直接表明您是无所不知的。太棒了!
阿里


12

LilyPond是一个相当新的开源项目,仍在持续不断地进行大量开发活动。

这是一种音乐注释程序,它将易于编写的文本文件作为输入,并将其转换为精美的活页乐谱(pdf文件)。如果需要,提供各种方式来摆弄输出。它甚至可以产生听起来不错的Midi文件。每当需要制作精美的乐谱供其他音乐家阅读时,我都会使用它。我认为这比Finale好,而且免费

在商业类别中,还有Notehead的Igor雕刻机。不幸的是,该站点不允许我在指向Lisp的页面上发布直接链接,因此请下载并在底部查找“ Lisp”链接。

还有Naughty Dog(一家计算机游戏公司)在其游戏中使用Lisp。本文讨论了这一点,甚至显示了一些代码。

并提到了许多其他链接,但这些是引起我共鸣的主要因素(成为作曲家/程序员/游戏者/ ...类型)。


1
作为一名策划人,阅读LilyPond手册中解释Scheme如何成为LilyPond的一部分的部分很有趣,而且很有启发性。它曾经完全使用C ++编写,但是他们发现它需要由用户进行更多的编程,并且他们能够通过在Scheme中重写它的一部分并构建一个Scheme解释器(使用户可以访问LilyPond)来解决该问题。内部。
Lindsey Kuper

10

如果我现在开始自己的大型软件项目,那么我将根据上述标准做出语言决定。当然,我喜欢Lisp,CLOS非常棒,是真正的词汇作用域,Lisp宏非常酷(按指示使用时),我个人非常喜欢Lisp语法。[…]但是,如果我负责选择Lisp,那么要说服我为大型软件项目选择Lisp将花费很多,或需要特殊的情况。- 丹魏因勒卜


对-然后享受无法雇用任何人的乐趣:)
Jeff

@Jeff:“但是要说服我为大型软件项目选择Lisp 会花费很多,或者需要特殊的情况 ”。这是反对Lisp的观点。
jfs

这句话是从哪里来的?通过文本块进行谷歌搜索只会产生此帖子

您应该单击:“用省略的结果重复搜索”。引用来自:exploring.fogcreek.com/joelonsoftware/…–
克里斯·杰斯特·杨

5
干杯。我不得不说,在上下文之外,这句话的意思要强于事实。weinreb现在在ITA工作,并在博客中介绍有关Lisp的内容;我想知道这是否以及如何影响了他的意见。

10

最近一些:

  • Thanandar,德语浏览器游戏:http//www.thanandar.de/
  • 波兰企业家社区Aula Polska:http//www.aulapolska.pl/
  • LAMsight,医学检查应用程序:https ://www.lamsight.org/
  • Wigflip,一个愚蠢的gfx游乐场:http : //wigflip.com/ :)
  • Clutu,多人AJAX填字游戏:http ://www.clutu.com/

其中的前三个是使用CL网络框架Weblocks编写的。Wigflip和Clutu使用纯Hunchentoot。

现在获取编码!:)


10

哈勃太空望远镜是使用Lisp规划工具安排的。航天飞机是。韦伯望远镜将。我撰写Lisp的公司用于分析数十亿美元的健康保险理赔,即使在经济衰退期间,它仍以每年约30%的速度增长。我们已经被一家大公司收购,我们的一位程序员在一年内从零开始就完全匹配了(这家大公司)用于分析Medicare索赔的软件的输出(实际上有所改进)。(大型公司)的代码(不是用Lisp编写的)花了6年时间和几个程序员。从职业角度来看,麻烦在于太多的人听着关于“很多令人讨厌的傻括号”的烦恼,等等。大多数经理不会“理解”,而是希望以一种足够熟悉的语言来进行项目,以便他们可以进行微管理。他们认为 ”


9

我相信Autocad具有使用Lisp扩展产品的扩展。请参见AutoLISP


正确。它还实现了ActiveX-它非常强大,AtoDesk自己使用它来编写“内部”命令。基本上,它被解释为ObjectARX-C ++。
CAD bloke


8

许多公司,项目和产品都以不同的角色使用Lisp-我已经为其中的几个做过工作。

有两个相关点:

  1. 您可能永远不会知道最新的消费类电子产品是由Common Lisp内置或编程的,或者您所使用的某些服务是由Lisp服务器提供动力的。结论Lisp是“从未使用过的”是不正确的。

  2. ……而且,与许多领域一样,这些工作从未出现在Monster.com上。仅仅因为您从未见过职位发布,并不意味着就没有Lisp所需的工具或适合工作的工具。


那么,这些工作的出现?我一直在努力使自己困惑。
Charlie Flowers

2
根据经验:邮件列表,来自公司和招聘人员的直接个人邮件,亲自提及,用户组等。
丰富

1
谢谢。听起来您在说的是我在其他地方读过的同样的话... Lisp世界是一个很小的社区,您可以通过在该社区中做出贡献和知名度来利用它,这可能是获得Lisp的最好方法工作。你同意吗?
Charlie Flowers

5
是。此外,这是找工作的最好方法。展示您的技能,结识新朋友,并广为人知。
Rich


6

查找ACL2。这是一个基于Lisp的形式逻辑引擎,已用于许多“现实世界”项目中,例如软件安全性中的形式方法以及浮点硬件的正确性证明。


这是一个了不起的软件。
user37248 2009年


6

如果我的计划制定了,我们将在5年后使用Scheme!; p


我的计划可能非常相似:1)在方案之上创建一个kickass库(现在是中途路线)。2)通过在其中编写出色的程序来测试库(1个下来,还有更多要做)。3)开源库(已经完成,但是非常随意)。4)... 5)Lisp成为工作中的自然工具。
阿里

3
我为你拉。但是您只剩下两年半了!希望你走上正轨。
Charlie Flowers

10
你好 5年结束了。
Karol S

1
迟到总比没有好!
卢瓦克福雷-拉克鲁瓦

1
@LoïcFaure-Lacroix仍在尝试!:D
leppie

6

当我发现PRISM(“ Prism项目是为放射治疗计划构建软件工具,包括人工智能工具以及手动仿真系统”的长期项目)写在Common Lisp上时,我印象深刻。

在我的工作中,我正在编写使用DICOM的软件,我必须说,编写良好的DICOM实现是一项艰巨的任务。在他们的报告中,他们描述了Common Lisp如何使他们建立一个良好的DICOM实现,该实现(至少在某些方面)比其他实现更省力。


6

Lisp与Common Music库一起用于现实世界的算法音乐创作中。Rick Taube的“ 来自Metalevel注释”是该主题的精彩介绍性文字,其中包含Lisp中的大量示例以供撰写。请参阅此处的示例目录和此处的文本副本。


5

好吧,这几乎不是主流,但是我将lisp用于尽可能多的研究代码。这是我发现的动态性和表现力之间的平衡,同时仍然为数字等提供了不错的表现的最佳语言。



5

我现在才意识到,Maxima是用于符号代数的程序,是用Common Lisp编写的。我已经使用了很长一段时间,并且我认为这也是一个非常好的现实例子。




3

Lisp尝试在80年代初转向光速运动。在出现PC之前,已经出现了商业生产的“ Lisp机器”,其外观超级像现代工作站,但它们却“一直向下”。Lisp硬件最终输给了英特尔(其他所有方面也是如此)。Lisp软件最终输给了C / C ++。有各种各样的理论为什么会这样。 http://www.andromeda.com/people/ddyer/lisp/


2

FLUENT Flow Modeling Software(计算流体动力学,CFD)将方案编程语言用作脚本语言。



2

我看到一些人已经提到过它,但是lisp在自定义Autocad开发中被广泛使用。Autocad包含一个内置的Lisp解释器。它是扩展产品的最简单方法之一,并具有快速提高生产率的能力。

在用户侧不需要编译,并且可以在命令行上输入1个或更多行Lisp表达式,并在图形上立即执行。对于愿意走一小步来学习Lisp基础知识的设计师和制图员,它可以提供巨大的生产力。

Autocad确实提供了许多其他方式来定制其产品;ObjectARX(C ++),VB,C#等。lisp接口是迄今为止最容易学习和实现的接口。大多数其他开发环境以某种方式使用Lisp。

lisp解释器可在Autocad的早期版本中使用,称为变量和表达式。它是相当有限的,但是在用户中非常成功,因此很快添加了附加功能。后来,一个完整的可视化IDE出现了(我认为是2000版)。

我不愿意猜测Autocad可以使用几百万(数十亿?)行Lisp代码。在“ autocad .lsp”上进行的Google搜索返回230万次点击。

好的,足够的打字了,对我来说可以重新使用,为我当前的项目写更多的Lisp :)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.