知识卡片
糟粕难以移除
内容
语言一旦被大规模使用,错误特性也会被既有程序依赖,标准委员会很难删除它们,只能在既有缺陷上继续叠加新特性,新旧特性还可能互相冲突制造更多糟粕。发散:平台设计的早期决策会形成长期兼容性债务,API 发布前的克制比发布后修补更便宜,这与 [[好语言可取子集]] 互为因果——正因为糟粕难删,才需要用户自己划定子集。
参考来源
- 位置:《JavaScript语言精粹(修订版)》第1章《精华 Good Parts》
- 结论依据:原文说明标准委员会移除语言缺陷几乎不可能,因为会损害依赖这些糟粕的既有程序,只能不断堆积新特性,且新旧特性未必和谐共处,由此推出"糟粕一旦存在就难以清除、只能靠用户自行取舍"的结论。
- 原始内容:标准委员会想要移除一门语言中的缺陷部分,这几乎是不可能的,因为这样做会损害所有依赖于那些糟粕的蹩脚的程序。除了在已存在的一大堆缺陷上堆积更多的特性,他们通常无能为力。而且新旧特性并不总是能和谐共处,从而可能产生出更多的糟粕。