本文整理自“莺见”微信公众号:


(全文约1.2万字,阅读大概需要24分钟)

在前文中,我们粗略理解了《乌合之众》第一卷,即关于群体的特征、感情、道德、观念、推理与想象力,一言概之即群体具有孩童般的低智力特点。虽然如此,因为群体拥有数量上的绝对优势,他们的冲动行为仍可以轻易造成社会动荡与变革。如果你是一位野心勃勃的政治家,那么就会寻求驱使群体的方法与手段,让他们成为你达成目标的工具和帮手。这本书的第二、三卷就阐述了更多关于驾驭群体所需的知识。

驾驭群体显然无法完全诉诸武力,而是让他们心甘情愿为你所用,因此你需要掌控、牵引他们的思想和认知,培养他们的信念,对他们的主张所有反应。第二卷,我们来看群体的主张与信念

勒庞认为,“决定群体的主张和信念的因素,主要分为两类:间接因素和直接因素”。我们可以通俗地这样理解:群体的思想,分别受到潜移默化的环境影响以及某一时刻的突发事件影响。事实上这句话的主语换成另一个词,通常也成立。比如2022年末ChatGPT的大热,是openAI日积月累的技术研发以及互联网宣传的共同作用。

第二卷 第一章 群体的意见和信念中的间接因素

勒庞从种族、传统、时代、制度和教育5个方面论述间接因素的影响。我个人认为,它们之间并不孤立,而是相互联结的。

种族

种族是影响群体主张和信念的最关键因素。它带有遗传的涵义,我们今天可以等价理解成观念上的基因,比如蒙古人拥有开疆拓土的基因,西方拥有殖民的基因等等。

勒庞在《乌合之众》里没有说明种族影响群体的原理,我们可能得参考他之前的著作。但对此我深表怀疑,遗传固然有着极大的作用,但是这应该仅仅在不同物种之间或者同物种的不同子类之间的生物体条件上的。比如狼孩,一个婴孩在狼群中长大,拥有与狼相同的饮食与行为习惯,但是他终究具备语言能力和复杂思考能力。再比如西方人普遍天生比东方人在身体力量上更有优势等等。

如果一个人在完全不同的种族(仍然在人类社会)中长大,他会表现出与原种族相关联的特质吗?我们必须承认遗传因素至少会影响人的性格,但这是个体维度的。从群体或者说种族的角度看,能否体现出明显的遗传因素影响呢?

无论种族是否因生物遗传因素导致的影响,我们至少可以认为,种族拥有观念上的遗传因素,种族中的个体对自己的环境拥有充分的肯定和认可。那么的话,种族对群体的作用就显而易见了。

勒庞认为,“种族的力量十分强大,任何因素要从一个民族进入另一个民族,都必须经历彻底的变化”。我举一个可能不太恰当的例子,清末太平天国的拜上帝教,就是基督教的中国化。当然这其中有很大的讹误成份,写《劝世良言》的梁发被评价为在基督教上是半吊子,在儒家思想之下才写下这么一本质量一般的书。无论如何,假设基督教不做任何改造,我们可以想象它很难为除了西方之外的各种民族轻易接受,特别是在种族观念上就鲜有信仰习惯的中国人。另一个例子是蒙古人和满清入主中原,改变更多的是他们自己。

如果某些因素不能被改造以适应这个种族,甚至与种族观念是相悖的,那么即便它不会被立即排斥,也不可能存在太长时间。做个大胆的假设,如果美国政府现在宣布将全部土地收归国有,民众只有使用权,那么可以预测这项政策一定会以政府的下台而终止。

传统

传统是过去的观念、欲望和感情。抛开生物学意义,民族之所以是民族,恐怕只是其传统在起作用。中国的不同民族之间除了个别在外表上的差异(种族因素)之外,能区分他们的恐怕就是不同的习俗而已,这就是传统。

传统一旦形成,将很难改变。群体有着保守的特质,即便历史上的改朝换代,也未能真正改变民族的传统。动荡过后,不久就又会重拾昔日的传统。

我们以历代农民起义为例,处于水深火热的大众为了推翻腐朽的王朝,不惜向新主子效命,等到新的王朝建立,他们就又恢复到了往日被奴役的生活。只要有一口饭吃,他们心甘情愿被驱使、被压榨、被驯化。如果想改变这一制度,第一个站出来反对的可能就是这群人。

勒庞认为,“统治我们思想的是那些看不见的主人,我们任何反抗都不能伤害他们”。诚然思想对民族的影响之深、之远,但我们也能看到唤醒旧民族思维的尝试,比如100年前的“新文化运动”,以及我们熟悉的鲁迅弃医从文。不过要想明显看到变化的效果,可能仍然需要上百年的时间。

时间

这一节阐述了时间对于群体思想观念的影响。由于运动是绝对的,因此我们说时间可以影响一切,种族、传统无不是时间的产物,勒庞在这里的文字有些多余了。

我们唯一可以关注的一点是,有些变革只有在特定的历史时期才能成功,这是因为群体在足够长的时间上进行的经验积累。封建制度在20世纪初才被推翻,并非完全因为辛亥革命,而是过去百年间的民族思想发生了变化,封建皇权的那一套不再被接受。

只要时间尺度足够长,对民族观念影响甚微的因素也会发挥作用。我们需要关注,近一百多年来,日本特别是韩国,正在逐渐施行去汉化的运动。汉字越来越少地出现在他们的书刊报纸电视广告中,他们的民族渐渐地和儒家文化发生了割裂甚至冲突,这也是时间效应的体现。勒庞认为的民族观念发生明显变化需要上百年的时间,如今只需要几十年便会看到。

政治和社会制度

勒庞不认为社会的缺陷可以由制度来弥补。我们可以这样分析,首先“制度是观念、感情和习俗的产物”,后者可理解为上面的传统,而传统是不能够轻易变化的,因此制度也应该是稳定的,且与特定的民族相契合,“法律和制度是民族需求的外在表现”。

如果不考虑民族的特点而强行建立某些制度,就会发生战争和革命,比如东欧剧变。

那么制度就会一成不变吗?当然不会,但必须一点一点地慢慢变化才可能不招致大的变乱和冲突。并且在没有出现更多问题之前,就不会尝试改变制度。“只有幼稚的人,才会花时间去重新创造制度”,按照他的观点,很多社会活动家就是在做无用功。

教育

勒庞在这一节中的观点放在今天的中国不能说很相似,只能说是一模一样。

首先,“教育既不能赋予人道德,也不能赋予人幸福,因为教育根本无法改变人的本性和天生的激情”。如果这里指的是学校教育,那么我们是大概认可的。特别是在过去疯狂的功利式教育,一个学生的能力完全用学科成绩来衡量,黄冈、衡水等学科教育领域的领头羊风靡全国,到现在也毫无逊色,制造了一批又一批经过军事化的学生。还记得前几个月在高考誓师大会上呐喊的女同学被网暴的事件,她没有做错什么,只能说社会越来越反对这种内卷的教育方式。

如今,中国的教育已经有了很大的改善,比如学习西方以ABCD等级来划分学生成绩而不是分数,增加更多学科外教育(如社团、兴趣班)等等,虽然还在初级阶段,但已经起了一个好头,毕竟中国人经历了1500年的科举,想一口吃成个胖子也不现实。

证明群体抵触制度变化的一个例子是,虽然国家在教育上进行了一系列的改革,但广大家长们仍然沉迷于培养“小镇做题家”,以我家为例,孩子从幼儿园开始便参加了多项课外班,比如写字、英语、绘画、篮球。横向对比下来,我家这已经属于自然成长了,但也明显压榨了相当多的课外时间。随着年级的增长,课外班只能有增无减。

造成这一现象的原因可能有很多,但毫无疑问最重要的一点是,通过一场考试来定终身的制度并没有发生变化。所以,目前政府在教育上的改革举措注定只能浮于表面,等到中高年级,学生们的压力和负担不会和之前有任何变化。

诚然,要想出人头地,必然需要投入刻苦的学习,即便西方的学生也不例外,不过方式和方法值得深究。“通过背诵教材就能让智力提高”是错误的。死板的教育方法“很好地锻炼了年轻人的背书能力,但却丝毫没有锻炼到年轻人的判断能力和创造力”。

对此我深有体会,不知道现如今的初中课程是怎样的教学理念。我当年需要背诵的不仅仅是语文课文,还有历史和政治。比如一个历史事件的意义是什么,名词解释,一场政治会议的意义是什么等等,它们都有着不可质疑的标准答案。20多年过去了,我仍然能记得一些只言片语,但仍然无法理解法国大革命、文艺复兴、太平天国、洋务运动的背景和意义。它们对我来说只是一些要背诵的文字。

这样的现象在高中政治课上得到了一些改善,我的那位政治老师能很大程度上让学生去理解概念,而不是背诵,因此只要答案稍微靠点边,基本就能得满分。我希望这样的教育方式能在更早出现,因为“决定一个人在生活中取得成功的先决条件,是他的判断力、经验、创造力、性格、开拓精神和个性,而这些东西都不是书本能够赋予的”。

这样的教育方式下国家培养出了一大批有文凭的毕业生,但又只能消化一小部分(公务员),剩下的都需要自谋生路,在经济动荡等因素的刺激下,很容易成为国家的敌人。如果担心这样的事情,一种极端的手段是培养愚民。

第二卷 第二章 群体意见的直接因素

形象、词语和套话

在上一文中讲到群体的想象力时,我们提到了形象。俗话说百闻不如一见,形象在树立群体信仰、调动群体感情方面具有不可替代的作用,也印证了群体在看待事物上的简单特质。

当我们提到秦桧,一种切齿之痛的感情便会油然而生,那么秦桧给我们一种奸邪、卖国的形象;当我们提到焦裕禄,我们体会到的是一种鞠躬尽瘁的形象;当我们提到爱因斯坦,就是一种聪明睿智的形象。因此,虽然没有看到画面,我们也能从一些词语中感受到形象的力量。

词语具有唤醒形象的威力。有趣的是,“最容易促使群体行动的,反而是那些意思最不明确的词语”。勒庞用到了民主、社会主义、平等、自由这些例子。我们惊讶地发现,这些往往是我们熟知的口号的一部分。在日常生活中,这些又是官僚套话的一部分。

除了官僚体系外,互联网行业近年来是套话的重灾区,比如赋能、打法、聚焦、全链路、维度等等,据说以阿里系为重。前不久的电影《年会不能停》中的“颗粒度”概念令人印象深刻,算是对这一现象的极度讽刺。

不可否认,这些套话传染性极强,它们体现出的一种高级感形象深入人心。但说实话,我们并不知道它们具体代表什么,不同的人对此都有不同的解读,这往往取决于人的经验、教育、职位以及所处环境。

因此,勒庞认为,“要想完整地翻译一种语言,尤其是那些已经灭亡的民族的语言,是绝对不可能的”。古埃及的象形文字和中国殷商时期的甲骨文,都破译了一部分,但我们应该知道其中词汇背后所代表的形象是破译不了的。

即便不考虑那么远,今天中国大陆对“中国”一词的理解,和香港、台湾人对“中国”之理解也必然有所不同。甚至,我们必须承认,特别是那些出生于殖民时期的香港人,对“祖国”二字背后所蕴藏的感情也必然差异极大。因此在面对与国家利益相关的国际事件时,我们就能理解他们所表现出来的态度和行为了。

同一个词汇,在不同时期亦拥有不同的意义。比如对“专家”这个概念,过去曾经是专业人士的敬称,如今早已成为了对夸夸其谈者的调侃,贬义意味甚浓,类似的还有“小姐”、“同志”等等。勒庞认为,“政治家最重要的一个任务,就是用普通的词,至少是中性的词,去换掉那些群体极其讨厌的旧词”。例如,资产阶级、资本家,我们现在称为企业家。

幻觉

一个残酷的现实是,我们的大多数信仰实际上都是幻觉。冒犯地说,宗教就是幻觉,但并不影响成千上万的人趋之若鹜。

群体需要幻觉来构筑文明,就像一个人需要憧憬才能努力工作。在《人类简史》一书中,智人之所以能够延续命脉至今,是因为他们相信了虚构的故事以建立集体合作的生存模式。虚构的故事,就是幻觉。

幻觉对群体是如此重要,以至于如果你想打破它,将会得到来自群体的最猛烈攻击。即便短期内幻觉被消灭,人们也总是会编出新的幻觉故事。幻觉就是人们活下去的希望。

不能将幻觉简单理解成迷信。在科学技术如此发达的今天,我们仍然需要幻觉,因为科学“不能向人类承诺幸福”,但幻觉可以。太平天国试图向大众承诺一种绝对平等的社会,因而可以驱使人们前赴后继、赴汤蹈火;P2P诈骗向投资者承诺提供高额返利,因而吸引人们争前恐后往里投钱;人生也是一种幻觉,我们的所见所闻和所受教育向我们承诺只要努力就能拥有和睦美满的家庭和富足体面的生活。

经验

幻想仍然是可以被消灭的,只不过可能需要一遍又一遍地试错,将经验总结起来才能发现必须放弃它。

在前文中,我们知道由于群体普遍浅见,因此经验很难被沉淀下来,至少一代人不太能把经验传递给下一代。

中国在清末民国时期尝试过各种各样的救国方案,至少折腾了一个世纪,起码明白了帝制是一定要废弃的;而世界在两次世界大战后终于明白了建立联合国的必要性(虽然时至今日仍然效果有限)。可以说经验要发挥作用,必然需要长时间的重复。

理性

勒庞在这里提到理性,完全是作为反例而存在。因为智力的原因,群体不可能在理性上有任何表现。即便强大如牛顿,也避免不了与宗教产生千丝万缕的联系,晚年还疑似相信了炼金术这种缪论。

勒庞指出,“理性虽然为人类指明了文明之路,但它确实缺乏幻觉所能激起的那种勇敢和热情”。人类终究是感性动物,为了报知遇之恩,罔顾国力差距而六出祁山、九伐中原的诸葛亮、姜维能说明这个道理;为了报夺妾之恨,宁为玉碎不为瓦全而敞开山海关的吴三桂也能说明这个道理。个人尚且如此,何况群体。

总体感受勒庞对于直接因素和间接因素的论述并不是严格互斥的,它们之间互相连结。比如传统、经验与时间息息相关,幻觉也可能是传统的一部分。我们要充分看到潜移默化和感官刺激在对群体产生影响上的交相作用。
事实上这一部分已经点出了能直接影响群体行为的手段,即形象、套话。在下一章中将继续展开。

第二卷 第三章 群体领袖及其说服的手法

群体的领袖

前文中我们有过一个论断,即群体总是倾向于服从。事实上这不限于人类,集体活动的动物也是如此,如狼、象、狮、猴,都有一位统领。

我们可以回忆一下自己过去有哪些不自觉地服从行为。比如你和公司同事出去团建拓展,被划分成小组之后,是不是即便主持人没有明确指明,你们小组也会推举出一位代表来表达观点和意见。再比如你参加的一个旅行团和导游发生了争执,一旦有一位意志坚定、勇于表达的人站出来,大家都会立即支持他并视之为领袖。

之所以有这种现象,更多的是本能,和种族、教育背景关联并不大。“大多数普通人,除了对自己的专业有所了解,对其他的事情其实都没有一个明确而理性的看法”。即便你是大学教授,如果遭遇如美剧《迷失》那样的坠机生还事件,你也必然和其他人一样听命于具备野外生存经验的领袖。

领袖如果想长期维持自己的领导地位,那么必须拿出来一种足以持久迷惑群体的信仰才行。事实上,这就是在为群体创造幻觉。勒庞认为,“一个伟大领袖的主要作用,就是创造信仰”。如果勒庞晚出生40年,那么他一定会引用希特勒的例子。众所周知,希特勒以其极具煽动性的演说打动了日耳曼人,让百万装甲部队成为实现其帝国野心的武器。他的前任冯·兴登堡虽然德高望重,却缺少这样的创造信仰的能力。

然而这样的领袖在历史上少之又少,勒庞特别举了苏伊士运河的开凿者雷赛布的例子,他跨过了各种障碍完成了举世瞩目的壮举。但随着年事已高,他的这种领袖意志力也逐渐消退,未能完成巴拿巴运河的开凿。类似的还有中国的武则天。

这类领袖都有意志力匮乏的一天,那么一般的领袖就更加如此了。大多数领袖只具备短时间的意志力,如果运用得当,也能创造出卓越的丰功伟绩。不过一旦失去了适合他的环境,便和普通人无异,再也看不到那种领袖魅力。

这种人一般不是国君,而是善于征战四方的战将。一有战事便有他的用武之地,否则就将被束之高阁。在今天娱乐至上的社会,前赴后继的明星们有的顺利成为了娱乐界的红人,但大多因为没有积淀,总想着赚快钱而难以长久。一个虚构的人物“李云龙”也可以作为这种领袖的代表,在战争年代他能大放异彩,但在和平时期就默默无闻了。

领袖的行为方式:断言、重复和传染

除了第一卷之外,各位野心家最应关注的就是书的这一部分,勒庞用简短的语言能让你入门如何驱使百姓。

首先是断言,不需要任何推导过程,直接下定结论。有这么一种说法,你只要被别人下了某种定义,你无论如何解释都是苍白无力的,因为你的形象早就在他的头脑中定型了。

从收音机时代开始,我们便能轻易接触到各种断言。如今,“俄罗斯人是战斗民族”、“帝国主义亡我之心不死”、“资本家都在剥削人民”等论断深入人心,没人会去怀疑它们。至于这种断言是否真实、准确,并不重要,因为最后群体总会相信它们,谎言说了一千遍就变成了真理

但是断言并不总会有效果,它需要不断重复。广告就是这么一种断言。你可以回忆一下,曾经是否对某种事物抱有偏见,但是最后仍然接纳了它。这很有可能就是断言被反复重复的效果。

基于这种原理,如果你想说服一个人,在他没有将你逐出门外的前提下,只要有耐心,最后你终将能达成目的。同样地,如果你的上司每天都会为你描绘公司的美好未来,激发你努力工作,你也会相信真的会搭上公司这趟列车走向人生巅峰。

一旦群体中的部分个体被重复的断言所打动,这时候传染机制便开始发挥作用,形成群体的倾向性意见。所以,作为群体的领袖,你完全不必在是否能说服所有人这个问题上有所担心,因为他们会相互影响,就像被乙烯催熟的一颗西红柿,也会帮助催熟其它西红柿一样。

1989年,由于波兰的带头示范作用,一系列的社会主义国家的政权纷纷倒台,史称“东欧剧变”,说明了传染不要求群体一定要在一起,即便相隔万里也能发挥作用。这也更加证明了信息控制的重要性,一旦群体发现了有模范的存在,便会自发被感染,采取相似的行动。

说到模范,它在群体传染过程中发挥了重要的作用。就像灯塔一样,它指导群体该如何做就能取得怎样的效果。一个立功的军人典范就能激起数以亿计人们的爱国热情,一个爱岗敬业的劳动模范就能让无数社畜忘我地工作,而反过来一个被“双规”的腐败官员也能让百万公务员更加谨慎收手。

提几个近年来的案例,女星范某某的逃税案是广大娱乐明星的典范,头部主播薇某的逃税案是广大电商主播的典范,前国足教练李某的腐败案是广大体育系统官员的典范。事实上他们背后的类似案例一定多如牛毛,但如果没有典范的传染作用,惩教效果一定没有这么好。

接下来,勒庞认为,观点并非都是从上而下的。一些观点被大众普遍接受后,甚至会反过来迫使社会最高层接受它。如果对于统治阶级没有威胁的话,往往即便是荒谬的观点也是如此。西方社会对于LGBT群体的接受就促进了相关立法,允许同性之间存在婚姻关系,著名的有苹果CEO库克、openAI CEO山姆·奥特曼等等。

