TooLongLink Video Watcher AI
Watch:
العربية - Arabic
Bahasa Indonesia
বাংলা - Bengali
български - Bulgarian
简体中文 - Chinese Simplified
繁體中文 - Chinese Traditional
Hrvatski - Croatian
Čeština - Czech
Dansk - Danish
Nederlands - Dutch
English
Eesti - Estonian
فارسی - Farsi
Suomi - Finnish
Français - French
Deutsch - German
Ελληνικά - Greek
ગુજરાતી - Gujarati
עברית - Hebrew
हिन्दी - Hindi
Magyar - Hungarian
Italiano - Italian
日本語 - Japanese
ಕನ್ನಡ - Kannada
한국어 - Korean
Latviešu - Latvian
Lietuvių - Lithuanian
മലയാളം - Malayalam
मराठी - Marathi
Norsk - Norwegian
Polski - Polish
Português - Portuguese
Română - Romanian
Русский - Russian
Српски - Serbian
Slovenčina - Slovak
Slovenščina - Slovenian
Español - Spanish
Kiswahili - Swahili
Svenska - Swedish
தமிழ் - Tamil
తెలుగు - Telugu
ไทย - Thai
Türkçe - Turkish
Українська - Ukrainian
اردو - Urdu
Tiếng Việt - Vietnamese
Submit
C++成功之谜:新泽西风格与MIT哲学的较量
LaurieWired
总结:
理查德·加布里埃尔在1989年发表的论文《更糟糕即更好》[
0:46
] (Image 11) 提出了软件工程的两大哲学流派。
其中“MIT风格”主张设计完美、易用的软件,且必须100%正确,无论耗时多久,甚至如一本关于“品质科学”的《浓缩咖啡》书 [
8:16
] (Image 38) 所象征的极致追求。
而“新泽西风格”则强调简单实现、快速发布,即使界面不佳或存在小错误,也优先让用户使用,例如Unix系统将中断处理的复杂性转嫁给程序员,导致代码中出现大量
E_INTR
错误处理 [
6:35
] (Image 40)。
视频以西雅图公园的“泥土小径”[
0:23
] (Image 8) 比喻这种“更糟糕即更好”的理念。
C++的创建者本贾尼·斯特劳斯特鲁普正是采纳了新泽西方法,在C语言基础上构建,牺牲了Simula的纯粹设计以实现与现有C代码的兼容性和广泛移植性 [
8:24
] (Image 55)。
这种策略使得C++像病毒一样迅速传播,成为主流,验证了“更糟糕即更好”的理念。
加布里埃尔本人对这两种哲学争论了35年,甚至自相矛盾,至今仍无定论,他自己的网站“Dreamsongs”[
9:56
] (Image 56) 也展示了他对艺术与科学的思考。
泥土小径 [
0:00
]
西雅图某公园的下山路径有两种选择。
一条是精心铺设、蜿蜒曲折的沥青路 [
0:09
] (Image 2)。
另一条是直接下山的泥土小径 [
0:23
] (Image 8),虽然更陡峭、危险,但很多人选择。
视频以此比喻计算机科学领域中“更糟糕即更好”的理念,即看似不完美但更直接的方案往往会胜出。公园下山的风景 [
0:00
] (Image 0)。
三流计算机科学家 [
0:56
]
理查德·加布里埃尔(Richard Gabriel)在1989年观察到计算机科学领域也存在类似现象。
他将此命名为“更糟糕即更好”(Worse Is Better)[
0:46
] (Image 11)。
加布里埃尔自称“世界上最著名的三流计算机科学家”,其LinkedIn头像也反映了这种自嘲精神。
加布里埃尔是Lisp语言的忠实拥护者。
他参与了Common Lisp标准的制定。
他创办公司,致力于为Sun硬件开发Lisp IDE。
他职业生涯的大部分时间都在押注Lisp最终会成功,但事实却相反。
1989年,他在亲眼目睹Lisp的衰落后,写下了《更糟糕即更好》这篇论文 [
0:46
] (Image 11)。
他最初并未觉得这篇论文很重要,也未积极寻求发表。
后来,他的一位员工在Lucid公司发现了这篇论文并广为传播,使其成为软件工程领域的黄金标准。
巧合的是,这位员工后来成为Netscape的创始人之一。
这篇论文的核心观点是:为什么正确的事情总是会失败。
这一观点被争论了35年,包括加布里埃尔本人也加入了正反两方的辩论。
他曾匿名发表反驳自己观点的论文《更糟糕即更好就是更糟糕》(Worse is Better is Worse)。
后来又发表了《更糟糕真的更好吗?》(Is Worse Really Better?),但仍未得出最终结论。
他的员工甚至担心他会因此产生心理疾病。
MIT 与新泽西 [
3:17
]
问题的核心在于美国两岸在软件哲学上的差异。
MIT风格(“正确之事”):
强调设计完美程序。
界面易用,调用简单,无论底层实现多么复杂。
最重要的是,无论花费多长时间,都要确保程序100%正确,如同《浓缩咖啡:品质科学》[
8:16
] (Image 38) 所追求的极致。
新泽西风格(Bell Labs与Unix):
强调简单实现。
界面可以不美观,用户必须适应。
正确性可以放在次要位置,最重要的是“先发布出去”。
加布里埃尔嘲讽地说:“你对在新泽西设计和实现的操作系统还能有什么期望?”
随着时间的推移,这种理念演变为美国东西海岸的软件哲学对立。
西海岸(硅谷)更倾向于新泽西风格的快速迭代文化。
东海岸则更倾向于学院派的软件工程方法。
尽管加布里埃尔本人讨厌新泽西风格,但他承认其更具优势。
他认为,与其追求100%正确但发布缓慢,不如先发布一个“半正确”的产品,让它像病毒一样传播开来。
100%正确性的死亡陷阱 [
5:49
]
程序员将这种困境称为“PCLSIGring问题”(Keeping Process State Modular)[
5:50
] (Image 28)。
想象在1980年代的图形化Unix系统。
当程序等待网络数据时,用户意外调整了终端窗口大小,会触发SIGWINCH中断信号。
MIT风格的操作系统会处理这些事件,保存程序计数器状态,做必要处理,然后恢复程序,用户无感。
而新泽西风格的Bell Labs认为备份程序计数器会使操作系统过于复杂。
因此,操作系统会抛出E_INTR错误代码,让程序员自行处理。
视频举例,Git源代码中仍有许多E_INTR处理程序 [
6:35
] (Image 40)。
这个问题在2026年(视频制作时对未来的指代)仍然存在。
随意调整终端窗口可能会让系统“崩溃”。
加布里埃尔论文的全部意义在于:保证软件失败的最佳方式就是让它100%正确。
C++,终极病毒 [
8:24
]
C++正是这种“终极传染病”的典范 [
8:24
] (Image 55)。
C++的创始人本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)在攻读博士学位期间研究过Simula语言。
Simula是第一个面向对象语言,它优雅、简洁、美观,但性能低下,因此只在学术界使用。
斯特劳斯特鲁普当时在新泽西的Bell Labs工作,面临着一个关键选择。
他可以选择重新设计Simula,创造一个在现代硬件上运行的全新、优美的语言。
或者,他可以基于快速、丑陋的C语言,在其上“搭售”面向对象功能,并尽可能保持向后兼容性。
斯特劳斯特鲁普选择了后者。
他在书中写道,如果他构建了一个更纯粹的语言,那它“将成为一种不重要的邪教语言”。
为了让大量现有的C程序员尝试新的面向对象语言,他选择让C++直接兼容C语言。
C++的第一个编译器Cfront甚至不是一个完整的编译器,它将C++代码翻译成C代码,再由现有的C编译器处理。
这种策略的精妙之处在于:
C++可以在任何C语言能够运行的地方运行,无需移植。
而C语言几乎无处不在。
这意味着C++成为了“终极病毒” [
8:24
] (Image 55)。
具有讽刺意味的是,加布里埃尔的公司Lucid最终也为了生存,开发了C++的IDE“Energize”[
8:24
] (Image 55)。
这意味着,加布里埃尔在撰写关于“更糟糕的事物为何总是赢”的论文时,他的公司却被迫交付“更糟糕的事物”来维持运营。
这一切都源于另一个人在新泽西实验室做出的决定。
斯特劳斯特鲁普曾说,世界上有两种编程语言:一种是人们抱怨的,另一种是没人用的。
视频总结,如果你选择“更糟糕”的选项,它会像泥土小径一样赢得更多。可以访问理查德·加布里埃尔的“Dreamsongs”网站了解更多 [
9:56
] (Image 56)。
Copied!
Why didn’t you like it?
Inaccurate / wrong facts
Missing important points
Took too much time to load
Article too long / verbose
Article too short / not enough detail
Article hard to read / bad formatting
Images irrelevant / broken
Language / translation issues
Offensive / inappropriate
Other
Submit
Thank you for your feedback!
×