最近Stack Overflow上有一群讨厌perl的人,所以我想我应该把我的“关于你最喜欢的语言,你讨厌的五件事”问题带到Stack Overflow上。拿你最喜欢的语言来说,告诉我你讨厌它的五件事。这些可能只是让你烦恼的事情,承认的设计缺陷,公认的性能问题,或任何其他类别。你只需要讨厌它,它必须是你最喜欢的语言。
不要拿它和其他语言比较,也不要谈论你已经讨厌的语言。不要用你最喜欢的语言谈论你喜欢的事情。我只是想听到你讨厌但能容忍的东西,这样你就可以使用所有其他的东西,我想听到你希望别人使用的语言。
每当有人试图把他们最喜欢的语言强加给我时,我就会问这个问题,有时是面试问题。如果有人找不出他最喜欢的工具的5个缺点,那他对它还不够了解,不能提倡它,也不能利用它赚大钱。他还没有在足够多的不同情况下使用它来充分探索它。他把它作为一种文化或宗教来倡导,这意味着如果我不选择他最喜欢的技术,我就错了。
我不在乎你用什么语言。不想使用特定的语言?那就不要。你通过尽职调查做出了明智的选择,但仍然没有使用它?好吧。有时正确的答案是“你有一个强大的编程团队,有良好的实践和丰富的Bar经验。改成Foo是愚蠢的。”
对于代码审查来说,这也是一个很好的问题。真正了解代码库的人会有各种各样的建议,而不太了解代码库的人会有一些不明确的抱怨。我会问这样的问题:“如果你可以重新开始这个项目,你会有什么不同的做法?”在这个幻想的世界里,用户和程序员可以抱怨任何他们不喜欢的东西。“我想要一个更好的接口”,“我想把模型和视图分开”,“我要用这个模块而不是那个模块”,“我要重命名这组方法”,或者任何他们不喜欢当前情况的东西。这就是我如何掌握特定开发人员对代码库的了解程度。这也说明了程序员的自我在多大程度上与他所告诉我的内容联系在一起。
憎恨并不是衡量人们了解多少的唯一尺度,但我发现它是一个相当不错的尺度。他们讨厌的事情也让我知道他们对这个话题的思考有多好。