有野心的领袖可以充分利用群体中已经接受的观点,加以歪曲改造,然后在群体中传播,达到自己的政治目的。东汉末年的黄巾起义算是贴近这方面的案例,张角利用已经流传民间的道教(指当时的黄老道),改造成太平道,进而聚众数十万,沉重打击了大汉朝廷。在现代具有这种宗派特征的可以看乌克兰的人民公仆党。

声望

“声望的本质,其实是某个人、某本著作或某种观念对我们的精神统治”。

“在这种精神统治下,我们的批判能力被麻痹了,因此我们心中充满了惊奇和敬畏”。

声望是一种标签,拥有这种标签的事物,群体总是无条件的服从、接受和尊敬。将其视之为真理,对与这种标签有冲突的观点有一种天然的排斥和敌视态度。如果某个人具有一定的声望,那么他的一声号令,就会引得天下人振臂响应。

我们知道古代的皇族,特别是有一定皇位继承权的皇族,具有重建朝纲的声望,因此往往为掌权者所不容。于是,即便南宋、北蒙、南明势力微不足道,后继者仍然有必要兴师动众将其铲草除根。

在近现代,我们知道戴高乐、胡志明、金日成、曼德拉、昂山素季、朴槿惠都是具有国家领袖级别威望的人,因此他们一旦有条件,就能轻易上位组建政府,操控国家命运。不过这些人的声望来源各不相同。

昂山素季、朴槿惠之流属于明显的先天声望型,来自于她们的父亲。在中国,有一个名词叫做出身,一个人一生的命运,富贵或贫贱,很大程度上取决于出生的家庭和环境。比如“星二代”往往从小开始就自带流量,借着父母的影响力就能获取大量资源,这是草根所无法比拟的。这种先天声望往往需要本人的持续表现而加强或减弱,如果能力不够强大,依然逃脱不了被抛弃的命运。比如昂山素季虽然短时间内获取了政权,但在军政府的专制力下仍然弱不禁风,逃不过再次入狱的命运。

后天声望来自于个人的成果、职位或者财富。比如马斯克拥有在商业及科技界的声望,爱因斯坦拥有在物理科学方面的声望,前德国总理默克尔拥有在政治界的声望,而科比·布莱恩特、C罗等拥有在体育界的声望,成龙拥有在影视界的声望。

不过,一旦这些人失去了给他们带来声望的东西,那么声望自然也会很快消失。比如当年叱咤风云的“铁娘子”撒切尔夫人、苏联解体时黯然下台的戈尔巴乔夫,更遑论那些退役的体育明星、演艺明星和生意失败的大商人。

可见,无论哪种声望,“成功是声望的一个重要基础,因为如果没有了成功,声望几乎也会烟消云散”。昂山素季、朴槿惠和小布什同样具有先天的政治声望,但是这两位女性全都失败了。“下周回国”的贾老板因为造车始终不成功,从10年前的成功企业家变成了有国不能回、人人喊打的落魄商人。而我们最应该要提到的是跨栏飞人刘翔,他在成功时,万众瞩目,他在失败时,全国人都在落井下石。

只要不是拥有绝对权力的独裁者,你几乎不可能在长期的社会活动中始终保持成功,你终将有年老体衰的那一刻,如同武则天一样,声望将会离你而去。因此,适可而止、急流勇退有时候是一种明哲保身的智慧。所以有这么一种观点,历史人的一些名人,不长命反而给他们带来了名垂青史的好名声。

作为领袖,你与群众的接触越多,越会暴露自己的缺点,从而影响声望。勒庞认为,“要想让群众敬仰你,你就必须永远与他们保持距离”。可见,领袖建立威望,强化其领导地位,必要要脱离群众。如果你只是一个小团队的领袖,你应当注意不要与大家私下里走太近。

第二卷 第四章 群体的信念和主张的变化范围

这一章的核心观点其实在前面已经不止一次的提及过了。勒庞认为,群体的信念可以分为恒久而强烈的牢固信念,和短暂易变的主张。

前面说过,由于种族、时间等因素的影响,长期的信念很难形成,但一旦形成,也不容易消除。如果要消除它,往往需要暴力革命。孙中山领导的辛亥革命对封建制度的颠覆就是这样的典型案例。不过,中国革命者一开始并未意识到这一原理,因此一开始尝试的是温和的方式,但并未成功。

虽然如此,即便暴力革命能消除长期信念,但也仅仅在于这种信念正在失去对人们的控制力之时。20世纪初,受到东西方各种革命思潮的影响,封禁帝制快速被中国人所抛弃,这才让辛亥革命得以成功。因此,“暴力革命就是用来清除最后的信念残渣的”。

对勒庞来说,印象最深刻的仍然莫过于法国大革命了。2011年利比亚爆发的内战则是利比亚人民对独裁者卡扎菲的信仰崩塌,类似的还有同年埃及总统穆巴拉克的下台以及更早的苏联解体。试想,有一天如果伊斯兰教失去了某个穆斯林国家人民的信仰,那么可能就会产生一次暴力革命彻底颠覆国家制度。

普遍信念如果还没开始动摇,那么人们将会无情地维护它。中世纪意大利人布鲁诺的焚刑就是典型的案例。直到现在的一些政教一体政权中,违反教义也将会得到无情的惩罚。即便有时候这些信念看上去很荒谬,坚定的信众仍然会坚定不移地奉为圭臬。比如印度人相信肮脏的恒河水以及牛尿能净化身体、治疗疾病,这已经不能用迷信来解释了。世界各地都有奇奇怪怪、形形色色的荒唐信仰,只要有人相信,它们就会一直存在。

勒庞在这里抨击了社会主义,他认为其无法成功,甚至都不如宗教,他说“宗教信仰允诺的那些幸福理想,只能在将来实现,所以没人能提出异议;而社会主义信念允诺的幸福理想,则应该在当前的世界实现,因此只要将其付诸实践,它的允诺的空洞无物就会立刻显露无遗,这种新的信念也就会立即身败名裂。”对此我们在这里无法过多评论,大家可以参考东欧剧变和苏联解体自行理解。

关于群体多变的主张,我们在前文中也有多涉及。由于群体易被暗示、传染的特征,导致群体在一些观点上特别容易左右摇摆。不过,这种摇摆是轻风吹过水面激起的涟漪,并不长久,特别是那些与民族观念相悖的观点,一定会被群体所抛弃。

勒庞提出一个观点,即在他的那个时代,群体主张频繁多变远超过去,主要是由于三点原因造成的:

  1. 旧的信念的影响力日渐缩小,无法再像以前那样对暂时的主张施加影响
  2. 群体的力量日益变大,受到的阻碍也越来越少
  3. 报业最近的发展策略,是不断地为大家提供完全相反的主张

由于时代的不同,这三点原因虽然不能完全且显著地在今天的社会表现出来,不过如果细加分析就能发现一些雷同的端倪。

我们以中国的互联网网民为例(他们是最容易观察的群体,且不涉及敏感政治因素)。这些人非常容易受到舆论导向的操控,成为很多热门事件推波助澜的帮凶。今天虽然实体报业早就落寞了,但只不过以互联网新媒体的方式重新出现,而且对群体的触达更加直接。过去你还需要付费买报纸才能看到的新闻内容,今天会强行推送到你的手机上。在这样的连接下,只要一种观点被抛了出来,一定就会快速建立起一批观点的追随者和反对者。

有时候观点会一边倒,持有该观点的群体凝聚在一起,发起的舆论战会轻易影响互联网之外的社会行为。最近,娃哈哈集团创始人宗庆后去世后,网民们开始了对农夫山泉及其掌门人的攻击,导致其产品销量的下降。我们能看到典型的群体褊狭特质,同时也看到了群体能发挥的巨大力量。

这样的舆论之下,有的政府官媒会尝试纠正不健康的观点。过去数千年里的大部分时间,中国人习惯了对政府毕恭毕敬,习惯以安分守己的老百姓自居。但今天的社会中,越来越允许有不一样的声音出现,网民们常常对官媒的观点发起驳斥,甚至是嘲讽。政府(特别是低级政府部门)对网络群体的影响力愈来愈低。

第三卷 不同群体的分类和特点

最后一卷我们关注的有效内容并不多,特别是其中关于陪审团、选民、议会的内容都是西方的制度,与我国大相径庭,仅供参考,不做过多叙述。

勒庞将群体分为异质性群体同质性群体。前者是群体的低级形态,往往由不同种族的人构成,而后者具有更多的共同特征。

异质性群体又可以分为无名称群体有名称群体,区别在于前者没有责任感,而后者有责任感。

我们试着举一些例子来说明。旅行团的成员属于无名称群体,除了行程相同外,他们没有什么共同点,一旦遭遇导游的霸凌,大多数时候不能做到共同对抗。参加“两会”的人大代表们属于有名称群体,虽然他们来自五湖四海,但是参会的目标和职责是相同的。

同质性群体可分为派别身份团体阶级三种。

派别的成员具有共同的信仰,比如都是共产党员。身份团队在此基础上则具有相同的职业、受教育程度或者领域,比如大学教授们。而阶级成员的共同点是利益和类似的生活与教育习惯,比如那些热衷于移民的明星、企业家们。

作为普通人而言,从不同方面讲也是不同类型群体的成员。比如每日上班打卡的白领蓝领们,也许衣食无忧,但是过度依赖经济大环境和产业兴衰,使得他们对就业环境的好坏特别敏感,这是阶级群体。这其中,白领们受教育程度更高,拥有更轻松的工作机会,这是身份团体。有些人笃信佛教或基督教,日常常常参加相关活动,这是派别。如果他们去乘坐公共汽车或者参加社会志愿服务,这又是无名称异质性群体和有名称异质性群体。

勒庞以犯罪群体、重罪法庭的陪审团群体、选民群体和议会群体为例来解释了一些异质性群体的行为特征。

犯罪群体有时候受到群体内传染以及暗示的影响,犯下杀人等重罪的人可能并不认为自己在犯罪,而是在伸张正义。勒庞列举了法国大革命时期的案例,而这种案例无论在法国还是在世界各地,包括中国都屡见不鲜。在很多美国的影视剧中,我们能看到一群非裔青少年相互鼓动去抢劫,杀富济贫。行为当事人可能并没有意识到严重性,群体内的范围让他失去了对是非的判断,这也是为什么当家长们对孩子是否有不良朋友特别敏感的原因之一。

西方的陪审团制度,今天的中国香港仍然在施行,往往被告是否有罪要取决于几位来自不同背景、工作、教育程度和社会经验的陪审员。这带来一个风险,即如果陪审员被操控或影响,那么将会导致冤案错案。作为异质性群体,陪审团的判断能力参差不齐,在群体的那些特点影响下,做出的决定往往也错误百出。如果有某一位陪审员具有主见性,那么律师只需要影响或干预他的判断即可。1995年著名的美国辛普森杀妻案,陪审团作出了被告无罪的判定,引起巨大轰动。

选民和议会群体的表现,我们从西方整体的表现上就能看出来,无论是美国总统的选举还是英国议会的辩论赛,都具有浓重的戏剧性色彩,和儒家文化的稳重相比天差地别。由于群体做不出来什么理智性的决定,因此那些结果我们看一看就得了,票数无非都是用脚投的。

最后的总结

《乌合之众》不到12万字,我用2万多字做出如上浅显的理解分析。我们总以为,最近200年是人类社会发展的狂飙阶段,时隔一个世纪甚至几十年都是天壤之别。在技术面貌上确实如此,但是从智力、思想上来看还有待斟酌。我以为,至少从这本书上来看,人类的表现并没有什么本质性的变化,至少这200年是如此。

由于我们每个人都身处不同的群体环境当中,因此也不可避免地受到潜移默化的同化和暗示。过去我们很难发现,但是读完《乌合之众》,也许就可以具备在某一瞬间打开“上帝视角”的能力,重新审查周围人的表现和自身的言谈举止,让狂热降下温来,变得更加理智。

总结《乌合之众》的关键词:“无意识”、“传染”、“暗示”、“低智”、“简单”、“服从”。

(文中大部分图片采用AI生成)

本文整理自“莺见”微信公众号:


(全文约1.2万字,阅读大概需要24分钟)

读《乌合之众》的机缘,偶然从一位视频博主那看到了(事实上是听到,因为我总喜欢在睡前听一会儿,期望是快速入眠)对这本书的简介,印象最深的是对“crowd”这个词汇的释义,因此立刻从网上买下这本书,并不贵。

原以为这是一本读起来很晦涩的书,毕竟心理学方面我完全没有基础,不过读下来代入感很强,并不枯燥,其中有不少有趣的断言和案例。加上全书才不到12万字,短时间内读完并不困难,有一些章节我反复“咀嚼”了多次也不觉得枯燥。接下来,我尽可能地用我的理解对这本书加以总结和提炼。

大众心理学之大众二字,不同于普通心理学对个人的研究,它致力于描绘群体的行为模式。群体必然是由很多人构成的,他们往往能做出一些规模更大、影响力更深远的事情。因此,研究大众心理学,能让我们从新的视角看待历史上和现今社会上发生的一些事情,甚至有可能作出行为预测。

本书由三卷构成,所在篇幅比例大概是 1.5:1.8:1,它们分别是:

  • 第一卷 群体的心理
  • 第二卷 群体的主张与信念
  • 第三卷 不同群体的分类及其特点

我认为,就信息量的价值而言,是依次递减的,前两卷要远大于第三卷,因为第三卷里面包含政治、司法相关内容,和中国国情差别较大,因此我建议快速阅读即可,用以加深对前文的理解。如果你时间不充裕的话,甚至不阅读也不会影响太多。

受限于篇幅,本文我就只讲第一卷。

序言

勒庞在本书的序言中说到,“今天这个时代的主要特征之一,就是群体的无意识行为代替了个人的有意识行为”。我认为这句话是本书的核心观点,第一卷定义了什么是群体,第二卷解释了如何影响群体的行为,而第三卷则举例说明了这种行为。

如何理解这句话呢?勒庞生活的年代相当于从鸦片战争开始到抗日战争之前,对中国来说是近代最为动荡的一个世纪,其实对于法国来说也不太平。他作为军医参加过普法战争,并亲眼见证了巴黎公社的始末。而在他出生的70年前,又发生了法国大革命(攻占巴士底狱、路易十六上断头台)。可以说,勒庞看到或研究过近代法国的多次变革,而这些都是对法国、欧洲乃至整个世界产生了深远影响的重大事件。

为什么这么说呢,因为这些事件不再像之前由君主、皇帝这些贵族集团操控,而是由人民大众起事,可以称之为民族革命。这也意味着,过去由一人的行为,发展成了民族大众的行为。研究历史的走向,不再是研究贵族阶层,而是研究由无数人组成的群体。《乌合之众》这本书发表于中日甲午战争后不久,很遗憾没有来得及采用到中国在20世纪初的一系列的革命史料。

勒庞在讲无意识的行为时,提到一个词汇:本能。他说,无意识的行为是深藏在生物中的秘密,往往很难看到,很难解释。我觉得以此来类比,十分恰当。

勒庞认为,一个种族在思想、观念和信仰上是相当稳定的,但是一旦发生变化,就可能会造成一次历史上的大动荡。他引用的案例是罗马帝国的灭亡和阿拉伯帝国的建立。按照这个思路,我认为中国古代的农民起义,特别是明朝的建立,都属于这一类。

现如今(指1894年前后,距今130年),人们的思想又在发生新的变化,主要原因有二:

  • 宗教、政治和社会信仰被破坏
  • 现代科学和工业文明的发展

我想,勒庞提出如此理论应该是在担心很快有新的社会动荡。对于法国乃至欧洲来说,如果认为两次世界大战属于这类动荡的话,那么我们可以说勒庞作出了成功的预测。对于东亚、南亚来说,代表性的有印度和中国,当时毫无争议地正在或即将发生大动荡、大变革。这是世界的趋势,这种动荡是人类历史在近代的标志性事件,但是我们从更大的时间尺度来看,我们还无法确定这种变革在21世纪初这个时代是否已经停止。

勒庞认为,群体是野蛮、不讲理的,总是在搞破坏,即便如此,我们也无法阻止。事实上,群体的一项重要任务就是摧毁陈旧的制度和文明。从这一点上来看,陈胜吴广起义、黄巾军起义、安史之乱、黄巢起义、太平天国这些规模浩大的农民起义,确实符合其特点——虽然起义本身都没有成功(教科书告诉我们是因为农民阶级的局限性),但是都显著地缩短了统治政权的寿命,可以认为就是这些农民群体,摧毁了当时的腐朽制度。

当然,这些可称得上是大动荡的事件在2000多年里反复上演,则是多种因素构成的。发生一次社会变革,并不表示新政权就会吸取相应的教训。

第一章 群体的一般特征

勒庞所说的群体,并不是指物理上一群人的组合,他们必须要有某些相同的特质才能组成心理学上的群体。他这样定义:“自觉的个性的消失,感情和思想转向某个既定的方向,初步标志着群体正在形成”。

这句话也点出了群体的特征,即他从整体上形成新的“性格”,但并非是由个体的性格简单加和而成的,甚至是反面的。比如一个温文尔雅的人,在群体中很可能表现出暴力粗鲁的一面。就像大量脆弱的细胞能形成坚固的骨头一般。

勒庞提出,在人的社会活动中,有意识的精神生活只占一小部分,而无意识行为的作用却起主要作用。而这种无意识的行为,常常难以发现。如果你通过视频长期监控自己的一举一动,会看到大量自己根本不记得的行为,这些行为很可能只是受到脊髓神经控制的,而控制逻辑,则很可能来自于遗传因素。

一个种族中人群的无意识行为是趋于类似的,而且在个体之间差别很小,不会因为受教育水平的不同而产生巨大差别。正是这些共同的品质,当人们形成群体时,就会被放大到成为这个群体的特质,盖过了个体的个性。

那么是否意味着,不同种族的人群将更难形成群体?

也正是因为群体的特质来自于种族的低水平品质,因此群体整体上的智力是受限的,即“群体永远无法完成需要高知识水平的工作”。注意这是本书的一个很重要的推论。

这一推论很反常识,如果它是对的,那么将是对科学家团队的侮辱,比如在50多年前,美国的水星计划从提出到人类登月不也是在10年内完成了吗?

事实上还是要回到群体的定义上来,有组织的团队并不一定是心理学上的群体。勒庞对群体的定义已经作出了相当大的限定——它必然要求个性的消失,那么就意味着个体的长处就无法在组织当中充分体现出来。说回科学团队,你很难讲他们在一起工作时有什么明显的感情倾向,他们只不过在发挥自己的技能专长而已,谈不上情感上的维系。

于是乎一个更加令人咂舌的推论是:一群杰出的人组成的群体,做出的决定并不会比一群傻子强。这本书的中文译名乌合之众就是这么来的吧。

勒庞解释了之所以在个体和群体产生如此巨大差异,有三点原因:

  • 因为人多势众,个体在群体中会滋生一种不可战胜的力量,变得感情用事;
  • 人与人之间在情绪和行为上的强烈传染性,原因很难解释;
  • 最关键的原因,即容易接受暗示

我以为勒庞提出的这三点原因并不严谨,他在书中也说到第二点实际是由于第三点导致的,即正因为容易被暗示,从而导致了传染性。

这三点理解起来并不难,甚至有诸多案例可供印证。

人多势众形容个人在群体中的鲁莽行为是十分恰当的,我认为它的本质上仍然是暗示,暗示什么呢——做什么事情都无需负责。然而这显然是一种假象,这种暗示并非直接来自于人与人的信息交流,属于一种环境暗示。

法国大革命中发生了非常多的流血事件,类似事件200多年时间里一再上演。如果放在平时的独处环境中,他们几乎不可能做出如此行为,正是因为所处群体的环境下让他们丧失了独立的思考能力,变得为所欲为。

我认为,传染性是由于个人在群体中,对于得到的信息无法考证,在时间有限的条件下,只能被动相信的一种行为。历史上发生过多起由于恐慌心理的蔓延,导致人群踩踏的恶性事故。即便你对音乐再没有兴趣,在喧闹的歌舞厅、演唱会,也很难不被周围兴奋的人群所感染。传染不仅仅发生在人类社会,在动物身上也有明显的体现,比如马的炸群。

