OpenDylan是一种摆脱了大量括号的Lisp语言,正如John McCarthy最初为LISP-2设想的那样。
OpenDylan 2025.1是OpenDylan项目的最新版本,包含了多项实用的功能增强。新增了LSP插件lsp-dylan,可在兼容编辑器中提供语法高亮和代码自动补全功能。命令行项目管理工具已从dylan重命名为deft,以减少歧义。此外还修复了bug,更新了库文件,并改进了文档。
这些改进虽然看似微小但十分实用,表明该语言仍在积极开发中。Dylan("Dynamic Language"的缩写)已经存在了三十多年,是一门与众不同的有趣编程语言。
Dylan的起源可以追溯到苹果Newton项目。Newton设备在John Sculley领导下问世,这款设备非常出色,它促使苹果选择了Acorn的ARM芯片——这颗强大的小型处理器曾搭载于世界首台大众市场RISC计算机Acorn Archimedes中。对于1990年代初期的便携设备而言,Newton拥有令人难以置信的强大性能。
然而,Newton的最初计划要更加雄心勃勃:打造一台口袋式Lisp机器。尽管苹果最终选择了用C++和NewtonScript编写的更简单操作系统,但幸运的是Dylan语言被苹果开源,并作为自由开源项目延续至今。苹果原始工程师之一Mikel Evins曾多次谈论Dylan语言的发展历程。
Lisp是一门出色的编程语言,其代码和数据结构相同的特性备受Lisp爱好者推崇。Lisp是"List Processing"的缩写,Lisp代码以列表形式编写,因此Lisp程序可以操作自身的代码。这种特性有时被称为"同像性",尽管这是一个复杂的概念。
虽然Lisp爱好者称赞其强大功能,但对外人来说,Lisp似乎在奇怪、陌生的地方包含了大量括号。
这并非Lisp创造者John McCarthy的初衷。他计划推出LISP 2,采用更传统的类ALGOL语法。尽管McCarthy的LISP 2从未实现,但后来出现了多次创建更传统外观Lisp变体的尝试。早期尝试包括Vaughan Pratt的CGOL。原始EMACS共同开发者之一David Moon也参与了苹果Dylan的开发,后来发布了PLOT计划,即"老程序员编程语言"。最近,他还参与了Julia这门同像性语言的开发。
这正是Dylan的独特之处:它得以实现、发布,至今仍然存在并持续维护。
OpenDylan项目提供了易读的Dylan介绍和Dylan参考手册。项目负责人Oliver Steele曾提到一个有趣的细节:
"我相信设计中缀语法的Mike Kahl试图让它看起来像Pascal。在当时(1991年?),这可能比在今天大多数语言都使用标点符号作为标点符号的世界中看起来更好。
我实际上为Dylan实现了更像C语言的(即大括号)语法,但在我们雇用Mike开发IDE时放弃了这个方案……"
正如Stephen Diehl几年前在Twitter上所说:
"C语法就像神奇的程序员薄荷糖。你把它撒在任何东西上,它突然就变得'实用'和'可读'了。"
当苹果在2014年宣布推出替代Objective-C的新语言时,我们曾短暂地希望那是Dylan,但结果是更传统的Swift。谁知道呢,也许如果Dylan使用了{花括号},它就会大获成功了。
好文章,需要你的鼓励
机器人和自动化工具已成为云环境中最大的安全威胁,网络犯罪分子率先应用自动化决策来窃取凭证和执行恶意活动。自动化攻击显著缩短了攻击者驻留时间,从传统的数天减少到5分钟内即可完成数据泄露。随着大语言模型的发展,"黑客机器人"将变得更加先进。企业面临AI快速采用压力,但多数组织错误地关注模型本身而非基础设施安全。解决方案是将AI工作负载视为普通云工作负载,应用运行时安全最佳实践。
MBZUAI研究团队发布了史上最大的开源数学训练数据集MegaMath,包含3716亿个Token,是现有开源数学数据集的数十倍。该数据集通过创新的数据处理技术,从网页、代码库和AI合成等多个来源收集高质量数学内容。实验显示,使用MegaMath训练的AI模型在数学推理任务上性能显著提升,为AI数学能力发展提供了强大支撑。
面对心理健康专业人士短缺问题,谷歌、麦肯锡和加拿大重大挑战组织联合发布《心理健康与AI现场指南》,提出利用AI辅助任务分担模式。该指南构建了包含项目适应、人员选择、培训、分配、干预和完成六个阶段的任务分担模型,AI可在候选人筛选、培训定制、客户匹配、预约调度和治疗建议等环节发挥作用。该方法通过将部分治疗任务分配给经过培训的非专业人员,并运用AI进行管理支持,有望缓解治疗服务供需失衡问题。
这项由多个知名机构联合开展的研究揭示了AI系统的"隐形思维"——潜在推理。不同于传统的链式思维推理,潜在推理在AI内部连续空间中进行,不受语言表达限制,信息处理能力提升约2700倍。研究将其分为垂直递归和水平递归两类,前者通过重复处理增加思考深度,后者通过状态演化扩展记忆容量。