给它命名,他们就会到来
March 25, 2019
你发现了一些新东西。
你以前从未见过这样的解决方案。你努力保持谦逊和怀疑,但内心的激动难以平息。
你不想让自己飘飘然,但在内心深处你已经明白:
你发现了点什么。
这个想法变成了一个项目。第一次提交只有 500 行代码。但几天后,你就把它完善到可以在实际代码中使用的程度。有几个志同道合的人加入进来一起改进它。你每天都能学到一些新东西。
你依然保持怀疑,但已经无法假装忽视它:
这个想法有了翅膀。
你遇到了许多障碍。它们迫使你做出改变。奇怪的是,这些改变反而让最初的想法变得更强大。通常,你觉得自己是在创造些什么。但这一次,你更像是在发现些什么,就好像它本来就存在一样。你选择了一个原则,并顺着它走到了最后。
此时此刻,你已经确信:
这个想法值得被听见。
如果你在一家官僚气息浓重的公司工作,或许你要和法务部门斗争,争取让它开源。如果你是自由职业者,可能会在客户工作结束后深夜继续打磨它。也许你希望有人为此付费,但现在还没有人知道你的项目。你希望有一天他们会知道。
你振作起来,为首次发布做准备。你写了更多测试,配置了持续集成,完善了详尽的文档。你设计了一个漂亮的首页。你准备好把你的想法分享给全世界。
终于,发布日到了。你把项目发布到 GitHub 上。你在推特上宣传,并把首页提交到热门的开源新闻聚合网站。
git push origin master
npm publish
你迫切想知道世界会如何看待你的想法。
也许他们会喜欢,也许他们会讨厌。
你只知道,它值得被听见。
恭喜!
你的项目登上了某个热门新闻聚合网站的首页。社区里有影响力的人也发推特推荐了它。他们都说了些什么?
你的心一下子沉了下去。
并不是大家不喜欢你的项目。你知道它有权衡取舍,也预料到人们会讨论这些。但事实并非如此。
相反,大部分评论和你的想法毫无关联。
评论区最热的话题是在挑剔 README 示例里的代码风格。讨论很快演变成了关于缩进的争论,回复超过一百条,还顺带讲述了不同编程语言格式化历史。gofmt 和 Python 必然被提及。你用过 Prettier 吗?
有人说开源项目不该有漂亮的首页,因为那是误导性的市场营销。要是初级开发者被吸引了,却没理解底层原理怎么办?
有人回复说首页设计很无聊,而且在 Firefox 上显示有问题。这显然说明项目作者并不关心开放网络。我们熟悉的 web 是否正在消亡?该聊聊博弈论了……
下一个评论是关于抽象本质的泛泛之谈,说抽象会导致太多“样板代码”(或者“魔法”)。最热的回复解释说不应混淆“简单”和“容易”。其实,Rich Hickey 做过很好的演讲。你看过吗?
最后,有人问我们为什么还需要库?有些语言自带强大的标准库。npm 是不是个错误?leftpad 事故可能再次发生。我们要不要把 npm 内置到浏览器?那标准又该如何?
你一头雾水,关掉了网页。
发生了什么?
也许你的想法并没有你想象得那么有趣,这很正常。也可能是你对路人解释得不够清楚。
不过,还有一种可能,你没有得到相关反馈的原因在于:
我们总是倾向于讨论那些容易谈论的话题。
大家都有的共同经历很容易被讨论,比如代码格式、冗长与魔法、配置与约定、社区文化差异、丑闻、技术面试、行业八卦、宏观趋势和设计观点。对于这些话题,我们有共同的词汇体系。
我们也总是在不断地模式匹配。如果某种模式引发了情绪反应(无论和当前想法是否相关),我们很可能会以此作为第一印象。联想学习是一种极有价值的心理捷径。但熟悉的风格有时会掩盖新颖的实质内容。
如果你的想法真的_很新_,可能还没有讨论它的共同词汇。
它解决的问题也许已经根深蒂固,以至于我们都没意识到它的存在。这就像房间里的大象。而我们无法讨论没有命名的事物。
你该如何给一个问题命名?
就像人类一直以来做的那样。
讲一个故事。
给它命名,他们就会到来。
Pay what you like