传染性不一定是负面的,也有许多积极的案例。比如处于高度紧张的战争中的士兵,领导者不一定需要军粮,但一定需要让大家士气大振的手段。士气就是一种能在群体中快速扩散的积极情绪,往往胜过机枪和大炮,甚至能反败为胜。我们能在历史看到太多太多即便拥有优势武器、人数和地形,仍然一败涂地的战例。在很多情况下,这种情绪甚至能够让人做出舍身忘死的举动,我们不能排除历史上的一些人物正是在这种群体环境下才做出了令人致敬的英雄行为的事实。

引起传染性的原因是容易接受暗示。我认为暗示仍然是在有限的时间内,在急需做出关键性行动的压力下,个体不得不根据有限的信息,经过简单推理或者没有推理(这是暗示则具象化为命令)而做决定的必然结果。关键点是有限信息、有效时间。如果你有充沛的时间,那么你就可以静下心来,尽可能排除群体氛围的影响,而做出更有理性的决定。然而,大多数情况下,你的思维早已被群体思维所淹没,你不愿意独自思考和决定,变得更加“随大溜”,相信最坏的后果也就是集体的后果,有什么可怕的呢。此外,你也会担心一旦自己的主见与群体发生冲突,将会被群体所针对和排斥。

在强烈的暗示之下,只要有一人最先喊出口号,就会有一群人振臂高呼,群体的鲁莽行为就这样产生了,而殊不知,这样的结果往往是少数人的期望而不是大多数人。作为群体,其实是被牵着鼻子走,其智力的低下体现得更加淋漓尽致。

第二章 群体的感情和道德

作为对上述群体特征的进一步分析和展开,勒庞从以下五点分别介绍了群体的各种特征:

  • 群体的冲动多变和急躁易怒
  • 群体的易受暗示和轻信
  • 群体感情的简单化和夸大化
  • 群体的褊狭、专横和保守
  • 群体的道德

毫不掩饰地说,我目前仍然无法断定这五点是否覆盖全面、是否有交叉,以及与第一章中的群体特征的关系。如果这五点是对前文三点的展开,那么我觉得有明确的对应是最好的。

既然勒庞没有明确指出,那么我们不妨自己尝试做一下理解和分析。

群体的冲动多变和急躁易怒

根据之前的分析,在群体中活动时,人往往受到的是无意识动机的支配,而非有意识的精神行为支配,换句话说,人们更加受到脊髓神经的影响,而非大脑的影响。

从这一点上看,群体的行为更加类似于原始人甚至是动物,受到外界刺激因素的反应更加剧烈。试想一下,你养了一条狗,你给它喂食,它会摇着尾巴乞好,你用棍棒打它,它会逃走,你真的弄疼它,它很有可能咬你一口。也许它不想咬伤作为主人的你,但是这种应激反应是不受大脑控制的。我把群体和动物做比较,是因为它们有着极大的共同点,就是低智。

在脊髓神经的控制之下,群体缺乏思考的能力,也就缺少了理性行动的机会,因此他的外在表现自然就是冲动多变的。只要外界刺激因为发生变化,就会导致群体的行为发生变化。

至于群体行为的优劣,则往往取决于外界刺激因素的不同。可以表现得很暴力残忍,也可以表现得谦和高尚。对于这两种结果,我在前面已经都举过例子了。

可以有一个推论,群体总是倾向于服从。这使得有野心的领导者利用大众来达成自己的政治目的成为了可能,中国历史上的数次农民起义无一不是如此。这要求领导者具有引导群体、煽动群体的能力,那么他们就应该对群体的心理有所了解,二战时德国的宣传部长戈培尔就是这种人的典型代表,这是后话了。

在冲动多变的基础上,群体总是倾向于对外界刺激导致的新想法加以实践,而人多势众的特征又让群体肆无忌惮。勒庞用了两个例子来证明:一是一份电报导致的普法战争,二是清末抗法名将冯子材的镇南关大捷,对法国来说无足轻重,但导致了法国总理下台。

如今,法国仍然常常上演着一出又一出群体的冲动,2018年的“黄马甲”运动,2024年的农民向政府大楼喷粪等等。事实上在网络上,这样的案例也无时不刻不在上演,我们看过了太多网络霸凌,引起舆论一片哗然,甚至必须政府部门发声才能平息。而这样事件的起因,往往是一些小事,其中很多还有诸多误会和反转。

例如2023年发生的祖孙二人插队事件,被送上热搜后,引起了一大波网友的愤怒,有甚者将二人的肖像做出了贴纸售卖。纵然二人行为多有不当,但何至于整个中国对其口诛笔伐。近期,梅西在香港表演赛上未能出场,导致整个中国成为其黑粉,这种愤怒甚至转移到了对阿根廷这个国家上,殊不知,之前呐喊“马岛是阿根廷的”的正是这群人。更加戏剧性的是,网友开始想起了C罗的好,回忆起了C罗来华时的种种细节,忘记曾经发出“梅罗时代,梅西完胜”论断的正是这帮人。群体的多变易怒在网络上体现得淋漓尽致。

总结一下,群体的冲动多变和急躁易怒可以认为是由于群体的无意识动机和人多势众所导致的。

群体的易受暗示和轻信

关于暗示,我在前面已经谈过很多了,这里主要讨论几个有意思的推论。

勒庞用了好几个案例来说明群体容易轻信的特质,或者称之为集体幻觉。当然,这种幻觉并非大家都像吃了毒蘑菇那样同时看到了不真实的事物,而是由于流言一传二、二传三这样子,逐渐让所有人以为自己看见过什么东西。

我能想到的一个经典案例,来自于1988年美国海军文森斯号驱逐舰在霍尔木兹海峡击落伊朗航空655号班机,造成290人罹难的事件。事后调查过程中发现,根据数据分析,发射导弹前负责监视飞机动向的雷达兵声称的“飞机正在俯冲”这一现象,实际并不存在。这一现象很有可能是当时的紧张氛围、有缺陷的技术数据对这名官兵的暗示所致,让他相信飞机正在俯冲攻击。

关于群体幻觉,近年来网上流传一个术语,叫做“曼德拉效应”。指的是很多人原以为曼德拉在上世纪80年代就已去世,事实上人家一直活到了2013年。类似的事情被网友挖掘出来了不少,什么“五十六个民族,五十六枝花”的歌词,又是什么儿时记忆中的动画片再也找不到了等等。

我认为这些都是扯淡,有这种心理的往往最初就只有一个人,他把所谓的遭遇煞有其事地讲出来,不断传播,以至于让很多人相信自己也有同样遭遇。而事实上很多人可能根本不知道曼德拉是谁,甚至在80年代还没出生,怎么会记得曼德拉的葬礼。所以我认为,所谓“曼德拉效应”充其量只是人云亦云的一次实验,证明了群体中易传染和轻信的特点,所有自称有类似遭遇的人都成为了实验对象。

勒庞认为,如果人们始终坚信自己的描述,那么我们就不能称之为欺骗,因为他们并不自知。而妇女和儿童更加容易受到影响,所以“妇女和儿童的指认在法庭上其实并没有多少价值”。

勒庞还提出了一个更加大胆的结论:“史书只是纯粹想象的产物而已”,“只有依靠神话,历史才能够书写下去”。

他认为,几乎所有的史实都是失真的,因为记录历史的人常常并没有真正看到历史事件的发生,那么一旦通过口口相传、人云亦云的方式获得史料,根据上面的理论,里面一定有大量的失实和幻觉。我们观察一下,中国历史上的二十四史,很多作者距离事件发生已经过去了相当长的时间,比如司马迁在《史记》中记录的三皇五帝,即便他参考了过往的史料,谁又能保证这些史料是真实可靠的。最终结果就是,我们看到的历史,往往是谎言、谣言和幻觉所组成。

我们无意在此攻击史书的价值,但仍要批判性地看待历史。

但是这并不重要,历史人物的行为,往往取决于人们想要他成为什么样的人。因此,即便真实的关羽是一个反复无常、自私自利的小人,但是历代的人们想要一个忠勇重义的形象,那么他就逐渐被人们塑造成了忠义无双的关二爷。

最终结果就是,真正的历史始终在被歪曲,那么教训就很难传递给后人,人们总会在同样的问题上摔跟头,人们所能得到的教训就是他们永远不会吸取教训,就如同那些去旅游被三番五次骗到玉石商店,听店长太子一顿忽悠的大爷大妈们。

群体感情的简单化与夸大化

我认为这一条和第一条在某种意义上是重合的。

正因为群体智力的下降,群体就会自然而然凸显出感情的简单化,进而表现出多变、易怒的原始人特质。也正是由于传染性以及人多势众的心理作祟,群体就会自然而然地对所得信息进行夸大化传播,毕竟无需负责,进而导致冲动和急躁的特点。

所有起因于低智力、容易接受暗示、人多势众、易传染这些因素的后果,似乎都可以归类为群体的特征。

我认为至少在对秦桧的切齿之恨上,以及对诸葛亮的极尽崇拜上,多少都体现了民族感情的简化和夸大。如果说这是历史造成的偏差,那么我们讲一讲现代。

2011年日本福岛核设施被地震引发的海啸破坏,2023年日本开始将受损核设施的冷却水排海,两次事件都引起了国人的囤盐热潮。如果说这批人中绝大部分人并不清楚氯化钠对核辐射有怎样的效果,我是不相信的,这是最基础的科学知识了。但是这样的事件依然发生,显然就是食用盐功能被夸大后的效果,也是群体恐惧核危害的感情被放大了,于是我们从中看到了群体的传染性是如何工作的。

群体的褊狭、专横和保守

褊狭(biǎn xiá)算是一个不常见的词汇,代表肚量小。

我认为这一特征和前两条仍然有重合。感情足够简单,自然就变得不容事,这和儿童的感情很类似。群体对外来的意见,通常要么全盘接受,要么全盘否定,因为群体没有足够的智力精挑细选,你必须喂给它现成的、无需更改的观点。那么这种观点必然是足够简单、容易被接受的。

至于专横,毫无疑问和前述的急躁易怒、感情简单有着千丝万缕的联系。正因为人多势众,事无忌惮,群体对外才表现得如此专横霸道,他们认为自己无所不能。暴力是专横的直接后果,发动法国大革命的那帮人,建立巴黎公社的那帮人,平时大多都是市井平民,却能干出流血的勾当。

如今在人多势众的场合,专横仍然屡见不鲜。有社会物业的保安集合与业主大打出手,也有因为刚好错过免费高速时段而聚集堵塞收费站的司机。即便是农村的土狗之间的战斗,都懂得拥有压倒性的成员数,就意味着成功了一大半。

然而专横直接带来的暴力行为掩盖了群体的另一特质,即保守。正因为群体的褊狭、低智,他们才不愿接受需要更多脑力的新事物,墨守陈规是群体的本能,为此,他们愿意抹杀一切新事物,名义上是“不习惯”,很多时候,这都是诸多抱残守缺的故事之根因。

昔日的那帮八旗子弟无法接受西方工业革命带来的巨大变化,实行闭关锁国的政策,就是一个很好的例证。历史上的王安石变法、戊戌变法等共同点都是受到了保守派的巨大阻挠而失败,但却不一定归咎于群体的保守本能,因为它们所处时期,群体的力量还不足以引起关键性影响的程度。相比之下,日本的明治维新虽然也遭遇到了旧武士阶级的武装叛乱,但是新政府改革决心坚定,拥有人数上的优势。

中国在改革开放的40多年里,特别是近20年由于互联网革命的兴起,大量的民众受到了强烈的影响。几十年前,相对于普通的农民,工人是一个更优越的社会阶层,拥有着让人羡慕的铁饭碗,只要能进厂,就能保证一辈子吃穿不愁,还能分房。这一状态甚至持续到了90年代中后期才发生了比较大的变化,我们熟知的下岗潮就发生在这个时期。太多人受不了如此巨大的落差,导致生活困难,成功转型的毕竟是少数人。

2023年的一部电视剧,范伟主演的《漫长的季节》,里面很好地展现了这一时期的民众生存状态。我认为这与我们现在讨论的群体保守问题是相符的,只不过,即便工人群体对于下岗表现出了激烈对抗的态度,但对于最终的结果却于事无补,对于政权和社会的稳定也没有产生明显影响。我想这有几方面原因:

  • 受到影响的工人阶层在社会中仍然属于少数人群,他们是城市中的一份子,但是对于占人口绝大多数的生活在农村的农民没有产生影响,事实上,农民们可能更愿意看到工人阶层的落寞;
  • 广大的工人阶层是在很长的一段时间里逐渐受到影响的,时间可持续10-20年,并非在短时间内全国如此。作为铁饭碗基地的东北地区影响更大,但是广大南方特别是深圳珠海早已在改革开放的春风下志得意满

如今,逼近21世纪20年代中期,如此变革仍然在发生,在过去十年互联网经济特别是疫情过后的直播经济兴起,曾经失去国企铁饭碗但是成功下海经商的那帮人,他们或者他们的下一代又要面对极度内卷的线上经济打压。而互联网行业的饱和甚至下行,又要影响多少计算机专业的大学生。

但不要以为这些就完了,未来变革发生的周期会越来越短,AI可能又会导致一大批人群的工作和生活发生巨大变化,我们能在这其中紧跟脚步吗?

群体的道德

基于前面的讨论,群体必然在道德上是不足的,因为急躁易怒、专横褊狭的这些特点明显与道德背道而驰。

但是很意外地,群体有时候也会表现出一些优良的品质,如无私、舍身忘死、忠诚等等,甚至比个人独处时表现得更加明显。我们不确定这种特征是否是群体传染性的结果,但能肯定的是,只要有一点道德的苗头,群体就会放大这种感情。

这种品质往往会让群体慷慨赴死,比如清末的戊戌六君子,以及在泰坦尼克号沉没时为他人让出救生艇位置的梅西百货创始人夫妇,电影《赛德克·巴莱》中为男人解除后顾之忧而集体自缢的妇女。而在卢旺达大屠杀和二战集中营中分别散尽财产解救上千人性命的那两位绅士,我无法断定他们的动因是什么,但和群体能表现出来的这种异常的高贵品质同样让人钦佩。

勒庞认为,正是需要群体的这种无意识的美德,文明才能出现,否则人们都理智地考虑自身的眼前利益,就和独居动物无异,这种群体中才看到的道德,鲜有在动物群体中出现。

勒庞说,群体的特征在妇女、儿童这种低级进化形态的人群身上更容易看到。当然,我们今天只能以儿童来举例,小孩子的不成熟体现在种种方面,比如脾气、判断力、智力、谎话,同时也包括爱心。这几点刚好能映射到上述五点群体特征上来。所以我们可以说,群体的行为从表象上就像小孩子一般,只要有一位成人作为领导人,群体就很容易俯首帖耳,如果放任不管,最终就是一堆散沙。不过不要轻视这堆沙子,只要足够多,仍然可以像流沙一样危险。

第三章 群体的观念、推理和想象力

群体的观念

勒庞认为,历史上发生的大动荡,往往都是由于群体的观念发生了变化。他依然举了法国大革命的例子。随着“自由、平等、博爱”的观念深入人心,法国人推翻了皇权的统治,在一个世纪里不断混乱,同时也引发了整个欧洲的动荡。

中国历史上的每次农民起义是不是也是观念的变化呢?要辩证地看,直接原因肯定是底层穷苦人民萌发了当前政权不值得继续效忠的观念,但深层次的原因仍然是不揭竿而起就活不下去了,从这一点上我们能看到群体保守的本能。

如果指望群体能在衣食无忧的环境下,为了争取自由、民主而去发动革命,显然是痴人说梦。即便是法国大革命,诱因依然是由于自然条件等因素导致的农民生活困难。

这种观念是由于客观因素一时兴起的,勒庞将其比喻为河水上泛起的小水花,更能引起人们的注意。不过,对群体影响最深的是那些遗传来的稳定关键,比如说宗教或者儒家思想。

这种稳定观念的形成需要漫长的时间,但是一旦形成,就会持续在群体的行为中发挥重要作用,想改变它难于登天。我们在理解一个国家、一个民族的行为和观点时,必须考虑到该民族的这种历史化沉淀的观念。

比如所谓中国的传统观念里,尊老爱幼、尊师重道等美德不断被宣扬,中国社会不允许出现半点与之相悖的言论出现,否则必然口诛笔伐之。还有一些,比如过年、婚育、工作等等,随着时代的发展,也出现了一些和现代社会发生冲突的观念,但并不占据主导地位。这些不再完全符合传统的观念主要出现在受过教育的年轻人身上,而且深受西方文化影响。

观念没有高贵和低贱之分。一个明显不合理的观念,只要被融入到无意识领域,即便在短时间内能被改变,但是很快就会重新回到原点。因为这时候的观念已经成为了群体感情的一部分。出生于上世纪五六十年的很多中国人经历过不能随心所欲吃饱饭的年代,因此普遍有着节俭的观念。如今即便生活物资足够丰富,也被教育过吃下腐败食物的害处,但是面对一个只出现一个黑洞的苹果,第一反应仍然是削去腐坏部分然后吃掉。

群体的推理

由于较低的智力,群体的推理也是粗浅的,甚至常常是错误的。勒庞认为,群体的推理能力浮于表面,更加是片面的。

于是,群体看待事物往往将特殊的当作普遍的。美国人从李小龙身上推断出中国人都会功夫,就好像全中国人都认为内蒙古人每家都有一个大草原一样。

如果有人精通群体的这个特征,就有能力以极端的、片面的、夸张的语言来煽动群体的情绪,并且常常是有效的。这在如今的网络上屡见不鲜,俗称“带节奏”。它会将一个孤立的为师不端事件,渲染成普遍的师生不睦现象,也能根据某些少数人群的个案,培养出一大批地域歧视。

可见,“群体不具备任何批判精神”。

群体的想象力

群体拥有十分丰富、强烈、活跃的想象力。说得更明白一点,就是群体总是会将看到的表象当作是真实的东西。

缺乏由表及里看待事物的能力,让群体的感情更容易被生动的形象所打动。领导者如果明白这个道理,就具备了驾驭大众的能力。

我们熟知的宗教无不是构建了一幅虚无缥缈的图景,激发出信众对伟大、崇高、博大的神的想象力。如果说这些对现代人都还不够形象的话,那么假设曹操麦田割发代首是真实事件的话,对当时在场的士兵一定是形象生动的,严明的军纪将得到切实的贯彻。

今天,对于在乌克兰战场上频频损失的俄罗斯人来说,没什么比总统普京隔三差五坐上轰炸机在天上兜一圈更加能激发民族斗志的了。

勒庞认为,“影响民众想象力的,是事件扩散和传播的方式,而不是事实本身”。因此,舆论控制是很多政权的必修课之一,特别是谣言。我们知道,中国对网络谣言的控制近年来愈加严格,谣言在开始传播后很快得以纠正,公众接受辟谣的信息来源往往是政府机关。虽然西方崇尚言论自由,但仍然不代表对谣言放任不管,比如美国特勤局就会持续监控网络言论,对严重的谣言制造者也会采取逮捕等强制性措施。

第四章 群体信仰所采取的宗教形式

前面我们也提到过,群体的信念十分牢固、持久。有一种特殊的观念,包括对首领或者信条带有无比虔诚、狂热的崇拜,甚至已经达到了造神的地步,我们管它叫做“宗教感情”。

上升到宗教感情的领域,群体对观念的坚持已经不满足于自身,而是积极地寻求传播,并且在此过程中会褊狭地不允许任何异见的存在。因此该种群体往往是社会动荡的重要因素之一,他们常常会造成冲突、流血甚至牺牲。

历史上的十字军东征以及上世纪的两伊战争,都有浓烈的宗教色彩,不过这种规模的冲突还带有很多其它因素,比如统治阶级的利益,所以并不是很好的能说明群体宗教感情的素材。

