遇到抬杠的杠精,写篇日记。有一点点技术内容。
上网久了,总会加进一些全是陌生人的群,大家谁也不认识谁,谁也不知道别人是什么来历。所以,有时候会遇到投机的,有时候会遇到善抬杠的。
遇到投机的自不必说,我这个人一向是知无不言言无不尽,我认为对的,全都告诉你;我理解错的,欢迎用事实打我脸,学到东西比啥都强。
遇到抬杠的,我的选择是立刻怂。“您说的对”,“哎呀,为什么我早没想到”等等。不过为了避免误导群里其他人,我会表现得过一些,基本上智商正常的人都能看明白。
这么做的原因,则是因为我们在网上,在聊天里,缺乏理解彼此的能力,也缺乏理解彼此的耐心。意见对立的产生,往往不是意见本身,而是表述和理解。那么对于一群陌生人,我觉得我完全没理由花半天时间去教育他们,最后还未必能成功。
比如今天上午,某群里有人说,喜欢 Node.js 的模块机制(CommonJS),不喜欢 ES Module 那一套。于是我就说,ES Module 更加静态化,有利于引擎优化提升性能。接着他立刻抓住“静态化”这个词挖苦我。
那还能忍?于是我立刻跪下道歉,承认“静态化”是错的,他说的是对的,CommonJS 最佳。然后就去吉卜力美术馆玩了——真好玩呀,非常喜欢那个地方。
晚上回来,发现他又抓住我怼了半天。但他抓的点完全是错的:1. 他认为我说 JS 是静态的;2. 他认为我说 PHP 7 是静态的。其实我想表达的是:
import
必须出现在文件开头,对于原生实现来说,这意味着程序架构必须在初始化的时候就决定下来。相较于require
可以在执行中加载模块,这样做更加静态化。- 静态化,可以让引擎更高效的优化代码。V8 和 PHP 7 都通过这样的设计来获得高效率。
- JS 和 PHP 仍然不是静态化语言,但我们可以通过编程规范,让代码静态化一些,配合引擎优化。基本上所有语言都是这么优化的,从 AS,到 JS,再到 PHP,莫不如此。
所以他立了个说 JS、PHP 是静态化的靶子,打了一上午。他说错了么?没有。我说静态化准静态化配合引擎可以更好的执行,我错了么?也没有。矛盾的根源,在于我认为他说法有问题,而他并没有好好讨论问题的准备。
我有教育他的义务么?当然没有。
我只会在我自己的学生群里纠正别人的说法,因为,会加入我的群,说明对我有信任,有指望。对于这些人,我要尽力教好他们。
欢迎吐槽,共同进步