


























委员会对语言的态度,其实该学学 Go 。这里我不评价 Go 语言本身好坏,只说人家管理者的态度。
比如左大括号到底能不能换行、变量声明了能不能不使用,这些在很多语言里都能吵出宗教战争。但 Go 不跟你废话,直接写进规范:要么照做,要么不让编译。你可以骂它固执,但至少世界清净。
反观 C++,则是自由度开到最大。自由不是问题,问题是历史包袱太厚,几十年各种委员会争论不完。你想用个库,作者可能用了 TMP 炼丹、Concept 魔法、SFINAE 黑科技,再加上一堆“C++ 标准只在脚注里提到过一次”的奇技淫巧——结果就是:你为了要一口巧克力,不得不顺便吞一整袋巧克力味的屎。
再举个证据:
想看 Go 的官方工具链?就一套,编译器、格式化、linter 、包管理,全是官方说了算。
想看 C++?光编译器就有 GCC 、Clang 、MSVC ,每家对标准的理解都略有不同,还都带着历史兼容的枷锁。
Go 的格式化工具 gofmt 可以让团队几十秒达成统一风格。
C++ 的格式化工具? clang-format 、astyle 、Google Style 、LLVM Style ,每个团队都能吵出三天三夜。
Go 的态度是:“不需要你思考这种低价值问题。”
C++ 的态度是:“我给你无限自由,但代价是你得承受数十年遗留设计的后果。”
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。