现代也有一些典型的案例,在中国互联网上,存在着饭圈文化这一现象。有些粉丝群体对所谓偶像的崇拜之极,往往让常人难以想象。去机场接机、购买唱片、表演门票仅仅属于入门级别,花巨资购买热搜流量也屡见不鲜,更有甚者在线下举办偶像生日会——自然只能是这群人自嗨了。

随着不断推陈出新的热门艺人,各自的粉丝群难免存在冲突,互撕谩骂、应援打榜、造谣攻击比比皆是。偶像们本人之间可能还没有交集,而粉丝团之间的战争往往已经愈演愈烈,甚至战况本事又上了热搜,产生了极坏的影响。而这些事件的导火索,往往仅仅因为某一个人的出言不逊。他们之间的争斗原因已经从对偶像的不敬,演变成了对自己信仰的挑战,这就说明他们已经形成了带有宗教感情的群体。

我们还需明确的一点是,历史上的大动荡,领导者只是扮演了煽动和点火的角色,真正的幕后主使仍然是群体。一个事件之所以会发生,是因为群体想让它发生。俄国的十月革命,我们很难想象靠列宁一人就能让它实现,其背后显然是那些想革命的俄国民众。但无需被群体的意志力和执行力所迷惑,只不过群体靠着人多势众在社会活动中发挥的作用越来越大。

总结

第一卷内容是本书的最重要部分,即便读到此为止,你也掌握了足够多的群体概念知识,具备了看待历史和当今社会重要事件的新眼光、新视角。我们来简短整理一下这一卷的逻辑。

由于人多势众、传染性、易被暗示的原因,个体在群体中时与独处时的表现大相径庭。他们原来的个性消失了,取而代之的是统一的感情倾向。整个群体表现得更低智、冲动、易怒,专横,在看待外部的新事物时,更加褊狭、保守以及轻信,就如同一个不成熟的孩子一样矛盾和善变。但这并非完全贬义,在适当的外部刺激下,群体也能表现出更高的道德品质,甚至远远超过个体的道德水平。

观念是驱动群体行为的关键原因。群体对观念的接受是极其迟钝的,需要相当长的时间才能深入人们的意识中,但一旦被接受,就很难去除,以至于即便其中的部分观念是错误的,群体的领导者也无意与之对抗。

由于群体的低智,他们的推理能力也十分有限。在形象的外界因素刺激下,他们更容易产生丰富的想象力,进而形成对信条或领导人的狂热崇拜。这时候,一种近乎宗教的群体就诞生了,为了维护他们的信仰,群体不惜发动血腥的暴动。历史上的诸多社会动荡都是如此被点燃。

认识到群体的特征之后,有野心的领导者就会开始着手制定驾驭百姓的手段和策略了,比如阿道夫·希特勒。我们将在下一文中继续讨论相关话题。

对于守分的普通人来说,假设我们未来身处群体环境时,是否有那么一丝机会,在某个瞬间能够打通第四维度,意识到自己正在被群体感情所控制呢,就如同黑客帝国的主人公?

(文中大部分图片采用AI生成)

本文整理自“莺见”微信公众号:


开篇

我继续阅读19世纪美国作家爱伦·坡作品。他的一些作品我觉得称之为小说太过了,因为涉猎范围太广了,有的是侦探小说,比如《玛丽·罗杰疑案》,有的是惊悚小说,比如《贝蕾妮丝》,有的属于科幻领域,比如《气球骗局》,今天我要讲的这部 《欺骗是一门精密的科学》,和《过早埋藏》在内容形式上比较类似,都是由一系列相关的故事整理而成,不过在领域上,则属于爱伦·坡自己对于一些事物的思考和理解,从这一点上来看,和《森格姆·鲍勃先生的文学生涯——《大笨鹅》前编辑自述》更属同类,只不过后者以含沙射影的方式呈现。这种就很难称之为小说,因为他讲述的一种事物、一种现象,却不是由完整的故事串联起来的。

《欺骗是一门精密的科学》先讲述了爱伦·坡对于欺骗的理解,而后通过一系列的小故事来呈现。

欺骗(1):买沙发

一位家庭主妇在一家家具商店看中了一张她中意且价格低于自己预期的沙发,于是她毫不犹豫地将其买下,付过钱,留下了地址,然后就回家等待送货了。

但是,等来等去,甚至到了第二天,沙发都还没有送过来。家庭主妇于是派仆人前去询问耽搁的原因。但是商店老板矢口否认有这笔交易,根本没收到过钱。原来,与家庭主妇交易的是一个冒充老板的骗子。

这种李鬼骗术非常常见了。近几十年来由于网络的普及,这种诈骗往往以网络和电话的形式进行,比如知名的缅北电信诈骗,常常就以伪造特定人员身份的形式进行,如海关、警察等国家职能部门。在线下倒不多见,毕竟骗子需要避开正主,我印象里比较深的是陈翔六点半中的一则视频,以电动自行车为道具实施了连环诈骗,算是一种这种骗术的升级版。

欺骗(2):找零钱

一个衣冠楚楚的人来到一家商店,买了1美元的东西,但是却发现没带钱包。于是他和老板提议,将东西送到他家,并带上4美元的找零(因为当时的1美元比价值钱,所以老板才愿意送货上门)。

接下来老板就派一名伙计前去送货,然后“偶然地”在路上碰到了那位顾客。顾客表现得很惊讶,他说由于他还想去买其它东西,因此提议先把找零给他,让伙计继续去送货,并煞有其事地说他妻子正在等待送货上门。

显然,那名伙计并没有找到顾客的家,他是一个骗子!

这种骗术考验人对人的信任。这位老板起码最后还拿回了货,但现实当中钱货两空的诈骗比比皆是。和老百姓息息相关的,比如在咸鱼上买东西或卖东西,碰上不靠谱的买家卖家,往往就是钱货两空。有一个问题值得深思:拼多多上的退款不退货,算是什么呢?

欺骗(3):关税单

这个骗术和第一个故事几乎相同。一艘正准备起航的货船船长,从一个官员模样的人手里拿到了价格公道的关税单,因为急于起航,立马就交钱签字了。

不曾想,15分钟之后,另一个人送来了价格更高的另一份关税单,原来前面那一个收税员是冒充的!

可见事出反常必有妖,成年人不应该幻想白来的好事。

欺骗(4):遗失的钱包

同样是发生在船上的故事,一名乘客火急火燎地赶上了正要解缆起航的汽船,忽然弯下腰捡起了一个钱包,问道,这是谁丢失的钱包?

竟然没有人应答,这位乘客发现钱包里面有大量的现金,这引起了轰动。船长要开船了,已经没有时间等来失主。

于是,这位乘客向岸上的一位先生提议,由他来持有这个钱包,等待失主的到来,并声称失主一定会付出酬谢。

那位先生回答道,你才是应该拿到报酬的人,毕竟是你捡到的钱包。乘客说,那好吧,但我只需要50美元,这里面全都是100美元的大钞,你先给我找零吧。

于是,那位先生就先给了乘客50美元,这时汽船开走了。

半小时后,那位先生发现钱包里面的百元大钞全都是假钞!

这次骗局需要非常多的因素共同作用,在现实中几乎是不可能实现的,它太复杂了。现实中的骗局往往更简单,如果你常常上网,应该会发现非常多的类似案例。
比如,有人在你面前突然从地上捡起了似乎是别人丢失的财物,作为共同见证者,他提议和你均分。但是这财物不可分割(可能是物品,也可能是大钞),因此提议东西归你,你给他找零。
印象里我就曾经遭遇过这样的事,但具体是我的亲身经历还是只是看到的新闻,已经记不清了。总之这种骗术在现在几乎已经过时了。

欺骗(5):过桥费

在某地将举行一次聚会,到达那个地点需要经过一座可自由通行的桥。一个骗子出现在桥头,向每一位过桥人或骡马征收通行费。由于所有人都不知道这座桥本身就是免费的,因此只能交费通行。

毫无疑问,这种骗术主打一个信息差。在2023年这种粗暴的、无耻的骗术仍在上演:微软知名编辑器软件Visual Studio Code竟然被某国人包装成收费软件要价70块!

欺骗(6):狗肚子里的欠条

某骗子欠一位朋友一笔钱,那位朋友持有这份借款的字据。于是,这个骗子就用同样类型的字据,蘸上肉汤让他的狗纵身扑食。时间一长,这条狗就会觉着这样的字据是一种美食。

等到该还钱的一天,骗子带着这条狗来到了朋友家里,等到朋友拿出了那份真的字据,一口就被狗吞下了肚子。

这已经不是诈骗了,这是赤裸裸地耍无赖!接下来应该是一场恶斗吧,但是毕竟对方有狗。

欺骗(7):英雄救美

一名女士遭到一名男子的攻击,这时骗子出场了,他飞身相救,将攻击者击倒,并送女士回家。女士问该怎样感谢他,他说你借我两块钱吧。

显然,这两块钱要和那位站着不动等着被击倒的同伙一起分赃。

这类骗局有可能成为狗血爱情故事中的一环,但也可以通过变形的方式出现在日常生活的方方面面。说到底,这是“托”的行径。“托”无所不能,有的在售楼处营造售卖火热的假象,有的在奶茶店反复排队打造新的网红饮料,有的则在农村大集上为老头老太吹嘘保健品的疗效,不胜枚举。

欺骗(8):雪茄与白兰地

一个骗子来到一家酒馆的柜台,要了两支雪茄,闻了闻,和伙计说,我不太喜欢这种烟草味道,给我换一份白兰地吧。

喝完白兰地,骗子就径直向门口走去,当然被酒馆老板叫住了。

“先生,你的那杯白兰地还没有付账”。

“我用雪茄换的白兰地呀!”,骗子说道。

“你的雪茄也没有付过钱”。

“雪茄没抽我付什么钱呀”,说完骗子开门扬长而去,留下一脸惊愕的酒馆老板。

这则故事大家一笑了之即可,毕竟不可能真的发生,不过应该可以发现,这和宋小宝在小品《吃面》的故事几乎一模一样。
我们不能断定小品的编剧就是参考了爱伦·坡的这部作品,也许只是时隔百年的巧合。况且保不齐爱伦·坡也是从哪里收集来的素材,我不能再考证清朝道光之前的西方文学内容了。

欺骗(9):招聘

最后一个骗局,爱伦·坡用了很多文字,但是情节却不复杂,我试着归纳一下。

一名看起来像实业家的中年绅士租到了一间房子,并且要求房东在特定的时间来取房租,他不会提前付账。

接下来,他登报发布招聘计划,并声称新设立的公司更看中员工的品格,因为员工入职后将经手巨额款项,虔诚的教徒优先录取,并需要缴纳50美元保证金。

结果呢,自然是多名求职者的数百元保证金不翼而飞,连房东的租金也找不到人要了。

我们必须感叹,我们认为新奇的荒唐之事,在历史上都能找到原型。
当今社会,我们无时不刻不在遭遇到老板跑路的困扰,不论是包工头还是健身房。即使在招聘上,我们也能看到点子欺诈,入坑传销等事件。更有甚者,贷款上班也是常见之新闻。

爱伦·坡的欺骗观

欺骗是人类的天性,是其他物种所不具有的特质。人从一出生就开始欺骗,直到其终老死亡。欺骗包括一系列元素:细小甚微、自私自利、不屈不挠、足智多谋、胆大包天、从容不迫、别出心裁、傲慢无礼和喜欢窃笑。

不过毕竟爱伦·坡不是在写论文,大可不必去严格论证他的这些描述在结构上和逻辑上是否自洽规整。他更善于的是形象——形象地描绘了欺骗的特点。

姑且不论欺骗的善恶,单论欺骗所需的技巧,足以显示出人类作为高级动物所倚杖的智慧。智慧之下的却是狡诈、势力和粗鲁,但这是生而为人、为动物所注定的。爱伦·坡讽刺欺骗,但是也不得不承认欺骗是人之社会最普通不过的现象,从200年后的我们来看,这将始终伴随着人类的发展。在信息化的时代,未来机器会不会学会欺骗呢?


我阅读的是来自于江西人民出版社出版的,曹明伦翻译的《乌鸦:爱伦·坡短篇小说精选》一书。

本文整理自“莺见”微信公众号:


最近励志读完全部爱伦·坡作品,太多关于心理、恐怖、幻想的哥特式文体实在过于烧脑,不想今天遇到一篇风格完全不同的文章《生意人》,为我添加了许多笑料,我想应该是爱伦·坡作品中极少的轻松、诙谐类的内容。

主人公(以下称为“我”)自诩为有“条理”的生意人,这一些都要归功于小时候因为吵闹而被保姆倒着抓起来,脑袋磕到了床柱上,鼓起来一个疙瘩。“我”认为这是自己的“条理器官”。

“我”鄙视传统的天才,因为他们都过于循规蹈矩,任何正当的职业实际上都是蠢材在做。

“我”曾经被父亲推进了一间账房做事,不过两三天后就受不了了,因而抱病回家,终于在六个星期后捡回了一条命,不过还是庆幸摆脱了再去账房的“厄运”。

“我”16岁开始离开家闯荡,开始了一系列的匪夷所思,令人啼笑皆非的职业经历。

“我”的八种生意经

第一份工作是服装流动广告界。名字听上去很高大上,实际上是在街道上招揽顾客到服装店消费,这里面含有一定的忽悠成分,比如“毁损黑布料按墨绿色布料售出”。

虽然爱伦·坡在将近200年前写下这篇作品,不过并不过时。这种勾当让我想起了超过15年前,当时在西安上学的我,和来西安旅游的亲戚包了一辆出租车游览秦皇陵兵马俑的经历。
司机将我们带入了一间玉器大卖场(现在大家都清楚旅游城市玉石生意的水之深了吧)。好在司机提前和我们沟通过进去看看就行,只为了商场奖励司机的加油票。但是恐怕并非所有司机、所有旅游城市都如此透明,近年来欺诈游客的恶性事件不可尽数。
最近刚刚发生一起云南丽江一个旅游团因为一家游客没有买5万元的玉器,将其抛下的事件,造成了非常恶劣的影响,我打赌整个行业、政府有关部门不会吸取任何教训,类似事件将持续发生。

一般这种角色都需要外向的性格和积极的沟通能力,一旦成功,就会有一定的佣金激励。不过看到“我”的账单——是的,有条理的“我”做这种工作必然要仔仔细细、一丝不苟地记账:

金额$
7月10日 常规街头行走并领客上门 0.25
7月11日 同上 0.25
7月12日 撒谎一个,二级;毁损黑布料按墨绿色布料售出 0.25
7月13日 撒谎一个,一级;特别质量和尺寸;推荐水磨缎为绒面呢 0.75
7月20日 购新式纸衬衫领或称假前胸,以衬托彼得呢外套 0.02
8月15日 穿双衬短摆上衣(温度计在阴凉处显示华氏706度) 0.25
8月16日 单腿站立三小时,以展销新式背带裤,每腿每小时12.50美分 0.37½
8月17日 常规街头行走并领回顾客一名(肥胖大个儿) 0.50
8月18日 同上(中等个儿) 0.25
8月19日 同上(小个儿并出低价) 0.06
$2.96½

折腾了一个多月,收入还不到3美元,百分之一百是吃不上饭的。即便如此,最后仍然因为佣金的问题和服装店铺的老板撕破了脸,不欢而散。原因仅仅是因为账单中最小的那一笔——0.02美元,服装店老板只认可其中的一半。就这样,虽然“我”失去了这一份“生意”,但仍然感到骄傲和欣慰——因为“我”是熟悉这门生意行情的。

“我”的第二份生意是“眼中钉”,这可是一门了不起的生意。顾名思义,具体操作方法,假如有人想盖一座大楼,“我”就在要盖楼的地址附近占住一个角落,等到大楼盖了一半,“我”就建起一座虚有其表的建筑,比如农舍、塔房甚至是猪圈!

建筑商当然会要求“我”拆除,当然“我”自然会漫天要价,不给的话,“我”就晚上用烟灰涂黑他们的大楼。结果,“我”被送进了监狱。

显然,在涂黑人家大楼之前,“我”的所作所为并不违法。

这种不犯法但是恶心人的行为在当今社会也比比皆是。比如洗车店不交保护费,黑社会就开车来洗一整天。再比如收不到运费就不让卸货的货车,会被货站调来两辆车前后夹击,不让你动。最终目的无非都是敲诈勒索,爱伦·坡的那个美国早期时代有这样的事,200年后又岂有消失的趋势?

“我”的第三份生意是“挨打”,并依然为此记录下了日记,大家感受一下原文:

“1月1日(元旦):街头偶遇斯纳普,步履踉跄。备忘:潜在主顾。稍后又遇格拉夫,酩酊大醉。备忘:也是潜在主顾。二位绅士均记入分类账,并各自开立流水账户。
“1月2日:见斯纳普在交易所,迎上猛踩其脚。他握紧拳头,把我击倒。妙!重新爬起。在索价上与代理人巴格有细小分歧。我拟索要伤害赔偿金1000美元。但巴格说那样被人一拳击倒我们至多只能索赔500美元。备忘:务必辞退巴格,此人毫无条理。
“1月3日:上剧院寻格拉夫,见他就座于一侧面包厢,在第二排一胖一瘦二女士中间。用剧场望远镜观察那伙人,直到看见那胖女士红着脸对格拉夫说悄悄话。我起身过去,然后进入包厢,将鼻子凑到他伸手可及之处。他没扯我的鼻子,初试未果。擤鼻再三,仍未成功。于是坐下朝瘦女士眨眼,此时心满意足地感到他抓住我的后颈把我提起,并把我抛进正厅后排。颈关节错位,右腿严重撕裂。欣然回家,喝香槟一瓶,在那位年轻人账上记下5000美元欠款。巴格说索价合理。
“2月15日:私了斯纳普先生一案。入日记账金额:50美分(参见账目)。
“2月16日:格拉夫一案败诉,那条恶棍给了我5美元。支付诉讼费4.25美元。纯利润(参见日记账)75美分。”

争取到挨打的机会,首要的是不要脸式的欠揍。“我”为能在短时间内取得1.25美元的净收入而感到振奋(虽然与预期之间有莫大的落差),不过毕竟身体吃不消,“我”又换了另一份生意。

大家应该能感受到,“我”的这种挨打行径在当今社会与碰瓷有异曲同工之“妙”。
甚至网络上多有“你碰我一下,我即刻去提新车”的调侃措辞,足以见当今社会黄冈沦丧之剧。

“我”的第三份生意是“溅泥浆”。这份工作非常有意思,但是“我”仍然认为这是一份严肃且需要条理的生意。只需要在路口的泥坑旁,扫出一条干净的道路,穿着干净裤子的人们都会抛给“我”一个个铜子,当作过路费。

这让我想起了看过的一些非洲人的视频,黑人收一些小费,在土坑之上搭建木板来让顾客的摩托车经过,或者一些孩童收费来帮助破烂不堪的汽车驶过村边泥泞的道路,他们肯定不希望路被修好。

但是“我”开始不满足于这样的正经营生,于是将生意发展为“狗溅泥浆”业。具体做法是与一只浑身沾满泥浆的小狗合作,只要遇到衣着光鲜的人,就上前去蹭一蹭,惹得人家破口大骂。而“我”,自然就坐在旁边支起了一个擦鞋摊,只需要一分钟就能赚到6美分。

但这并非一本万利的生意,因为这只小狗太能吃了,赚到的钱的一半都要分给它,导致“我”和它最终也决裂,甚至“吵了一架”。

这一段故事很有意思,而且更加典型地影射了现如今的一些不良现象,比如近年来听说有的修车店为了争取更多的补胎生意,故意在道路上遗撒钉子。有一部韩国电影讲述了同样的故事。

和小狗分道扬镳之后,“我”又开始做“街头演奏手摇风琴”的生意。这可不是一门艺术,它不需要任何技艺,只需要用榔头敲击手风琴几下,让它发出嘎吱嘎吱的噪音即可。

