争论 OOP in Erlang
官方的 Erlang-Question Maillist 确实是个值得“长期潜水”的地方——因为,这里时常会有“水怪”出没,比方,象火爆的 Joe Armstrong 爷爷和热辣的 Ulf Wiger 大叔之类。比方说,讨论象“争论 Erlang 到底 OO 不 OO”这样的“诱饵话题”,通常会比较容易吸引到“大水怪”们跑过来……,然后就有好戏看了。就算话题本身的乐趣有限,争论本身也不会让人失望。通过争论,我们能够看到各种各样的背景、引用、推论、思维方式乃至文化……,这些可都是人类精神世界多样性的珍贵样本,比起技术本身也毫不逊色。
以下为 BLAH,没时间的同学自行跳过。
就话题本身来说,这就和“中国到底是不是*敏感词*”一样,其实是“没有办法达成一致的话题”,因为从把这个句子拆成每一个单词开始,大家的理解就已经各不相同了。俗话说,一百个程序员中,可能会有一百零六种对于 OO 的看法(因为据说在程序员人群中人格分裂的比例高达百分之三)。就算是同一个人,在不同的时期,对于 OO 的看法,也会不同。
就拿我自己来说,在上学学 Pascal 的时候 OO 是“程序员吃饱了就开始追求美感”;后来工作用 ASP 的时候 OO 是“与完活没啥关系”;在 PHP 里 OO 则是“某些 OpenSource 项目怪人的做作”;后来改用 Java 了 OO 则变成了“精致与高效的完美统一”,而且毫无疑问是“编程世界里唯一的真理”;再后来接触 Javascript 后 OO 就被撞下神坛,成为“冗长与僵化”的路人甲(一起“路人化”的还有设计模式);学了 Erlang 后 OO 又成了“没它地球转得更好”;到了现在,叛逆期过去了,再到另一个层面上看, OO 仍然是个“不错的抽象”。其实,或许 OO 一直没变,不断在变的,只是我对它的看法(我看到了它的哪一个侧面),而且我不敢保证,再过一段时间,这个看法是否还能保持不变。
再说讨论这件事。很多人一起讨论某个问题,不要小看这件事,要做好了,这其实是一件技术难度很高的事,有人甚至为此特地发明了《罗伯特议事规则》,有兴趣的同学不妨看看,当领导的时候要用的哦。
从学习的角度来说,探讨问题,规则、素养乃至逻辑都在其次,我们更需要的或许是开放的视野与胸襟。如果一味站在自己原有的视角,固执地沿用熟悉的视角来 rule 这个世界的一切,这会是一个“永远正确”的人,但与此同时,这个人也一定会因为“永远正确”而显得非常乏味。勇于去学习并了解自己并不熟悉的背景知识,再站在对方的角度来理解对方的感受和逻辑,也许没有看起来的那么难。
对于讨论而言,唯有这样建立起来共识,参与各方才谈得上真正意义上的沟通,否则只能是“鸡同鸭讲”。不过,这对于“时间宝贵”的现代人来说,实在是太强人所难了。话说回来,如果我们每个人都这样,那么这个世界的绝大部分的对立与冲突或许就都解决了,那多没劲? BLAH 完毕。
如果人格分裂占3%那应该是 103 种才对。
你说的对,是我疏忽了,呵呵。
One of the most tragic things I know about human nature is that all of us tend to put off living. We are all dreaming of some magical rose garden over the horizon instead of enjoying the roses that are blooming outside our windows today.
但是有时候人格分裂不止分裂出 2 种人格,所以应该比 103 种要多才对