编程语言与软件工程2019european-lisp-symposium.org
SBCL:过去、现在与未来
SBCL – Past, Present, Future
入门 · 约 30 分钟读完前置知识:Common Lisp 基础、编译器基本概念
导读
这是 Christophe Rhodes 在 2019 年欧洲 Lisp 研讨会上的演讲幻灯片,回顾了 SBCL(Steel Bank Common Lisp)编译器的历史沿革,介绍其现状并展望未来发展方向。SBCL 是目前最活跃的 Common Lisp 开源实现之一,以高性能原生编译著称。
HN 关注点:HN 读者对 Lisp 生态和编译器实现有浓厚兴趣,SBCL 的演进历史与未来走向牵动整个 Common Lisp 社区的关注。
HN 评论精选
这几条评论里:质疑 1 补充 2 亲历 1
补充比较各 Lisp 方言的现状,认为 Common Lisp 略停滞、Racket 有潜力、Clojure 受 JVM 束缚
顺带问一句,现在投资时间学哪种 Lisp 最有前景?Common Lisp 仍有一些活跃度,主要来自 SBCL,但略显停滞,不过它有出色的文献和许多成熟的实现。Scheme 很棒但过于碎片化,Racket 势头渐起,与 Chez 的合并可能成为吸引关键数量开发者的转折点。Clojure 有很多有趣的现代理念,但与 Java/JVM 绑定太深,长期来看有些受损。我怀念类型化 Lisp 方向的创新,比如 Qi 或 Shen 从未流行起来,Carp 看起来不错。
nextos查看英文原文
Tangential question, but what Lisp is the most promising one to invest time on right now? Common Lisp still has some activity, mainly coming from SBCL, but is a bit stagnant. It has a fantastic literature and many mature implementations. Scheme is great, but a bit too fragmented. Racket seems to be gaining some momentum. The merge with Chez may be the tipping point to attract a critical mass of developers. Clojure has many interesting modern ideas, but I feel being so tied to Java and the JVM has hurt a bit in the long run. I miss a bit of innovation in the typed lisp area, like e.g. Qi or Shen which never took off. Carp [1] looks nice. [1] https://github.com/carp-lang/Carp
亲历资深开发者亲历 CL 历史,认为 SBCL 很好用,但 CL 生态本应更繁荣
很喜欢这些幻灯片,希望演讲视频也能放出。退休后我的业余项目大多用 SBCL,也写点 Haskell。我很敬重 Franz 和 LispWorks 这些商业产品,但 SBCL 对我的项目完全够用。我经历过幻灯片里讲的这段历史——从 1982 年至今,可惜我近 90% 的有偿工作用的是其他语言。如今有 Quicklisp、CL Cookbook 这样的好资源,CL 生态和已部署项目的数量本应更庞大。
mark_l_watson查看英文原文
I enjoyed the slides, and wish the talk video was available. Now that I am retired, most of my side projects use SBCL, with a little Haskell and other languages. I have great respect for the commercial Franz and LispWorks products but for my projects SBCL works great. I really enjoyed the history covered in his slides. I have lived through this history since 1982, but unfortunately almost 90% of my paid work has been in other languages. In our present time with great resources like Quicklisp, CL Cookbook, etc. I think that the CL ecosystem and number of deployed projects should be even greater.
补充用提交数据展示 SBCL 的核心开发者构成
供参考,在 SBCL 仓库运行 git shortlog -sn | head -n4 可以看到(截至目前):Douglas Katzman 4025 次提交、Stas Boukarev 2887 次、Nikodemus Siivola 1695 次、Christophe Rhodes 1596 次。
auvi查看英文原文
FYI, if you do a git shortlog -sn | head -n4 in the SBCL repo you get (as of now): 4025 Douglas Katzman 2887 Stas Boukarev 1695 Nikodemus Siivola 1596 Christophe Rhodes
质疑吐槽 PDF 幻灯片保留了逐步展开的重复内容,打印版应合并
一般性建议:增量式展示的幻灯片在打印版中应该被“归一化”,即合并重复内容。不确定是否有软件支持这一点,可能需要一些手动标记或分组。
ofrzeta查看英文原文
General side note: incremental slides should be "normalized" in a print version. Not sure if any software supports this. It would probably afford some manual tagging or grouping.
相关资源
从这篇论文所有 HN 讨论帖的全部评论里整理出来的链接。
历次讨论
- 2019Hacker News 讨论帖206 分 · 48 评
同领域还值得读
Google 的软件工程(2017)
Software Engineering at Google (2017)
介绍了 Google 的软件工程实践,包括其单一代码库(monorepo)、几乎全部开发在主干进行而非分支、代码审查、构建系统 Blaze、协议缓冲区等工具与流程,并讨论了频繁重…
编程语言与软件工程2017 · 1,127 分 · 465 评 · 引用 15入门 · 约 45 分钟编辑精选Peter Naur:编程作为理论构建 (1985)
Peter Naur – Programming as Theory Building (1985)
Peter Naur 1985 年的经典论文《Programming as Theory Building》提出:编程的本质不是写代码或文档,而是在程序员头脑中构建对程序及其运行…
编程语言与软件工程2016 · 629 分 · 74 评入门 · 约 45 分钟编辑精选SciPy 1.0:Python 科学计算的基础算法
SciPy 1.0: fundamental algorithms for scientific computing in Python
这篇发表于 Nature Methods 的论文介绍了 SciPy 1.0——Python 科学计算生态的基石库,涵盖其核心算法模块(优化、积分、插值、线性代数等)、软件架构与社…
编程语言与软件工程2020 · 387 分 · 98 评入门 · 约 45 分钟编辑精选Lisp 的历史(1979)
History of Lisp (1979)
这是 Lisp 发明者 John McCarthy 于 1979 年为 HOPL(编程语言史)会议撰写的回顾文章,讲述 Lisp 的起源、设计动机与早期演进,文中也涉及 if 表…
编程语言与软件工程2018 · 352 分 · 44 评入门 · 约 45 分钟编辑精选使用 NumPy 进行数组编程
Array Programming with NumPy
这篇 Nature 文章介绍 NumPy 的数组编程模型及其在科学计算中的核心作用:以 ndarray 为中心,通过向量化操作让 Python 高效处理多维数组。
编程语言与软件工程2020 · 318 分 · 134 评入门 · 约 40 分钟编辑精选