接下来,“我”只要沿街行走,在必要的位置停下来,摇响手风琴,就会有人打开窗户,一边抛下6美分,一边骂道“让那玩意儿住声,赶快滚开”。而我考虑到成本的问题,10美分才能“滚”。

这和如今的一些职业乞丐有什么区别?一些乞讨人员堵住商铺、甚至婚车,不给钱就不走,实在可恶。
我小的时候,每逢过年,总会有人挨家挨户送财神爷,不买的话,大有赖着不走的意思,一般5毛钱他们就能血赚,而不谙世事的我,有一次愚蠢到给了5块钱。

由于街道太过泥泞,以及霸道的居民、讨厌的孩童等客观因素,这一份工作“我”也没坚持下来。几个月后,“我”又找到了“假邮政”业务。

这个套路足以让人眼前一亮。具体做法是,“我”准备好假的邮包,假的信件,上面盖上假的邮戳,寄信人是(杜撰的)汤姆·多布森或博比·汤普金斯,然后冒充邮递员去送信。那个时候可能需要收件人付邮资(即“到付”),收信人打开一看,是毫无意义的涂鸦,才发现自己上当了。不过这时候“我”早就转过了街角跑掉了。

由于这个行业需要走路足够快(否则可能又要变成“挨打”的生意),并且还需要频繁更换工作区域(毕竟人们不容易二次受骗),再加上全城人对汤姆·多布森或博比·汤普金斯的骂声不绝于耳让“我”心怀不安,“我”又金盆洗手了。

当今,假快递已不是什么罕见的事情了。商家有时候需要假快递来刷单,但更多的,是以快递为幌子行欺诈之事。比如免费送东西,但需要你付邮费,人家赚的就是邮费,还有盲盒之类的。
这种事情并非无良小商家才做得出来,有体量的大型电商中,这也是典型的套路。比如一个蓝牙耳机,让你幸运地抽奖抽中了,但需要你花费20元邮费快递到家,其实耳机加上邮费可能仅价值10元。

虽然以上数种生意都没能坚持长久,不过功夫不负有心人,“我”还是找到了人生的终极生意,即“养猫”。

美国政府通过了《禁猫法》,鼓励猎杀猫,上交猫头可换取4美分,后来改成猫尾。于是“我”用全部积蓄购买了公猫和母猫,繁殖小猫,然后剪断猫尾巴上交,不断获利,甚至最后都能买下一幢别墅。

有人说这是在讽刺政府的愚蠢,我觉得倒不如在讽刺人心险恶。利用政策的漏洞古往今来比比皆是。不往远了说,近年来中国政府为了发展新能源产业,拨付了大量的补贴资金。
而这些资金真的用在了刀刃上了吗?在补贴取消前的那些年,看看市场上的新能源汽车是怎样的设计和质量?还有多少车被生产出来从来没有卖出去?

总结

爱伦·坡的这篇精彩的短文,告诉我们,时代虽然在发展,技术虽然在变革,环境虽然在改善,但是人这种复杂动物却不见得改变了多少。潜藏在人内心当中的狡诈、无耻、慵懒、自大,不会消失,只会以新的形式表现出来。

《生意人》是爱伦·坡为数不多的(甚至可以说是唯一的)轻松诙谐、易于理解的作品。建议大家有时间读一读,我阅读的是来自于江西人民出版社出版的,曹明伦翻译的《乌鸦:爱伦·坡短篇小说精选》一书。

(文中大部分图片采用AI生成)

北京延庆,亲戚家在2017年养了一只公的金毛犬,取名“拿铁”。和大多数金毛一样,拿铁性情活泼又温和,而且认人特别快。我们一年里很久能去一次,它就已经把我们全记住了,不再汪汪叫。


2017年

这是2017年10月4日的照片,当时它还是一只半大狗,推测不超过一岁,大概率也出生在2017年,这一年的7月底,我家小孩出生。

这是2017年12月9日的照片,平时它就待在笼子里,每天固定时间放出来溜一溜。

作为一条狗,它的伙食倒是很让人震惊,亲戚家常常特意蒸馒头来喂给它。

2018年

这是2018年3月27日的照片,不得不说,拿铁在金毛中的长相并不优秀,和网上看到的金毛长得不太一样。

这是2018年9月8日的视频,我牵着绳子遛它:

2019年

这是2019年3月3日的视频,我继续牵着绳子遛它:

这是它在标记领地:

这是2019年10月5日国庆节假期,依然在笼子里:

2020年

转眼到了劳动节,这是2020年5月3日。由于疫情的原因,我从春节后就一直在家办公,直到劳动节假期后。

2022年

2021年全年没有拍拿铁的照片,可能去延庆的次数也非常有限。

2022年1月1日,元旦:

2023年

2023年9月29日,提前来延庆过十一假期(怎么拍得这么丑):

2024年

2023年2月11日大年初二,春节串门,傍晚时分风停了,带着孩子出去遛弯:

这是2月13日大年初四,在喂它吃香肠:

这个时候,拿铁已经生病了很长时间,明显感觉到它不那么欢实,每日只坐在大门前,或者躺在门前的马路上,需要过往的汽车鸣笛,才会慢吞吞地起身。

即便不生病,拿铁也不是那种惹是生非的狗,遛它已经不需要牵绳,它会乖乖听人的话。在街道上遇到了一众小狗的挑衅,即便拿铁在身型上有压倒性的优势,它也不会主动攻击,而是尽量避其锋芒,算是胆小的体现吗,我不知道。

有时候觉得拿铁是一只傻狗,但有时表现得也比较有心机,比如我从家门口出去遛弯儿,它知道你出去溜达,于是会慢慢地跟着。但是表现得漫不经心,总是和你保持一定的距离,不用盯着你,也知道你在哪边,你走远了,它也会小跑跟上来。

这是在冰面上打滚,它会看着我的走向,来决定是否从冰面上上来:

我尽量顺着它的意愿路线来走,除非遇到其它不好惹的小狗,我没有绳子,担心强行通过那条路不好控制,而拿铁也知趣得跟我掉头。有时我停下,它也会趴在地上,啃着雪吃。我感叹动物竟然能吃脏雪不闹肚子,忽然又想到那个理论,动物虽然可以吃喝不卫生,但是它们大多数寿命都很短

直到我上车要回家那一刻,它还以为我要出去溜达,又跟了上来,我喊道:“快回家,bye-bye!”。


昨日(2024年2月18日)晚上忽然得知,即便送拿铁去过兽医院,它仍然病重不治,活了大概有7岁吧。

本文整理自“莺见”微信公众号:


不久前,因为一个短视频的原因,忽然对江户川乱步的这篇《人间椅子》有很大的兴趣,便从网上买了一本来阅读。

看完过后的感受是果然现在的短视频平台都是标题党,这篇小说肯定没有吓死人那么夸张,但由于我买的这本新星出版社的书是一本小说集(这是必然的,毕竟《人间椅子》只是一篇短篇小说),我有机会阅读到了更多江户川乱步的作品,进而接触到了日本推理小说的早期形式,特别是本格推理。

这本书的目录如下:

  1. 《人间椅子》
  2. 《接吻》
  3. 《跳舞的一寸法师》
  4. 《毒草》
  5. 《蒙面的舞者》
  6. 《飞灰四起》
  7. 《火星运河》
  8. 《花押字》
  9. 《阿势登场》
  10. 《非人之恋》
  11. 《镜地狱》
  12. 《旋转木马》
  13. 《烟虫》
  14. 《带着贴画旅行的人》
  15. 《目罗博士不可思议的犯罪》

这些作品各有特色,大部分带有悬疑元素,但并非都有让读者意外的结局。甚至其中一部分还带有开放性的结尾,引人深思,读完仍能回味无穷。

故事梗概

人间椅子

《人间椅子》确实是一个不错的故事,反转设计得很惊艳,而且是两次反转。可惜的是,作为今天被各种悬疑电影、短视频信息污染的我,在阅读的中途就猜出来后续的故事走向。

为什么我能猜到有人藏在椅子当中呢?第一是我可能把小说名记成了“人体椅子”,第二是看过一部来自国外的叫做《stuck》的短视频,讲的是一个男人藏在体操垫子里偷窥女运动员的故事。

但我应该还看过和《人间椅子》剧情更接近的故事但细节已经想不起来了。总之,各种因素的影响之下,这篇小说对于我的惊奇程度并不高,但是我相信在 100 年前的那个时代,读者一定有非常不一样的感受。

值得一提的是,椅子中藏人这种桥段,在乱步的多部作品中都有使用,比如《黑蜥蜴》就不下一处。

除了带有一些惊悚和悬疑元素之外,我们还能看到《人间椅子》中的主人公,即制作这把椅子的工匠,虽然拥有了一份能自食其力的工作,但毕竟人生受困于经济条件和阶层,对有钱人的生活充满好奇以至于最终走上偷窥这条路的心理,多少带有一定的变态。

这种变态是小人物的无奈,是不同阶层的矛盾。在现今的小说和影视剧中,有许多这种情节,让人看着既心酸又可气。越处于社会下层的读者越会觉得感同身受:“凭什么他们那么有钱人,而我只能每日辛辛苦苦工作才能勉强吃饱饭”,“如果有机会,我不惜冒险也要去获取富人的财物!”。而社会上层的人对此类小人物必然是嗤之以鼻的,“你算什么东西,敢觊觎我的财物和生活环境”。

这种矛盾是必然的,社会的分层在目前的人类社会发展阶段是无法短时间内消除,贫富的加大虽然有一定的客观因素,但是却容易被放大到完全忽视个人的主观条件,引起一些人在心理上的扭曲。

回到《人间椅子》这部作品本身,乱步在最后给出了两级反转,工匠先说他就是那个窥视女主人的藏在椅子里的人,而后又说他这只是一部他自己的文学创作。孰真孰假?显然,这是不可能在真实世界上发生的,只不过留给读者一个回味的元素。在故事里同时也让女主人真假难辨,即便只是工匠的一部文学创作,想必她也会把那个椅子扔出家门吧。

接吻

这一部小说的绝大部分篇幅都是从男主人公山名宗三的角度描述他的心理活动。故事以他在偶然间的一次下班回家后发现妻子阿花捧着一幅照片亲吻开头,他发现那幅照片是他的上司,同时也是阿花远方亲戚的村山。因此,新婚后本来是“乐得手足舞蹈”的他越想越气,最后甚至直接向上司村山发火,怒而离职,回到家和妻子摊牌。

妻子知道事情缘由之后恍然大悟,立即解释了这一切,原来是宗三看到阿花亲吻照片的时候,碰巧是通过一面镜子看到的,导致他后来去寻找照片的时候,翻错了抽屉,看到了村山的照片。事实上,阿花是在另一个抽屉面前亲吻的是宗三本人的照片。由于这一次的误会,使得宗三丢掉了公务员的职务,对家庭的经济造成了无可挽回的影响。

这是一部典型的解谜故事,最后的解释也算逻辑通顺,因此我觉得可以算是本格派的作品。但是《接吻》的一大亮点在于,乱步在揭示谜底之后,竟然“打破第四面墙”,有一段和读者直接对话的文字。

这段文字在今天看来自然有一些争议的描述,比如:

“反倒是女人表面上好像傻得一问三不知,心底里其实都盘踞着天生的狡诈”。

不过这并不重要,重要的是乱步给出了这个故事的另一个可能的真相,这种开放的结局在乱步的作品中多次用到(比如《盗难》中给出了不止两种)。如果有画面的话,只需要阿花嘴角的一次邪笑,就能让人无限联想,这在现代的悬疑类型的影视作品中几乎是标配的元素,为下一部的故事埋下伏笔。

跳舞的一寸法师

这部小说讲述的是一个“逼人太甚”的恐怖故事。一寸法师是马戏团里的侏儒角色,在下班之余总会受到团内其他成员的无情戏弄,苦不堪言。

在一次戏弄过后,大家起哄让一寸法师表现节目,他就和踩球美女阿花(话说阿花真是乱步的一个常用人名,就如同希区柯克的玛丽一样)一起表现斩首魔术。

斩首魔术自然就是将美女置于箱中,将几把大刀插入箱内,营造出一种必然插入箱中美女身体的假象,而后甚至将美女头体分离。

不过一寸法师借着酒劲,假戏真做,真的将阿花杀死,并将其斩首。当阿花被刀刺发出尖叫时,周围的人还以为她在表演,而无任何察觉。

显然,一寸法师长期受到同事的压迫戏弄,忍无可忍,才做出了如此行径。我们虽然不能赞成其做法,但必然能深深理解其心理上的痛楚。

单纯作为一篇悬疑反转作品来看,此类意外并不少见,我在阅读到一寸法师用刀刺阿花的情节时,就已经能猜测到了结局,少了不少乐趣,不过这是由于我先入为主地以悬疑小说的角度来阅读所造成的,这种阅读心理,在遇到有推动情节的关键行为时,就会基于经验来极力搜索所有可能性。

毒草

这是一篇只有五千字的短文,情节倒是很紧凑,讲述的仍然是关于底层苦难人物的故事。

“我”与友人在野外散步遇到一株具有堕胎功效的草药,不经意将其用法讲了出来,未料到被身后不远处的一个女人听见。

这个女人是“我”的邻居——邮差家的妻子。邮差50多岁,收入十分微薄,却顿顿要喝酒,最重要的是家中还有6个孩子,有的还有病。这一切都压得女人喘不过气来,而她现在又有了身孕。

毫无意外地,草药能堕胎的消息不胫而走,不仅邮差妻流产了,连带着的还有另外两家女人。因此可以说,那一天“我”和友人的谈话间接导致了3条生命的流逝,那一株草药也被薅“秃”了。

我们在这里要看到的是底层人物的不幸,至于“我”的行为是对是错,难以分辨,虽然对3条无辜生命是不公的,但对家庭来说,未尝是坏事。

不景气的经济是乱步作品中很多故事、很多小人物的背景,这也是乱步早期作品的写作时局,当时正值一战之后,东京遭遇大地震,又逢经济危机,造成很多人陷入失业窘境。我们将在后面的作品中看到更多同一时期的故事。

蒙面的舞者

这是一篇十分荒唐的故事,主要元素仍然是悬疑小说中常用的误解、巧合。

“我”被邀请参加一个非常私密的俱乐部,该俱乐部面向上流阶层来定期组织刺激性的活动,会员17人,轻易不扩充会员。只有一名会员退出的时候,才会邀请新成员加入。

这一天,会长来“我”家做客,邀请“我”参加他组织的一项俱乐部新活动,即蒙面舞会。17位会员,外加17位不知名的女士一同参与。

容易让人想歪,虽然剧情还没如此不堪,但也称得上是恶作剧了。在舞会上,34人组成17对男女,在舞池中跳舞。等到活动结束,“我”烂醉如泥,摘下了面罩,却吓得女方落荒而逃,留下一封信,“我”第二天才看到。

原来女方是另一名会员井上次郎的妻子!“我”开始怪罪会长竟然安排如此污秽不堪的活动,但后来会长的说辞是——每对男女其实是夫妻而已:

“以为是宝箱,打开一看,竟是旧货。”

但“我”显然搞错了,竟然和井上次郎互换了女伴而不自知,全都是因为“我”看错了号码,把7看成1,导致了如此荒诞的结果。

在无聊生活中寻求刺激,这种元素在乱步作品中多次出现,大部分自然是有钱人,穷人都在为生活奔波,哪有时间无聊呢。印象最深的当属《红色房间》,这是一个更离奇的故事,后面再聊。

飞灰四起

《飞灰四起》讲述了一个杀人犯自以为是的故事。庄太郎是一名画家,与奥村一郎是情敌,但却要靠后者接济生活。在一次“借”钱不成之后,庄太郎拿起手枪杀死了奥村一郎,然后逃走。

庄太郎害怕杀人的事实被发现,因而想出来一个嫁祸他人的主意。他找到奥村一郎的弟弟奥村二郎,并从奥村一郎房间的火盆中找到一个脏兮兮的球。他引导奥村二郎认为是自己打球时,球飞入二楼的屋子中,刚好击中奥村一郎拿着枪的手,引起走火,而后飞入地上的火盆灰之中。庄太郎希望奥村二郎将这样的推论告诉警察,从而给案件定下意外的结论,他就能逃过一劫。

没想到很快奥村二郎却带着警察找到并逮捕了庄太郎,原来奥村二郎反应了过来,那个火盆是他和庄太郎谈话当天才搬进来的,怎么会装有奥村一郎被杀当天的球呢?而且,警察找到了卖给庄太郎球的商店老板,庄太郎买到球之后做旧,故意放在了火盆之中。

在间接证据之下,庄太郎认了罪。原来这只不过是他的一场拙劣的推理表演。

这个故事带有显著的逻辑推理元素,不过和一般的在开始把疑点抛给读者的故事不同,《飞灰四起》在开始就把真相叙述了出来,并和读者一起构造出了不存在的真相,最后再迅速推翻它。

我觉得故事中反而对人物的刻画倒是很逼真,比如庄太郎杀人后瘫痪式的体态表现和断片式的思维,真实地表现出一名普通人在如此遭遇后的反应。

如果要挑刺儿的话,一名落魄的画家,哪里来的能力在短时间内构造一个逻辑推理的故事呢?当然,结果也反映了他的“不专业”。

火星运河

这部讲述的是一个男人的奇怪梦境,倾向于抒情,词藻比较华丽,但基本不属于推理悬疑范围,不做评论。

花押字

这又是一篇带有浓重误解、巧合元素的故事,两级反转,还算是比较有意思,结局令人唏嘘。

老门卫栗原一造讲述他一段年轻时的故事。在30岁左右的时候,因为失业(“不管干哪一行,都撑不了一年”,简直是乱步在描述自己,同样背景在经济不景气时期),整天在公园的长椅上久坐。

这一日,他在公园邂逅了来东京找工作的田中三良。田中认为自己见过栗原,二人相互述说了自己的过往经历,发现并没有重合。几日后,栗原造访田中,田中想起了为何他觉得见过栗原。

原来,田中有一个他姐姐北川澄子过世后留下的盒子,里面的随身镜后面藏着一张照片,照片里正是学生时代的栗原一造。田中常常拿出照片,怀念姐姐,所以误以为认识栗原。

因此,一个可能的事实上,北川澄子曾经倾心于栗原一造,但栗原原本认为北川过于高冷,不容易接近,最后娶了北川的同学阿园。北川可能因而抑郁而死。

得知此事,栗原一造自然感到造物弄人,他和田中要到了哪个盒子和随身镜,常常睹物思人,甚至想去北川的墓碑前,无奈路费不足。

谁知,这一天,这件遗物被妻子阿园发现了,不想从她口中得知了一个令人震惊的事实。原来这个盒子原本就属于阿园的,甚至她在上面刻下了有她和栗原名字首字母的押字,但是在一次修学旅行中丢失了。

这样看来,阿园和北川具有同样首字母造成了一些误解,甚至栗原倾慕的北川还可能是个小偷!

多么可笑的故事啊,利用死者遗物造成误解的故事,乱步还有其它作品,比如《戒指》。从真相上来看,是不是栗原要对妻子阿园更好一点才对啊,毕竟她在十几年前学生时代就倾心于栗原,否则也不会把他们俩的名字刻在盒子里。

阿势登场

这是一个类似《水浒传》中武大郎的故事。格太郎是个时日无多的病人,妻子阿势常常出门与姘头鬼混。但是格太郎为了孩子,仍然与其维持表面上的和平。

这一天,阿势打扮停当,又出门去了。格太郎吃过饭,儿子正一带着小伙伴来家里玩。格太郎给孩子们讲了几则故事之后,便和他们玩起了捉迷藏。

格太郎将自己藏在了母亲出嫁时的旧大衣箱中,结果孩子们没能找到他,都出去了。等到他自己想出来时,才发现刚巧不巧,箱子的金属扣子意外锁住了!

