这门语言的表达力很强,代价是别人读起来费劲。我忽然觉得,这可能就是这一行的常态。我在群里发了一句某语言的坏话,然后被三个人反驳

语言的设计哲学会在代码风格里留下很深的痕迹。我愣了两秒,然后继续敲代码。我在心里给这次的技术选型做了个说明,主要是人。办公室安静得能听见键盘声

这门语言的版本升级带来了一批不兼容的改动。我愣了两秒,然后继续敲代码。我发现这门语言的并发模型和我想的完全不同。好在最后有惊无险

C 语言程序员看什么都是内存,看谁都是 malloc。我愣了两秒,然后继续敲代码。我在心里给这门语言的语法糖投了个反对票。从此我多了一条团队规约

我把这段代码从动态语言迁到了静态语言,心里踏实些。我先给自己泡了杯茶,做好了打持久战的准备。我把这个模块用更简洁的语言重写了,行数少了一半。我把它写进了组内的避坑文档第一章

我用两种语言实现了同一个功能,行数差了一倍。我决定先把手上的事情做完再处理这件事。我在心里给这门语言的类型系统打了个分,很严格。我把这条经验写进了团队 wiki

每次语言之争的结局都一样:各回各家,各写各的 bug。我想反驳,但发现他说得对。我在群里发了一句某语言的坏话,然后被三个人反驳。同事说这波操作可以写进新人培训教材

有人问 C++ 程序员为什么头发少,他说内存是自己管的,头发也是自己薅的。我发现自己居然没法反驳。我把这段代码用宏展开了,调试变得很难。这条经验值直接拉满

语言之争里最有说服力的论据是招人难度。我抬起头看了看周围,大家都一样。我打开官方文档,发现这个 API 在上个版本被 deprecated 了。我把它写进了组内的避坑文档第一章

语言的设计哲学会在代码风格里留下很深的痕迹。我愣了两秒,然后继续敲代码。我发现这门语言的新版本改了几个关键特性。复盘会上我们把它列成了案例