GCC开年第一炮
By Forsaken
正值 2025 新年伊始,GCC 便宣布了一项重大消息,一个全新的语言前端代码已经合并主线了。
那么这个全新的语言支持是什么呢? 是 the greate Algol 68 好吗!编程语言历史上最重要的里程碑和标杆,没有之一。
读完这篇文章,你就会明白为什么没有之一了,不要说前无古人,连后无来者也不可能了——除非你,我的朋友,愿意成为那位真正的英雄。
作为一门 57 岁的语言,显然它的年纪应该比绝大部分 fossflow 的读者要大,但是它的设计思想和语言特性却是如此的前卫,以至于我们在 2025 年的今天,依然可以从中汲取到无穷的灵感。其中最重要的灵感,就是,如果一门语言走向某个设计理念的极端,会是什么样子呢?
Algol 68 是一门将“正交化”推进到极致的语言,这就是它能够在计算机科学史上留下如此深远影响的原因。正交化是一种设计思想,它要求语言的各个部分之间尽可能的独立,这样可以让语言的设计更加简洁。说人话,就是你可以像想有一天拥有一门像 C 语言那样强大但又没有什么歧义的语言。Algol 68 将这种可能性推到了极致,就是不同的类型之间功能几乎完全不耦合,这样可以在编程的时候不容易出错,也不容易产生歧义。
唯一的问题,就是当时全世界能学会这门语言的人一只手就能数过来。想想看吧,当你准备 21 天学会一门语言的时候,今天学会的东西,明天完全用不上,21 天虽然在学同一门语言,但每天都像是在学全新的语言——我们假设你的能力跟当时藤校博士/教授差不多,而且记忆力超群。
这就是为什么后来编程领域有大量的人鼓吹 Scheme 语言一样,因为 Scheme 是历史上将正交性和实用性结合的最平衡得语言,你哪怕只学会了一点点,也能理性推导出其他东西,甚至能够推导出书本上没有的更加复杂的东西,并且能够在实际项目中使用。这跟 Algol 68 的设计理念是完全相反的,Algol 68 意味着,你如果没有学会全部,你就什么都不会。这就是正交性的极致,但这就很难出错,因为 A 就是 A,B 就是 B,不会有什么歧义。但你不学完 A 到 Z,你就无法真正实用。
最终的结果就是,“which pretty much killed everyone's interest in ALGOL”。
除了语言设计之外,Algol 68 的编译器设计对后世产生了巨大影响。对于语言的安全性设计,也有非常深刻的探讨。不过,Algol 68 就像一只短命而生金蛋的鸡,它很快就被产业淘汰,但大量的设计理念被快速地借鉴,产生了后来的 Pascal、Ada 等等语言。
实话实说,Algol 68 无论如何也值得被人铭记,因为它是计算机科学史上最重要的语言之一。它之所以如此成功,就是因为它失败了。它用自己淋漓尽致的短暂一生,来告诉你为什么它不应该存在。好在它失败了!不然今天你敲代码也许就没那么快乐了。
那么为什么这些年又有人对 Algol 68 产生兴趣了呢?首先,编程语言越来越复杂了,也许这年头的人觉得学习 Algol 68 也不会比你学 Javascript 或者 Rust 难多少。另外,有一些人仔细研究以后发现,Algol 68 之所以这么快失败,很大原因也是文档写太差了,许多语法捷径和技巧并没有被人充分学习和理解。所以,有人开始重新研究 Algol 68,希望能够从中找到一些灵感。
总之,今天的你,作为一名现代程序员,如果你有机会学习 Algol 68,也许会完全推翻前文从历史角度对 Algol 68 的评价。也许,Algol 68 会成为你的灵感之源,让你在未来的编程生涯中走得更远。
加油吧,反正我不学。
© Copyright FossFlow team, all rights reserved.
HTML template:
© Copyright 2016-Tech News . Design by: uiCookies Technology News Magazine