格太郎呼喊,但是没人听得见他。他想挣脱,但是箱子很结实,他又患病,根本没有力气,只能疯狂抓挠。慢慢地,箱子里的空气开始耗尽。

刚好,阿势回来了,她隐约听见了格太郎的动静,刚将锁扣打开要把箱子盖揭起,忽然冒出了一个恶毒的念头。

她又迅速将盖子压紧,扣上锁扣,并离开房间,任凭格太郎癫狂地抓挠呼喊。

最后,格太郎死亡,警察认定这是一场意外。等尸体搬走,阿势与格太郎的弟弟格二郎都看到了箱子里有格太郎的抓痕,隐约可辨认是“阿势”二字。

这里,乱步给出了两种解读,一种是格太郎死前还惦记着阿势,这也是格二郎所认为的。而我们知道,应该是第二种,其实是对阿势的控诉和诅咒。

阿势获得了不菲的遗产,将房子卖掉,带着儿子离开了。她也卖掉了那个旧大衣箱子——如此不祥之物。

最后,乱步引导读者进行了一次天马行空的设想,如果有人买下了那个大衣箱子,他会理解上面抓痕的意义吗?留在箱中的恶念,会给新主人带来什么呢?

我立刻就能想起看过的无数恐怖片,依据一个大衣箱这个旧物件,《阿势登场》刚好可以作为故事的前传。

这个故事的特殊之处显然在于“恶人”阿势没有最终得到惩罚,这里有一个发人深思的问题。作恶和不作为,前者真的比后者更严重吗?阿势听到丈夫的呼喊不去救,与救到半路又反悔,哪一个更为人所痛恨呢?

即便不去作恶,如果仅仅是作出看似无关痛痒的轻微合法行为,但是却引起了严重意外后果,这又和上述两种行为如何对比呢?

将来我们还是看看《红色房间》的恐怖假设吧。

非人之恋

这篇故事剧情比较简单。以一名女子(京子,即“我”)对10年前的回忆开头。

当年十九岁的“我”通过媒人介绍嫁给了世家望族的丈夫门野。在出嫁之家,就有传言说门野性情古怪,脾气不好,并且还厌恶女人。不过门野清秀帅气的外貌和忧郁的气质还是吸引了“我”。

婚礼之后,门野对“我”呵护有加,让“我”悬着的心多少落地了。但是这样美好的时光不过半年,“我”便发现了古怪。

先是丈夫的态度发生转变,不再像之前那样关切“我”。而后,“我”发现他常常在“我”睡熟之后,偷偷起床,奔屋后的土仓库二楼而去。

土仓库二楼本来只装了一切祖先的旧物,一开始“我”并没有在意,但随着丈夫一次又一次如此,甚至还刻意探查“我”是否睡熟的鼻息后才离开,更加让人对真相欲罢不能。

为了搞清楚,在一次丈夫出门后,“我”悄悄地跟了上去,在黑暗中爬上了土仓库二楼,在门外听到了可怕的动静。

屋内有男女交谈的声音,男声自然就是丈夫门野。这声音自然让“我”认定是丈夫金屋藏娇,顿感悲伤。等门野从屋里出来,“我”想继续等待,想看看到底是哪位女子,但却一直没有人从屋里出来。

三番两次的监听之后,女子再也坐不住了,她几次来到土仓库内部搜寻,想找到有其他女子存在的证据,但是翻来翻去,找到一具精致的人偶。难道丈夫每晚都在和这具人偶说话吗?那女声来自哪里?

人偶在日本民间具有不一样的意义,历史上存在许多相关的传说,比如照着某人形象扎的人偶,生死就会同步到其人身上,如同巫毒娃娃一样,在中国的很多宫廷故事中也有类似的记载。还存在一种职业,叫做人偶师,专门制作精良的逼真的人偶,也算是一种文化,在维基百科的词条“日本人形”可以查阅到更多信息。

一种日本人偶(图片来自维基百科)

不过《非人之恋》中的人偶,与其说拥有摄人心魄的神秘力量,倒不如说是门野迷恋人偶的奇异心理作祟。有这种心理的人物和故事有很多,乱步在《乱影城主》中就有他收集到的多个奇异故事。

说回故事,最后“我”一怒之下砸碎了这具人偶,等到丈夫发现时,悲痛欲绝,竟然选择自杀与之殉情,可见其迷恋人偶之深。

这种小说中的悬疑色彩并不浓烈,不过从阅读体验上来看,乱步描述“我”心理活动的文字能够一步一步引导读者读下去,比如以回忆作为故事开头的方式,为读者埋下了疑惑的种子。接下来,又以门野的传闻作为引子,将读者一步步带入故事情节中,逐步渲染出关键疑点(土仓库),最后突然揭开谜底。

无论怎样总结,都不如阅读原文的体验。我越来越觉得,即便对于重在叙事的悬疑小说,如果没有丰富词藻的陪衬,效果也会大打折扣,成为像希区柯克那样的流水账。

镜地狱

这一篇讲述的是一个离奇的故事,却没有多少悬疑成分在内。

故事讲述者(即“我”)的一位朋友,家境殷实,有着一种异于常人的爱好——镜子,包括各种透镜。他喜欢用望远镜观察远处的人,监视仆人的一举一动;也会用显微镜观察细小的如昆虫般的事物。

他迷恋镜子越来越深,就像打开了一扇通往异世界的大门。他消耗父母留下的遗产,在家中建立起一座实验室,整日忙于其中,其痴迷程度甚至开始影响他的健康。

他不断收集各种各样的镜子、透镜,以至于最后在家里搭建起一座玻璃工厂,以制造在市面上买不到的形状。

有一日,“我”忽然被叫去查看这位朋友的境况,似乎出了莫大的问题。到达他的实验室之后,发现里面有一个容人的玻璃球,里面发出了咯咯的疯狂笑声。急切之下,我“打破”了玻璃球,里面正是那位形同枯槁的朋友。

最后那位朋友不治而亡,至于他为何最终癫狂,不知为何,可能是他在这个球形镜子内部看到了什么可惧的事物。

这种带有发狂元素的故事,读起来有点像爱伦·坡。爱伦·坡善于刻画人的心理,特别是变态的心理,发狂并不罕见。乱步的作品相比之下更现实,少有对发狂人物的塑造。

不过对于镜子这种东西,乱步的作品中很常见,这源于他本人对镜子的痴迷,他在《幻影城主》中就说到过自己对镜子的无限遐想,包括星空宇宙,他还对美国新建设的巨大口径的望远镜表现得饶有兴致。

用望远镜窥视他人的行为,乱步在多部作品中有使用,比如接下来的《带着贴画旅行的人》,以及中篇小说《阴兽》。

值得一提的事,文中曾提到这位朋友用镜子将昆虫放大数百倍,让“我”心生恐惧,这段描写应该源于乱步对蜘蛛一类生物的天生惧怕心理。

旋转木马

格二郎是一位落魄的喇叭手,在游乐场的旋转木马上日复一日地吹奏相同的乐曲。他有一位“黄脸婆”妻子和三个孩子,大的12岁,小的才3岁,糟糕的经济状况和生活环境让他每日早早地离家赶去上班。

他上班的另一个、或者说是最重要的原因还是因为同样在旋转木马上工作的年轻售票女孩阿冬。阿冬18岁,和格二郎一样穷困,姿色一般,但是毕竟豆蔻年华,仍然具有一定的吸引力。

阿冬和格二郎住在同一个方向,每日下班后同路。渐渐地,比阿冬大一轮的格二郎对她产生了好感,如果哪一日阿冬没来上班,他会觉得工作很无聊,喇叭吹得都没有气力。

一日下班路上,阿冬对街道旁商店里的一条披肩产生了兴趣,非常渴求能买下它,不过毕竟经济上不允许,她每月赚的20多圆薪资不可能去买7圆多的披肩。格二郎想替阿冬买下披肩,不过他赚的也不多,而且家里还有歇斯底里的黄脸婆和三个儿女。

在一次工作中,格二郎看到阿冬卖票时,被一位鬼鬼祟祟的男青年偷偷地塞了一封信到她的裤袋中。他觉得一定是一封情书,不免心生醋意。经过了一番心理斗争之后,在下班时,还是偷偷地把那封信从阿冬身上顺了过来。

打开一看,那不是什么情书,竟然是藏有一百圆的某人的薪水袋。原来那位青年是个扒手,在被警察盯上之后,急忙之下将赃物藏在了完全不知情的阿冬身上,被格二郎误以为是在送情书。

现在,失主和扒手都不可能来取钱,即便来,格二郎也不会承认,而阿冬则完全不知道身上曾有一笔“巨款”,考验格二郎的时候到了,他该如何处理这些钱呢?

显然,这笔意外之财能让他有能力为阿冬买下那条披肩了,想到这不禁激动万分,甚至叫上游乐场的同事开启了一场无声的狂欢……

格二郎又是一位乱步笔下的生活在那段经济低迷社会环境下的小人物,虽然年纪已长,但是仍然不得不为了生活去做那不值一提的、按部就班的老工作。年轻的阿冬成为了他生活中的一道光,吸引着他不断逃离压抑的、“歇斯底里”的家庭。而旋转木马,是格二郎的工作,同时也影射着他日复一日不断重复的无奈生活。只有依赖一笔“幸运”的外财,才能让格二郎短暂地随意所欲一次。

烟虫

这是一篇带有反战色彩的故事,在二战期间一度被禁止出版,不过它写于九·一八事变之前的1929年。

在战场上身负重伤的须永中尉,由于失去全部四肢、听觉和声带,导致他只能以眼神和外界交流(描述具体形象的文字令人感到不适)。妻子时子因为数年来“无微不至”的照顾,成为了忠烈的典型。夫妻二人目前无偿借住在须永的老领导家的别馆里,得到了老领导的一定照顾。

在须永中尉刚刚负伤时,社会各界都对以报以热烈的嘉奖,让夫妻二人感受到了短暂的荣耀。不过时间一长,大家都全部忘记了,时至今日再也没人提起须永中尉的“英勇事迹”。只有老领导每每还穷尽溢美之辞赞扬须永中尉夫妻二人。

面对如此微薄的精神施舍,听得多了,时子也开始觉得刺耳。除了拜访老领导家以外,时子无处可去,丈夫不能说话也听不见,只能靠眼神和用嘴写字与其简单交流。不过须永中尉原本就是没读过多少书的粗人,残废后更加是只能整日发呆。

与向外表现的忠烈不尽相同,私下里,时子却把已成为了一团肉的须永中尉当作玩偶一般,表现出了对似人非人怪物的极近变态的蹂躏欲望。具体细节不方便多讲,乱步也没赤裸裸地描述,只能脑补。

终于在一次发泄之后,时子突然发现须永的双眼流血,赶紧找来医生,也只能简单包扎,连医生都被这团肉吓得够呛。

果然,须永的眼睛瞎了,除了触觉之外的唯一感官被剥夺了。试想一下一个人,不能自由行动(但还能扭动),看不见,听不见,说不了,几乎像有意识但却不能动的植物人一样,把灵魂封锁在了肉体内,是何等地残忍,简直就是受罪一般。

果然,等到时子将情况讲给老领导,并与其一起来看望须永中尉时,忽然发现他不见了,他竟然靠着像虫子一般的身体蠕动着下了楼梯,在草丛中爬行。虽然他眼睛看不到,每次也只能前进一寸,但是仍然在时子和老领导的目光中精准地找到了那一口枯井,毫无犹豫地栽了下去……

这篇故事描绘是战争给个人所带来的极度创伤,即便再多的荣誉,也不过是暂时的体面,余生必将留下无尽的痛苦。须永中尉是直接受害者,但是妻子时子不也是么。她对已成为怪物的丈夫虽然没有直接放弃,但是孤苦伶仃的生活也让她滋生出反常的扭曲心理。

带着贴画旅行的人

这是乱步口中“不知是现实还是梦境”类型作品中的一篇。乱步学生时代酷爱冥想,甚至在宿舍内将自己关在衣橱内发呆。在路上行走,如果有人跟他讲话,他都会觉得打扰了他的思考。

乱步对梦境着迷,或者是精神方面,他阅读弗洛伊德,创作出许多与梦境有关的似是而非的故事,其中包括梦游。可能正因为他偏爱沉浸于自己的思想世界,才自称《幻影城主》。也许这也是一个人能成为作家的必要特质吧。

故事讲的是在火车上偶遇到的一位老人的自述。“我”去鱼津看海市蜃楼回程路上,火车座位的斜对面,坐着一位打扮得体的似40岁又似60岁的男人,他随身携带着的一幅贴画引起了“我”的注意。

这位老人拿出了一个19世纪的古老望远镜让我观察这幅画,我意外拿反望远镜让老人十分惊慌。“我”观察后,对画中栩栩如生的人物感到十分震惊,乱步在这里不吝词藻地加以描述。

而后,老人讲述了这幅画的故事。少年时,他的哥哥虽然每日仍旧上班,但明显变得意志消沉,沉默寡言,家人都很担心他。明治28年(即1895年)4月的一天,老人(当时不满20岁)跟踪哥哥的去向,想知道他到底在干什么。

哥哥来到了东京浅草十二阶,拿着望远镜向下看。这时,弟弟叫住了哥哥,哥哥才道出了原委。

原来,某日哥哥向下用望远镜观察时,意外发现一位端庄美丽的女子,顿时患上相思病,每次前来只为能再一次一睹芳容,无奈事与愿违,摘下望远镜后便难觅其踪。

这次,哥哥似乎又看到了那位女子,急忙叫上弟弟奔向浅草寺寻找,但是找来找去却找不到,连那幢用作标记位置的房屋都没看到,二人不慎走散。

等到弟弟发现哥哥,他驻足在窥孔机关(应该是类似那种通过一个小洞观察内部玄机的生意)的小摊前面,上去查问,原来哥哥已发现那位美人实际上是一幅贴画中的人物“阿七”。

哥哥让弟弟倒置望远镜看他,弟弟看着看着,只见哥哥越来越小,最后似飘在空中不见了。最后, 他竟然发现哥哥已成为了贴画上的人物,与阿七左右相伴,也算随了他的愿。

火车上的老人看到“我”拿反了望远镜如此惊慌便是因为如此。故事没有完,阿七本来就是假人,因此青春常在,但是哥哥却容颜渐老,直到现在已白发苍苍。所以,“我”在火车上看到的,实际是一位妙龄女子和一位白发老人的贴画。哥哥因为自己年老,不甚哀伤,所以弟弟带着“他和阿七”一起坐火车旅行,欣赏沿途风景。故事线回到了火车上。

这篇故事中,望远镜仍然是乱步作品中惯用的经典道具,虽然他对镜子很上瘾,但是在小说中以弟弟的口吻却说这种东西会把小虫子放大成怪物,很可怖,算是呼应了《镜地狱》中的描述。在《幻影城主》中,乱步坦言和父亲一样,自小十分害怕蜘蛛这类生物,原因可能是埋着他胎盘的土地上方第一个爬过的生物就是蜘蛛(一种市井传说)。

哥哥隐入贴画中与女子为伴的故事虽然在现实中不可能发生,但未尝不是一个引入瞎想的浪漫故事,我隐约记得之前也读过类似的,但一时想不起来。

目罗博士不可思议的犯罪

这篇故事的一个特殊之处是以江户川乱步自己的身份作为第一人称的,讲述的是关于模仿和月光的恐怖杀人故事。

这一日,乱步出门闲逛,寻找写作灵感,在东京一处动物园的猴笼前邂逅了一位衣着破旧、精神头却很好的年轻人。

年轻人向乱步感叹猿猴和人一样,都是模仿的动物,先讲了一则小故事作为佐证。说一人的短刀被猴子夺去,他使出一招便成功拿回。怎么做的呢?他捡起一根树棍,在自己脖子上划来划去,那只猴子由于模仿的天性使然,也拿着短刀在自己脖子上划来划去,以至于血流如注,当场毙命。

猿猴如此,相似的人类也有类似宿命。年轻人又讲述了一个自己亲身经历(案件的当事人)的故事。

他之前在东京某处作为安保人员,看管两幢长得几乎一模一样的大楼,就好像是镜面倒影一般(乱步又提及了关于镜子的恐怖之处)。特别是在月光之下,这两幢钢筋水泥建筑看起来更加阴森。

接下来,位于五楼的某个用于办公的出租房间内,在短时间内发生了三起命案,每次无不是租客在房间外挂电线的横木上上吊自杀,诡异至极,但却无迹可寻,警察只能当作悬案处理。

不过当时作为安保人员的年轻人并不这样认为。因为他在最后一次命案当场,月光之下,看到了对面楼房开着的窗户中一闪而过一张蜡黄的人脸。

多日之后,年轻人发现了秘密,大楼附近开眼科诊所的目罗博士,和那日在对面房间看到的脸长得一模一样,他认为其中一定有不可告人的秘密,以后便随时留意目罗博士的动向。

半年后,那间房间再次出租,年轻人终于观察到了目罗博士的反常行为。他看到目罗博士买下了一套与新租户相似的衣服,套在了一尊蜡像身上,将蜡像打扮的和租户几乎一模一样。于是,年轻人大致猜到了是什么回事。这一晚,月光皎洁。

入夜,等到租户离开,年轻人便穿上与其类似的着装,用备用钥匙潜入了那间房间,背对着窗户伏案等待。果然,半夜时分,听到窗外猫头鹰的一声怪叫,他知道这是吸引他看向窗外的暗号。

他回过头来,打开窗户,一眼就能看到了和这边一摸一样的对面大楼,几乎如镜中倒影一般。唯一不同的是,对面没有我自己的身影。不对,有我,不过是吊在一根细绳之上——没错,就是那尊蜡像。在朦胧月光的诡异氛围之下,如果换做一般人,肯定就鬼使神差地模仿对面的景象,自己上吊去了。

但是年轻人有备而来,他知道这是目罗博士的诡计。于是他也拿出了预先准备好的道具——一尊和目罗博士一模一样的蜡像。他把蜡像搬上窗台,对面的目罗博士受到氛围的感染,竟也坐上了窗台。而后年轻人一把将蜡像推下,目罗博士也跳下了楼。不过年轻人事先已经在蜡像上绑上了绳子,又将蜡像拉回了房间……

这篇故事和前面的猴子拿刀的故事都描述了关于模仿的离奇之处,只不过一个是猿猴,一个是人类。沐浴在月光之下,显得寂静而诡秘。

之所以称之为不可思议的犯罪,显然,目罗博士对之前的三名租客,或者是年轻人对目罗博士,充其量不过是起了一个引诱的作用,并没有直接的作案动机和接触式的谋杀行为。个中责任如何定论呢,发人深省。

总结

这本书的15篇故事就简介至此了。总体来说,还是要感叹乱步丰富的想象力。单纯以犯罪推理的角度看,其实这些故事大多没有特别曲折的情节,只是简单离奇故事的氛围化表述,在结尾处能带来一定的反转,和本格不本格关系并不大。这些故事涉及方方面面,不拘泥于家庭、职场,使得乱步的作品具有可贵的多样化特征,吸引着各类读者。

乱步的作品带有浓烈的个人色彩,比如前面提到的镜子、虫子、土仓库,另外还有他写作时期(20世纪20年代)的大环境时局体现。如果没有丰富的切身经历,文字不可能细腻到让读者带有如此画面感的体验。

我近期同时在看乱步的《幻影城主》,他在年轻时曾经阅读过大量文学作品,他的母亲、祖母甚至可称为其在推理文学上的启蒙者。相比这段阅读时光,对他的日后创作起到了相当大的作用。

100年后的今日,充斥着各种各样的信息输入,手机、短视频无时不刻不占据着一个人的时间,可悲还有几家人能培养其这样的阅读环境。

再者,如今丰富的悬疑影视作品,多种多样的悬疑剧情,让大多人先入为主地对一些常见伎俩有了预测能力。反过来阅读乱步的作品,必然没有特别震撼的感受。要知道,在100年以前,此类故事并不多见,就如今的人首次观看3D电影一样,都是新玩意儿,因此,纯粹地以今天的视角去审视乱步的作品是不合适的。

毫无争议地说,一个世纪之前,在推理文学启蒙的那个时期,必然会出现一位破局者,他一定是江户川乱步吗?不然,但是,乱步对此却做好了准备,真可谓时势造英雄,英雄亦适时耶

(文中大部分图片采用AI生成)

本文整理自“莺见”微信公众号:


最近一个多月,机缘巧合地读了几本江户川乱步的侦探小说,得知包括柯南·道尔在内的这些推理作家,都或多或少地受到了美国作家爱伦·坡的影响。带着好奇的心情,从网上花了9块钱淘了一本《爱伦·坡短篇小说集》。

这一本252页的书包含了11篇小故事:

  1. 《红死魔的假面具》
  2. 《厄舍府的倒塌》
  3. 《一桶蒙特亚白葡萄酒》
  4. 《泄密的心》
  5. 《威廉·威尔逊》
  6. 《黑猫》
  7. 《莫格街凶杀案》
  8. 《失窃的信》
  9. 《金甲虫》
  10. 《瓶中手稿》
  11. 《乌鸦》

我阅读过后的感受,怎么说呢,非常困惑,从两个方面来讲。

文字晦涩,环境和心理刻画篇幅过多

首先是感觉文字表述的方式非常不符合中国人的口味,过于啰嗦,典型的“翻译腔”。当然,中国人对于这种来自欧美的文学有这样的感受是很正常的,记得中学时候读福尔摩斯也是如此。

不过爱伦·坡作品的这种感受更强烈一些,除了不同语言带来的表述鸿沟之外,还要“怪罪”于他对环境氛围心理活动的刻画实在过于细节,最终表现就是用了相当大的篇幅来做铺垫。最典型的莫过于《威廉·威尔逊》,在开始正式叙事之前竟然用了7页的内容做人物、心理和环境介绍,故事还未开始,恐怕心急的读者已经不耐烦了。

这对于先入为主地以侦探、推理小说的预期来阅读的我就会感到非常困惑,特别是在有噪音干扰的环境中,很难有心思能揣摩作者要表达的意境。这种困惑在几乎所有11篇故事中都有体现。

来看《红死魔的假面具》对室内环境氛围的一段表述:

“这里的玻璃窗是暗红色的——深暗的血液的颜色。这七间屋子里,没有一盏灯,也没有烛台,只有耀目的金器散布在各处,或者从天花板上垂吊下来。但在围绕着的回廊上,每一扇窗户对面都摆放着一只沉重的三角支架,三角支架上都放着一盆火,火光透过彩色玻璃,把房间照得通亮,于是就产生了大量奇形怪状、魑魅魍魉似的景象”

有没有惊悚的感觉?再来看《泄密的心》中对心理活动的一段表述:

“那个念头是如何钻进我的脑子的呢?现在已经很难说清这个问题了。可是,自从它钻入我的脑子,就日夜萦绕着我。那位老人对我十分友善,它一直以公允的态度对待我,也从未侮辱过我。对于他,我心存爱意,从没想过利用他,也没想过要伤害他,更不想得到他的钱财,”

是不是够婆婆妈妈?带着这种困惑我去查阅了爱伦·坡本人的经历以及身后评价,原来他的作品有两个特点:哥特风与心理刻画

哥特风

哥特(Goths)原本是古代欧洲的一支民族,逐渐发展成了野蛮的代名词,与惊悚、恐怖、阴暗联系在了一起,在建筑等多种领域都有体现。文学上的哥特式必然要用一些文字来做阴森的氛围渲染。我想中国人对于哥特文化最熟悉的莫过于吸血鬼了,一些经典的吸血鬼影视作品,比如《黑夜传说》,画面格调一直都是灰暗的,故事的场景也是下水道、城堡等场景。

哥特的恐怖元素对于中国人来说,应该还是相对陌生的。我会觉得它确实很惊悚,但是仅仅是视觉上的,还远远达到不了直击心灵的效果。它表现出的恐怖往往是活人的无耻、粗鲁、暴力、阴郁、变态所带来的。而东亚文化中更恐怖的恐怕应该是像《山村老尸》、《咒怨》、《连体阴》等死人带来的复仇。后者则更能反映因果论,前者更现实,在因果关系上的表现则更需要发狂的活人来表达。

在我读的这一本书中,《红死魔的假面具》、《一桶蒙特亚白葡萄酒》、《厄舍府的倒塌》、《泄密的心》、《威廉·威尔逊》应该都是哥特元素足够丰富的恐怖小说。

《红死魔的假面具》讲了一个这样一个故事,在传染性的红死病流行期间,一位富人在庄园中大肆组织狂欢会,结果被“红死魔”团灭。故事非常简单,大量篇幅都在描述环境,比如每一间房子的奇幻装修风格,以及疯狂的聚会者如何作乐。对于“红死魔”,爱伦·坡用僵尸来描述他的肤色。这样一个猎奇的、恐怖的的场景就出现在我们面前。至于最后故事的戛然而止,作为叙事故事肯定是让人失望的,但要记住,这仅仅就是一部恐怖小说。

《红死魔的假面具》插画,作者:Harry Clarke

《一桶蒙特亚白葡萄酒》简单来说就是一个人把他的“仇人”骗到地窖中困其致死的故事。显然,故事情节并不复杂,也不是重点,重点是爱伦·坡在篇幅中用大量的文字来描述了两方面内容:一是阴森的地窖环境,二是主人公的心理变化。中国人应该很难想象在自家房子的地下埋藏着先人遗骸这件事,不过西方应该并不陌生,英国王室成员就是集体埋葬在一座大教堂下面的。

《一桶蒙特亚白葡萄酒》插画,作者:Harry Clarke

类似的情节在本书的《厄舍府的倒塌》一篇也有。它讲的故事是在阴暗的城堡内,主人公和城堡主人将其妹妹活埋的故事,城堡主人的阴郁给人留下了深刻印象。

《厄舍府的倒塌》插画,作者:Harry Clarke

回到《一桶蒙特亚白葡萄酒》,爱伦·坡描述整个地窖的墙壁镶嵌着许多人类的遗骸,两位角色提着灯在里面走了很远,想想就足够惊悚。主人公一边骗对方喝酒,一边向前走,同时描述着主人公心理的所思所想,直到最后他疯狂地用砌墙的方式将对方封死在地窖内。网上看到一篇论文对此的描述是主人公借着复仇的名义发泄着自己的罪恶意念。从这里可以看到,爱伦·坡在恐怖小说中对人物心理的刻画是十分丰满的。

心理刻画

事实上,这些小说中爱伦·坡对心理活动的描写所用的篇幅要远比对环境氛围的描写所用篇幅更大。

《黑猫》、《泄密的心》、《威廉·威尔逊》等都具有非常类似的、鲜明的心理刻画特征,甚至主人公开始表现出癫狂和多重人格的特质。

《黑猫》以第一人称的方式来讲述了主人公病态的心理变化。黑猫原本是主人公的一只温顺的宠物,主人公却因为心理的莫名变化,挖走了它的一只眼睛,最后把它给吊死了。主人公家里火灾过后,黑猫吊死的印记出现在了墙上,描绘出了一幅回魂复仇的画面。而后主人公又收养了一只来历不明的黑猫,却在第二天也丢失了一只眼睛,这给故事增加了相当大的魔幻氛围。最后主人公因为又想杀死这只猫,却失手杀死了妻子,为了避免东窗事发,他只好把尸体藏在了墙里面,在警察盘问时还能做到镇定自如。谁知那只黑猫也被意外地藏在了墙里面,它的叫声暴露了一切。

《黑猫》插画,作者:Harry Clarke

《泄密的心》表现出的人物心理则更具不可理解。一位老人本没有任何过错,对待主人公也很好,仅仅是因为主人公不喜欢他的眼睛,就在深夜谋害了他,并把他藏在了屋子的地板下。结果等警察来询问时,主人公却发疯似的不打自招。读到这里可能会有莫名其妙的感受,但这正反应了人物扭曲、变态的心理。如果说需要一种熟悉的解释的话,那可能就是作恶终归过不了自己那一关。

《泄密的心》插画,作者:Harry Clarke

《威廉·威尔逊》更上一层楼,讲来讲去甚至就只有主人公一位人物,他的所谓这位同名同姓同日生的同学,实际上就是他自己,不用读到最后就能猜得到。故事表达了这位主人公极具分裂的多重人格,杀死对方的同时,也将自己杀死。

《威廉·威尔逊》插画,作者:Harry Clarke

如此复杂狂乱的心境描写,可能是爱伦·坡本人经历的影射。他自小没有父母陪伴,长大后又因玩忽职守被军队开除,后来妻子感染肺结核死去,他酗酒,在创作道路上的努力也都没有结果,这一些经历恐怕对于任何人都是一种恐怖的压抑。他会有挫败感吗?我们不得而知,有才是正常的。大胆猜测这样的经历已经影响了他的精神状态。

因此,把爱伦·坡简单地当作一位侦探、推理小说家,显然是过于片面了。事实上,他一生中的推理小说作品只有四、五部,但依然被认可为推理小说的鼻祖。我就从我阅读的几篇来感受一下爱伦·坡在推理小说上的开创性工作。

推理

在本书中,《莫格街凶杀案》、《失窃的信》、《金甲虫》毫无疑问是最具推理特色的,情节节奏也更快,相对来说少了很多铺垫语言。而前两者更是引出了著名的侦探角色杜宾。从这一点上来说,我猜测柯南·道尔的福尔摩斯和华生这一对搭档角色,灵感就来自于此,不知是否正确

《莫格街凶杀案》公认是世界上首部推理小说,并带来了推理情节的经典元素——密室。不过我阅读后觉得还是有两点可惜。

《莫格街凶杀案》插画,作者:Harry Clarke

一是破案的关键点,即窗户的插销在之前并没有足够的铺垫,直接来到揭秘环节过于突兀。你没有给读者看,你怎么知道读者就没有能力发现呢?这也是侦探元素在书籍这种载体上的尴尬之处,如果有文字描述了,几乎相当于给你缩小了解谜的范围,如果不描述,就是上面这种突兀的感受。

二是铺垫了这样离奇的犯罪现场,最终案犯竟然是一只猩猩,大大降低了读者的感官刺激。相当于现在的发现了麦田怪圈,最后结果就是外星人搞的事情。我突然想起了10年前看过的美剧《迷失》,前期铺垫了大量未解之谜,最后圆不回去了,连时空穿越都搞出来了,类似的还有美剧《危机边缘》。

《失窃的信》中,侦探杜宾尝试完全从对方的角度来思考,是一大特色,并且得到的结论就是那封信就放在显而易见的位置,只不过按照常规思维根本不应该存在的位置,形象地描绘了一种最危险的地方就是最安全的地方的画面,用古话说,叫做大隐隐于市。不过虽然这篇小说广受赞誉,但是以现代人读取的感受来说,太过突兀和儿戏,第一是同样的问题,那封显而易见的信一开始并没有且也没办法给读者交代;第二是这位家族没落的杜宾先生,竟然能随意拜访大臣。不过这都不重要了,毕竟这部小说发表在将近200年前,以当时的文学环境来说,这样的一篇故事应该是相当吸引人的。

《金甲虫》是我认为的书中最具精彩的一个故事,我指的并非其中对密码的解谜(虽然我也认为在当时是相当新奇的了),而是其中对羊皮纸如何出现骷髅的解释。因为这张羊皮纸在前面已经有明显的交代,而且给出了二人在此的争议的画面。读者从这里很难能猜到是因为隐形墨水的原因,导致的后续威廉·勒格朗一系列怪异行为。

《金甲虫》插画,作者:Harry Clarke

除此之外,我读的这本书中还有两篇故事,《瓶中手稿》和《乌鸦》,它们和《红死魔的假面具》共同导致了我的另一处困惑。

故事情节架空,莫名其妙

从今天的视角很难理解爱伦·坡当时的创作意境。《红死魔的假面具》就是这样的一篇,一群人的狂欢会,怎么就有一个怪人突然杀了所有人。

不可否认地这篇小说有相当多的对人性的讽刺,但是红死病到底是什么呢,未免太多让人好奇。网上有资料说它指的是肺结核病或者霍乱,它们在当时都很常见。显然前者更可信一些:

  1. 《红死魔的假面具》发表于1842年,这一年爱伦·坡的妻子开始感染肺结核,并在5年后去世;
  2. 肺结核是传染病,症状会发展为咳血

爱伦·坡当时可能正是基于这样的担忧,才写出了这篇小说,可能也代表着一种宿命感。

所以说,历史人物的行为都不能离开当时的社会环境来空谈,抛开爱伦·坡的生平来阅读这篇小说,必然不能感同身受。

起码《红死魔的假面具》还能了解到其创作背景,但是《瓶中手稿》呢?这篇小说则是一篇来源于传说(幽灵船和地底空洞)的魔幻创作,对于当时的读者来说,猎奇的感受更多一些,不过对于信息爆炸的今天,新鲜感骤减。不过还是那句话,要看历史环境,况且,这只是爱伦·坡为了参加比赛的投稿作品。

《瓶中手稿》插画,作者:Harry Clarke

最后是《乌鸦》,这是最让我困惑甚至恼怒的一篇,完全不知道它在讲些什么,这样都能成为知名作品,恐怕要求也太低了。为此我不得不去查询这篇文章的背景资料——噢,原来这是一篇诗,爱伦·坡也是一位诗人。

这里我就不对诗加以评论了,毕竟我对现代诗嗤之以鼻,况且,翻译也失去了原作的韵味。

总结

毫无疑问,爱伦·坡是一位复杂的作家,虽然被称为推理小说的鼻祖,影响了柯南·道尔、江户川乱步、希区柯克等一系列大作家,但我们却不能以推理作家来称呼他。

他的作品在氛围风格和心理刻画上的表现,也许是他40年命途多舛生命中的流露。这一生中,他少年颠沛流离,中年亡妻、酗酒,在写作职业上的努力均付之东流。上面的这些作品,一篇最多为他带来几十美元的收入。在这样的逆境之下,《黑猫》、《泄密的心》、《威廉·威尔逊》中主人公的心理活动何尝不是爱伦·坡本人心境的反应。

我觉得他和梵高的境遇有一些类似,都是生前默默无闻,死后方才发现其才华。当然,梵高也是爱伦·坡的后辈,他出生时是1851年,而爱伦·坡死于1849年,以当时的卫生条件,加上他的不良习惯,这并不意外。

总之,以读故事的猎奇心态读爱伦·坡的作品,必然是一种浪费。你需要回到200年前那个时代,切身感受爱伦·坡的成长历程和际遇,才能读懂他的作品。

(文中插画来自于wikiart.org)

一、前言

qiankun 开始,沙箱(或沙盒、sandbox)已经成了几乎所有微前端框架的标配功能。但事实上其内部涉及实现的大量细节,导致每家的能力参差不齐。

严格来说,沙箱并没有遵循的标准,在一些细节上的实现也没有对错,具体行为还是要取决于业务的需求。

Node.jsvm 模块并不能直接移植到浏览器端,一个很大的原因在于浏览器涉及的视图(包括 DOM、URL)无法被拷贝,只能共享,那么共享到什么水平就成了沙箱方案能力差别的衡量标准之一。

二、变量隔离

沙箱的基础能力就是隔离上下文,让下列操作都只局限在特定的上下文内,不会干扰到外部:

  • 删除已有变量,如 delete obj.aRelect.deleteProperty(obj, ‘a’)
  • 修改已有变量
    • 修改取值,如 obj.a=1Reflect.set(obj, ‘a’, 1)Reflect.defineProperty(obj, ‘a’, { value: 1 })
    • 修改描述符,如 Reflect.defineProperty(obj, ‘a’, { writable: false })
    • 修改 frozen、sealed、extensible 状态,如 Object.freeze(obj.a)Object.seal(obj.a)Object.preventExtensions(obj.a)
    • 修改原型链,如 Object.setPrototypeOf(obj.a, null)
  • 创建新的变量,如 obj.a=1Relect.defineProperty(obj, ‘a’, {value: 1})

上面的 obj 对象即指上下文对象,在浏览器中通常是 windowdocument ,这两个全局对象。但事实上,window 下的所有属性都可以直接取到,如 addEventListenernameCSSlocationhistorynavigatorHTMLElement 等等,不胜枚举。因此, 沙箱不可能监视所有变量的属性删除/修改/创建,因此也就不可能实现“完美”沙箱 ,毕竟你不能遍历 window 下的所有属性,都监视一遍。

with(){} 的做法不在考虑范围之内,对性能损耗过大。

这个事实带来的后果是,如果你想逃逸出沙箱,是非常容易的,比如 navigator.no=1 。所以,沙箱在微前端中有使用价值的前提是, 你必须尽可能保障对全局变量的访问是可控、无副作用的 ,这是沙箱的脆弱之处,也是一种规范。接下来我们将在这一规范下继续讨论沙箱的实现问题,假设我们只考量对 window 和 document 这两个变量的属性监视。

2.1 属性监视

毫无疑问,在现代浏览器中,Proxy 是监视对象的最佳方案,通过它,我们应该可以被通知且控制获取、修改、删除、遍历等几乎所有操作。但是,proxy 对象真的可以为所欲为吗?

观察下列代码:

这里涉及到了关于 configurable 导致的错误,事实上,有大量的操作都是被 proxy 所禁止的,在 ECMA262 上的Proxy部分搜索 Invariants 能查询得到。因此 proxy 对象并非无所不能,它无法任意伪装原始对象的行为, 该失败的必须失败 。相关规则包括如下:

对象操作 不变量
defineProperty
  1. 如果目标对象是不可扩展的,那么使用defineProperty新增属性时不能返回true;
  2. 如果目标对象没有不可配置属性a,则代理对象也不能用defineProperty在将属性a定义成不可配置时时返回true;
  3. 如果目标对象没有不可配置且不可写的属性a,则代理对象也不能用defineProperty在将不可配置属性a定义成不可写时返回true
deleteProperty
  1. 如果目标对象有不可配置属性a,那么代理对象在用deleteProperty删除a时不能返回true;
  2. 如果目标对象是不可扩展的,且有属性a,那么代理对象在用deleteProperty删除a时不能返回true;
get
  1. 如果目标对象有不可配置且不可写的属性a,那么代理对象在用get取值a时必须返回和目标对象相同值;
  2. 如果目标对象的属性a是不可配置的,且是缺少get的存取类型,那么代理在用get取值a时必须返回undefined
getOwnPropertyDescriptor
  1. 如果目标对象有不可配置的属性a,那么代理对象在用getOwnPropertyDescriptor获取a时不能返回undefined;
  2. 如果目标对象是不可扩展的,且有属性a,那么代理对象在用getOwnPropertyDescriptor获取a时不能返回undefined;
  3. 如果目标对象是不可扩展的,且没有有属性a,那么代理对象在用getOwnPropertyDescriptor获取a时必须返回undefined;
  4. 除非目标对象有不可配置且不可写的属性a,那么代理对象在用getOwnPropertyDescriptor获取a时就不能是不可配置且不可写的;
getPrototypeOf
  1. 如果目标对象是不可扩展的,那么代理对象在用getPrototypeOf时必须返回与在目标对象上调用的返回值
has
  1. 如果目标对象有不可配置的属性a,那么代理对象在用has获取a时不能返回false;
  2. 如果目标对象是不可扩展的,且有属性a,那么代理对象在用has获取a时不能返回false;
ownKeys
  1. 如果目标对象是不可扩展的,那么代理对象在用ownKeys时必须返回目标对象的全部属性名,不能包含额外属性名
set
  1. 如果目标对象有不可配置且不可写的属性a,那么代理对象就不能用set给a设置不同的值;
  2. 如果目标对象的属性a是不可配置的,且是缺少set的存取类型,那么代理在用set设值a时必须返回false

看似复杂,但实际总结来看,就是代理对象必须遵循一个原则: 操作的结果要真实反应 target 的最新状态。

举几个例子:

  • 如果Reflect.has(proxyObj, ‘a’)返回true,那么target就必须不能有一个不可配置的属性a;
  • 如果Reflect.set(proxyObj, ‘a’, 1)返回true,那么target对象必然不能是不可扩展的,也不可以有一个不可写也不可配置的属性a

如下的做法,直接代理原始 window、document 肯定是不可以的,根据上面的 Invariants 可知我们几乎必须把属性同步给原始的 window、document 才能不报错,显然违背我们做沙箱的初衷。

1
const proxy = new Proxy(window, {});

因此,通常的做法是把一个 新创建的对象 当作原始对象进行代理,下文简称为 target

1
2
const target = {};
const winProxy = new Proxy(target, {});

所有的操作几乎都是最终体现在 target 对象上的,个别稍有例外。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const target = {} as Window;

const winProxy = new Proxy(target, {
defineProperty: function (target: Window, p: PropertyKey, attributes: PropertyDescriptor): boolean {
return Reflect.defineProperty)(target, p, attributes);
},
deleteProperty: function (target: Window, p: PropertyKey): boolean {
return Reflect.deleteProperty(target, p);
},
get: function (target: T, p: PropertyKey /*, receiver: any */): any {
return Reflect.get(target, p);
},
getOwnPropertyDescriptor: function (target: T, p: PropertyKey): PropertyDescriptor | undefined {
return Reflect.getOwnPropertyDescriptor(target, p);
},
has: function (target: T, p: PropertyKey): boolean {
return Reflect.has(target, p);
},
ownKeys: function (target: T): ArrayLike<string | symbol> {
return Reflect.ownKeys(target);
},
set: function (target: T, p: PropertyKey, value: unknown /*, receiver: unknown */): boolean {
return Reflect.set(target, p, value);
},
getPrototypeOf() {
return Reflect.getPrototypeOf(window);
}
});

但显然这样是有严重问题的,因为 target 是伪装的 Window 对象,它身上没有任何属性,这不但会影响 get、getOwnPropertyDescriptor、has、ownKeys 这些只读操作的结果,由于 Proxy 的规则,同样也会影响 defineProperty、deletePrperty、set 这些写操作的结果。

举个例子,本来真实 window 对象上有一个不可配置的属性 foo,正常来说,我们用 defineProxy 修改其描述符类型时一定会报错,但是 target 本身并没有任何属性,Reflect.defineProperty(target)却是成功的,不符合期望。

于是,业界常规的做法都是会把 原始对象的自身属性拷贝到 target 中,特别是那些不可配置的属性 。这样无论是读操作还是写操作,其结果都真实反应到了代码对象的 target 中,不会被任何 Proxy 原则所影响。

1
2
3
4
5
6
const target = {} as Window;

for (let key of Object.getOwnPropertyNames(window)) {
const descriptor = Reflect.getOwnPropertyDescriptor(window, key);
if (!descriptor.configurable) Reflect.defineProperty(target, p, descriptor);
}

这一步的成本稍高,但是又是必须的。在具体的实现策略上也可以区分为一次性拷贝和懒惰式拷贝,即用到某属性时才执行拷贝。

2.2 主动变量逃逸

虽然沙箱的关键作用就是为了限制变量的访问和变更范围,但是毕竟在同一个浏览器页面之下,难免有需要例外放行的 case。我们称这类变量为 exception 或者 escaped,这种功能称之为“主动变量逃逸”。

实现主动变量逃逸比较简单,以 set 和 get 操作为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const target = {} as Window;

const winProxy = new Proxy(target, {
get: function (target: T, p: PropertyKey /*, receiver: any */): any {
if (isEscaped(p)) {
return Reflect.get(window, p);
}
return Reflect.get(target, p);
},
set: function (
target: T,
p: PropertyKey,
value: unknown /*, receiver: unknown */
): boolean {
if (isEscaped(p)) {
return Reflect.set(window, p, value);
}
return Reflect.set(target, p, value);
},
});

不过别忘记了 Proxy 的那些 Invariants 限制,上述这些操作的结果都要反应到 target 身上,所以最后还是得把原始对象(如 window)上的属性同步到 target 上。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const target = {} as Window;

const winProxy = new Proxy(target, {
get: function (target: T, p: PropertyKey /*, receiver: any */): any {
if (isEscaped(p)) {
// 同步到target中
Reflect.defineProperty(
target,
p,
Reflect.getOwnPropertyDescriptor(window, p)
);
return Reflect.get(window, p);
}
return Reflect.get(target, p);
},
set: function (
target: T,
p: PropertyKey,
value: unknown /*, receiver: unknown */
): boolean {
if (isEscaped(p)) {
// 同步到target中
Reflect.defineProperty(
target,
p,
Reflect.getOwnPropertyDescriptor(window, p)
);
Reflect.set(window, p, value);
return Reflect.set(target, p, value);
}
return Reflect.set(target, p, value);
},
});

2.3 函数属性上下文

上面提到,我们需要把原始对象(window、document)的属性同步到 target 对象中,Proxy 才会不受到 Invariants 的影响,能更真实的模拟读写操作。

我们看下面一个例子:

再来看这样一个例子:

有这样一类函数,它们只能在指定的上下文中执行,即便是 Proxy 也不可以,否则在 Chrome 下就会报告 Illegal invocation 错误。在 Firefox 和 Safari 上的错误信息会更通俗易懂一些。

目标没有很好的办法来解决这个问题,毕竟函数内部的逻辑是无法预测的,只能尽可能兼容。一些策略有:

  • 如果属性名是 constructor,无需特殊处理;
  • 如果属性名以大些字母开头, 认为它们是构造函数 ,无需特殊处理;
  • 创建包装函数来锁定上下文:
1
2
3
4
5
6
7
8
const newValueInTarget = function (this: any, ...args: unknown[]): unknown {
// 小写字母也可能是构造函数
if (new.target) {
return Reflect.construct(valueInRaw, args);
}

return Reflect.apply(valueInRaw, raw, args);
};
  • 一些特殊属性的处理,例如 window 上的 eval、isFinite、isNaN、parseFloat、parseInt、hasOwnProperty、decodeURI、decodeURIComponent、encodeURI、encodeURIComponent,直接走主动变量逃生即可

三、执行 JavaScript 代码

上面讨论的是沙箱的最关键能力——变量隔离,但无论实现怎样的能力,子应用的 JS 代码还是要得到执行,那么该如何执行的?

3.1 eval

业界普遍的做法是异步 fetch 到源代码,然后 eval 它,虽然需要跨域环境的支持,但并不是难事。只是 eval 需要一些技巧。

首先,eval 需要在真正的 window 上下文中执行,避免调用环境的影响,这一点,目前已经有比较明确的实现方案,就是“间接调用”:

1
2
3
function evalScript(code: string): any {
return ("", eval)(code);
}

其次,利用函数入参来改变一些全局变量名的作用域,将其指向既定的对象,比如:

1
2
3
4
evalScript(`;
(function (window, self, parent, top, globalThis, document) {
${appCode}
}).call(winProxy, winProxy.window, winProxy.self, winProxy.parent, winProxy.top, winProxy.globalThis, winProxy.document)`);

从这里也能看出,如果直接引用如 location、navigator、history 将无法被沙箱捕获,你需要用 window.location、window.navigator、window.history 的方法。进而可以推断出你在全局定义的变量,也必须以 window 属性的方式来读取,比如:

1
2
3
4
5
6
7
8
9
10
11
12
<head>
<title></title>
<script>
var loadStartTime = Date.now();
</script>
</head>
<body>
<script>
var loadCost = Date.now() - loadStartTime;
</script>
<script src="./entry.js" entry></script>
</body>

像上面这种 case,如果不以 window.loadStartTime 的方式能不能读取得到呢?也有一些技巧可做到。

比如使用嵌套递归作用域的方式来实现,相当于每执行一次 JS 之后,就会为下一次执行生成一个新的嵌套上下文,这样后面的 JS 就可以直接读取上次的变量。

1
2
3
4
5
6
function() {
var loadStartTime = Date.now();
function() {
var loadCost = Date.now() - loadStartTime;
}
}

具体的实现机理稍有复杂,理论上也会带来额外的性能开销,而且对于下面这种双向访问的场景也无法支持:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<head>
<title></title>
<script>
var loadStartTime = Date.now();
function sendLog() {
// 访问未预定义变量
sendToServer({ loadCost });
}
</script>
</head>
<body>
<script>
var loadCost = Date.now() - loadStartTime;
</script>
<script src="./entry.js"></script>
</body>

不过仍然具有一定的价值,对于以 HTML 作为 entry 的子应用的容纳范围更广,子应用的灵活度更高。

3.2 环境变量

有时,需要暴露给子应用的 JS 一些临时的虚拟变量,比如 qiankun 提供的 __POWERED_BY_QIANKUN__ ,而且允许不同子应用读取到的同一名称的变量有不同的取值。

如果不开启沙箱的话,这一功能反而困难,需要在 window 上定义变量,然后以同步的形式运行子应用 JS 代码,最后在从 window 上移除掉。这个过程不但很可能和 window 上已经有的同名变量冲突,而且也只能保证同步代码中能读取到,异步代码中就读不到。举例说明:

1
2
3
4
5
if (window.__IN_MICRO_ENV__) {
Promise.resolve().then(() => {
console.log(window.__IN_MICRO_ENV__); // undefined
});
}

在沙箱环境中,实现环境变量更简单,而且可以不受同步/异步的影响,可以持续访问。

1
2
3
4
evalScript(`;
(function (window, document, __IN_MICRO_ENV__) {
${appCode}
}).call(winProxy, winProxy.document, winProxy.__IN_MICRO_ENV__)`);

3.3 ESM

ESM 格式的 JS 代码不能直接 eval 来执行。事实上,浏览器还未提供能直接运行 ESM 源码的方法。Garfish 采取来将源码转换成 URI 的方式实现了一定程度的 eval 能力,但是需要正则匹配 import 指令,存在一定的隐患。即便如此,因为不能用函数直接封装 ESM 源码,因此也无法实现沙箱运行。因此,garfish 还实现了一套运行时转译 ESM 的机制,但是对性能有较大影响,相信其稳定性也存在安全隐患。

四、DOM 结构

一般来说,子应用有自认为的 DOM 环境,比如 html、body、head 以及#app 等等。

4.1 固定 DOM

在沙箱环境中,如果把真正的 html、body、head 暴露给子应用,那么它很有可能在上面做一些副作用的操作,比如插入新 DOM、修改样式等等。为了避免这种情况,微前端框架一般都会给子应用生成一个模拟的 DOM 结构,比如:

1
2
3
4
5
6
<pseudo-html>
<pseudo-head>
<pseudo-title></pseudo-title>
<pseudo-head>
<pseudo-body></pseudo-body>
</pseudo-html>

DOM API 中的 document.documentElementdocument.bodydocument.head 也都指向它们。

根据业务需求,可以做更深的伪装定制,通过以下测试:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
document.documentElement.tagName === "HTML";
document.documentElement.nodeName === "HTML";
document.documentElement.version === "";
document.documentElement.parentNode === document;
document.documentElement.parentElement === null;
document.documentElement.constructor === HTMLHtmlElement;
document.documentElement instanceof HTMLHtmlElement === true;

document.body.tagName === "BODY";
document.body.nodeName === "BODY";
document.body.constructor === HTMLBodyElement;
document.body instanceof HTMLBodyElement === true;

document.head.tagName === "HEAD";
document.head.nodeName === "HEAD";
document.head.constructor === HTMLHeadElement;
document.head instanceof HTMLHeadElement === true;

注意 document.documentElement.parentElement ,如果等于 null,可能对一些视觉框架、组件库等需要用 parentElement 向上递归搜索的功能不友好。可根据需要是否开启以上伪装能力。

4.2 存量 DOM

存量 DOM 是指那些在子应用的 HTML entry 中已有的 DOM 结构,简单的如#app,也可能有更复杂的结构。

通常需要把它们同步到上述固定 DOM 的 body 中,也有些方案把 head 中的 meta 都同步了过来。

一旦需要拷贝,需要考虑如下问题:

  • 非法元素、样式的过滤;
  • 元素在沙箱环境的适配

4.3 新增 DOM

新增 DOM 有多种创建方式:

  • document.createElement();
  • dom.clone();
  • dom.innerHTML=

通常来说只有第一种会被沙箱接管,使得新创建的 DOM 的 ownerDocument、baseURI 是符合沙箱环境的。

需要特别关注的是,新创建的 script 元素会被转换成一个无实际功能的<pseudo-script>元素。框架会在后台自行下载/执行其代码,模拟了 script 的能力。

Custom Element默认是inline类型,除了在shadow DOM内部使用 :host{display:block} 外,只能在外部用选择器覆盖。未来如果Safari支持继承built-in元素后可以解决。

五、总结

  • 沙箱只能处理有限范围内的变量隔离,通常为 window 和 document;
  • 以 eval function 的方式执行 JS 源码,全局变量引用应以 window 属性的方式使用;ESM 无法支持沙箱;
  • 子应用的 DOM 结构可以被伪装,但仍然能轻易实现逃逸

沙箱的本质是为子应用打造一个微型的独立浏览器环境,受限于成本,无法做到尽善尽美,仍然需要子应用遵循一定的规范和约定 。而由于微前端的主、子应用在管理上的独立性,往往沙箱能力的升级会对子应用造成较大的影响。

六、未来发展

业界对沙箱的实现均强依赖 Proxy 技术,区别仅在于对副作用的拦截能力多少。随着业务复杂度的提升,以及一些存量旧业务在遵循冲突约定的改造成本上的考虑,逐渐意识到 Proxy 的能力仍然有限,想实现健壮性更强的沙箱环境,开发成本高且性能不稳定。

业界已经有一些方案开始逐渐回归 iframe。iframe 天生具有强隔离性,不必对全局变量一一关注即可达到期望的隔离性能。不过这种一刀切的做法在实际的业务中仍然受到挑战,比如对主动逃逸变量的支持,比如对 DOM 的操作等等,仍然需要一定的机制将 iframe 和主页面整合到一起。这一步,仍然离不开 Proxy 的支持。

ECMA 已经有一个新的提案,叫做ShadowRealm,位于 Stage3,对于创建独立的 JS 执行环境是一个比较理想的方案。不过微前端离不开视图,如何共享视图对象以及控制共享的粒度,就不是 ShadowRealm 的范围了。

没坏的话就不要修

这里讲的系统应该能够治愈。不过在现实场景中不太可能,即使可能在时效性上也不允许。

如果这里我们把这句话理解成:不要瞎折腾,没事找事,显然有一种消极的态度,如果一直安于现状,就会阻断创新。

从咨询师的角度来看更容易理解这句话,咨询师是系统的“外来物”,不是对于系统出现的所有问题都要横加干涉,适当的放任反而有益于系统的成长。可以借着下一句话来深入理解:

反复治疗一个可以治愈的系统最终让它不能治愈

引用书中的一句话就能轻松解释:

那些孩子四岁多了还帮忙擦鼻子的父母,以及靠为同一个客户反复解决同一个问题混饭吃的顾问,都应该牢记这个秘密。

那是那句话,不是都有问题都要横加干涉。否则最终会超出自己的能力范畴。

每个处方都包含两部分:药品和正确使用它的方法

我能把它理解成:“文档很重要,是产品的一部分”么?

我们在提供服务的时候,除了服务实体本身之外,还需提供使用说明。某些领域会提到以代码自注释能力来衡量代码的优劣,我觉得有一定道理但不是全部。

简单的系统确实可以做到轻松上手的目的,但也仅限于简单的系统。

如果已经做过的事情没能解决问题,就告诉他们做点别的

好打浑的说辞,不过确实有效。系统的某些问题往往出乎所有人意外,如果不能亲身实地地验证,仅仅依赖现有经验的人脑逻辑推断,确实不一定能够做出最终的诊断。

所以,在走投无路的时候,要学会接纳那些看似绝对无效的方案,说不定有意外的收获。

务必让他们付给你足够多的钱,这样他们才会照你说的去做

就像练习书法用廉价的草纸会比用昂贵的字帖更不容易练好一样,只有你付出的成本更高,你才会更加专注和认真,因为失败的损失更大。

有另一种基于责任归属的解释,如果用字帖还练不好书法,那么将无法将责任落在纸的种类身上。

因此,通过提高任务的成本和消耗,将更有可能让执行脉络贴近自己的设计。

来得早不如来得巧

时机很重要。

【伯登法则】要是你不能改掉缺点,就把它变成特点

这一法则将适用很多行业黑话,比如公司提供晚餐意味着加班更多。产品的特性从不同的视角可能会有截然相反的描述,核心原则就是避重就轻。这不一定就是一种欺骗,因为很可能那些未提及的缺陷对客户压根没有影响,或者打一个时间差,等客户发现了的时候,缺陷已经被修复,如果是可能甚至还可以是付费升级。

【镀金法则】要是没法当成特点来宣扬,那就冒充一下

这是“扒瞎”的意思吗?也许有作用,只要没人拆台和较真。对于聚集了大量耿直的人的行业中,可能风险性较大。

如果仅仅是电视广告在那里“镀金”的话,相信很少有人会真的打电话投诉;如果在一个小型的会议现场胡说八道,我想大概率会被“怼”。

这种缺乏货真价实干货的纯语言技巧,肯定不能撑太久。因此才会有下一句:

所有镀金的东西都得改正

eslint 早已取代 jslint 成为了 JavaScript 标准的风格检查工具,提供了大量规则(rule)。这些规则部分是可以支持 fixable 的,也就是说可以自动修复代码。但是现在来看,eslint 提供的修复功能还是太弱。因此 Facebook 开发了 prettier,一个专门司职代码格式化的工具,它不仅仅支持 JavaScript 语法,甚至还支持 Markdown。因此,把它们配合起来是一种自然而然的想法,首先我们有一个 eslint-config 定义,我们希望经过 format 之后的代码能100%通过 lint 校验。我们也希望在 git hook 中能自动 format 代码。

在实际应用中,让 prettier 完美配合 eslint 并不容易。根本原因在于 prettier 格式化代码的一些行为是不可配置的,而这些配置极有可能与 eslint 配置是冲突的。

例如下面的代码:

1
a === 1 || b === 2 || c ===3

在 eslint 中,我们经常配置在折行时把符号写在前边:

1
2
3
a === 1
|| b === 2
|| c ===3

但 prettier 则强行写在后面:

1
2
3
a === 1 ||
b === 2 ||
c ===3

prettier 提供了与 eslint 配合使用的官方方法。但这种方式的本质是使用 eslint-config-prettier 来抹平 prettier 与 eslint 之间不可调和的冲突。一旦我们定义的私有 eslint-config 与 eslint-config-prettier 有影响格式化结果的冲突,那么 lint 必然失败。不过这种方式的一大好处是仅仅对接 eslint 就能完成 lint 与 fix 的操作,集成性很强。

理解这种现象很容易,eslint 的 rules 是没有顺序的,因此在 fix 阶段,极有可能 prettier 的 rule 执行在最后阶段,结果显然与我们定义的最终 eslint 配置是冲突的。


相比于引用一系列 eslint-config,并维护它们的顺序,我们索性只维护我们自己的一份 eslint-config,反而更清晰。有这一份配置来执行 fix,产出一定可以通过lint。

但我们肯定不想直接抛弃 prettier,那么就把它的执行放在最前面,让它的产出再通过 eslint 即可。

已经存在这种现成的解决方案,就是 prettier-eslint。虽然看起来比较畸形,但可能是唯一一种比较能用且清晰的方案了。

但也有缺点,一旦将来某些 prettier 的不可配置的行为也不能被 eslint 所 fix,工作流就 gg 了。整合的过程就是这样,本来是相互分离的两个系统,让它们一起工作,总要失去点什么。

Code ➡️ prettier ➡️ eslint –fix ➡️ Formatted Code ✨

Q:如果能保证 prettier 提供的 rule 能先行执行呢?

0%