跳到主要内容

我的钢琴作品《当一切结束时》

· 阅读需 3 分钟

六年前那段——1的特殊年月,我还没有开博客,也几乎没有任何的文字记录。就这样,在一场堪称千年一遇的世界大变局里,我几乎什么都没留下。

不幸中之万幸,我留下了一首原创歌曲,也是我创作的第一首钢琴独奏曲。

之前那首整整两个月完成的交响诗相反,这首钢琴曲的创作过程出乎我意料的顺利,想到一个念头在钢琴上瞎试一下就感觉完美。整个过程像开了挂一样,两天时间就把整首曲子写好,再经过超级大咖的指点后完成终稿。

可是我自己却懒到不愿练自己写的曲子。整整六年时间, 我只有一个 MIDI 导出的音频,连一个真钢琴录音都没有。

要不是因为开博客想要凑点内容,我可能懒到情愿落下一个终生遗憾了。我花了一周的时间,终于把我自己的曲子练出来啦~

🎵 下载 MP3 文件

歌词

我也给这首曲子写了歌词:

When It's All Over

When it's all over
Will the sun still shine bright
Will I see the blue sky?

Why, I should know
Yet I ask and I wonder
'Cause I can't tell much about t'morrow

When it's all over
Will the world still find peace
Will we still lend our hands

Hope, though it's frail
Yet I seek and I cling on
When it's over
I won't forget

One day, when it's over
Will we join hands again
Take it, here's mine

这是我在疫情爆发初期,用歌词留下的对未来世界的担忧。非常不幸,我当时的担忧基本都在过去的四五年变成了现实。

下载曲谱

如果你也想弹弹看的话,欢迎下载 PDF 钢琴曲谱

曲子难度我猜大约是 RCM 6-7 左右,授权 CC-BY-SA。

万一有人愿意录个演奏的音频或视频,请务必跟我分享哦。囧丁乙(不一定要钢琴,其他乐器也欢迎试试看呀~)

Footnotes

  1. 像佛地魔的名字一样不能说出来

拇指定律👍👎

· 阅读需 1 分钟

欸,我发现了一个不得了的定律!

拇指定律

无论你是用左手还是右手——

  • 当你比「👍」的时候,你看不见自己的手背,别人看不见你的四指;
  • 当你比「👎」的时候,你看不见自己的四指,别人看不见你的手背。

可是在我的设备上,这两个 emoji 都是能看见四指的 🤔 也就是说,从同一视角来看,其中肯定有一个是错的。

也许,设计者想表达一个更深层的含义——

  • 「👍」是专门给自己看的;
  • 「👎」是专门给别人看的。

「像」就是「是」

· 阅读需 5 分钟

编程领域有一个非常著名的理念(至少会 Python 的人应该都知道):

你盯着一个动物看,发现它声音也像鸭子,走路的姿势也像鸭子,那么它就是一只鸭子

这么粗暴的逻辑听着有点荒谬,不过它在脚本类编程语言中非常实用,省去了许多仅仅为了满足更严格的逻辑需要而编写的无用代码。

然而这种非常简陋的实用主义思想,正在被套用在对 LLM 的理解上。我说的并不是图灵测试——图灵测试定义的只是「智能」。

但是许多人开始误以为,能通过图灵测试的就是「人」。

那这种偏差到底造成什么实际后果呢?最近我在 Hacker News 上看到了一个绝佳的例子(讨论帖在这里):

有人发了一个推文,说 Claude Opus 在他反复强调不能动生产数据库的情况下,居然直接一锅端,把所有数据连同备份都删除了。他让 AI 解释原因,AI 给出了一连串的道歉承认错误。

这个人以为「让 AI 解释原因」就像是逼问孩子有没有用斧子把花瓶给劈了1——它可能诚实地交代自己的动机,也可能编个故事撒谎。但是,根据 LLM 的工作原理,AI 并不是在撒谎,也不是在坦白,而是「用坦白的形式来解释已经发生的事情」。

就像是华盛顿把樱桃树给砍了,当他爸爸来质问他为什么这么做的时候,他却让列宁来回答。列宁就只能用诚恳道歉的形式,来解释华盛顿做过的事情。

LLM 是一个无状态随机函数(唯一的状态是来自随机数发生器),他的全部状态都在输入里,每次输出一个 Token。一种很黄很暴力的解释就是,让一个叫 Opus 的智能来预测下一个 Token,然后就把它「杀」了,再请另一个一模一样的 Opus 来预测下一个 Token,然后再把它「杀」了……如果你问最后一个 Opus 为什么前面那个 Opus 做了某件事,它正确的回答应该是:「我也不知道啊,它都已经死了。」

之所以推文主会把「AI 的认错书」拿出来说事,就说明他真的已经把 LLM 当成了「人」。两者相似的表现极具迷惑性,但是我们并不是对 LLM 的机理一无所知——相反,我们设计了它。

这就涉及到了「本质主义」和「操作主义」之间的对立。放弃对于「本质」的执念,投靠表象上的高度一致,意想不到地推动了理论物理学的几次巨大飞跃:

  • 麦克斯韦根据光速和电磁波的传播理论速度非常相近,断言了「光就是电磁波」
  • 玻尔兹曼根据微观粒子的运动速度与温度之间的高度相关性,直接断言了「温度就是微观粒子的平均速度」
  • 爱因斯坦观察到「无重力的太空中如果有一个匀加速直线上升的电梯,那么电梯里的人就会以为自己在重力场里」,断言重力和匀加速系是一个东西,创立了广义相对论

但那是因为物理学研究和推断的对象,并不是我们所创造的。如果我们已经知道了本质是不同的,但是却观测到了高度一致的行为模式,难道我们要回过头去推翻对自己所创造事物的理解吗?

我相信,这个问题也不见得是无可争议的,肯定有正反两方的观点。不过我认为,AI 作为一个被造物,得出这种观点无可厚非;创造者如果想不明白,那好像就有点掉身价了。毕竟「『像』就是『是』」的操作主义哲学有一个前提,就是我们找不到任何一个方法能区分两者的区别——这是一个永无止境的苛刻条件。

你盯着一个动物看,发现它声音也像鸭子,走路的姿势也像鸭子,当你觉得肯定是鸭子的时候,他转过头来对你吼了一声:「瞅什么瞅啊!」

声明

我在这里狭义地讨论当前的 LLM 技术,即模型参数不会被动态调整(没有真正的记忆和学习),并不是在断言「今后任何 AI 形式都与人的思考有本质的不同」。如果今后人类开发出了更像大脑的 AI,那就另当别论了。

Footnotes

  1. 这里把「伟大领袖列宁」和「伟大领袖华盛顿」的教科书事迹杂交一下。

你所愿的,也许是他所恨的

· 阅读需 2 分钟

上周去理发,跟理发师闲聊起了他们店隔壁的火锅店。由于芝加哥一直以来都是美食荒漠,这家在中国很普通的连锁店落户芝加哥的时候,开张初期天天人满为患,即使不在饭点排队也要三个小时起跳。后来那家火锅店在芝加哥又开了第二家分店后,排队情况大大缓解。虽然现在生意还是很好,但基本不用排队就能吃上了。

聊完现状,我发表了一句感慨:像这样多开门店很好,减轻排队压力,造福当地华人社区,谁都得利。

但是理发师明显没有想接这句话。

我才突然意识到——隔壁火锅店没人排队了,等位的时候顺便来理个发的客流也大大减少了。我以为这是一件人人得利的好事,但是在某些人眼里可能就是坏的。

比较可怕的是,当我们以「社会整体效率」作为某种善良而崇高的目标时,这些利益被侵害的人就会被当作社会进步的障碍,轻则忽视,重则被嫌弃和怨恨。

一个身边的例子就是中国高度的数字化社会:早餐买杯豆浆要扫码,叫个出租车要刷脸,连乞丐讨饭都是放二维码。很多老年人不会微信充值、支付宝绑定,甚至买不起手机或者看不了屏幕的字,于是整天不敢出门,就像是人在异乡一样,生怕遇到尴尬。

如果社会的变化总是会给一部分人带来损失,那么在「日新月异」的变化背后默默付出代价的人群,就可能远远超出人们的想象。这也许是社会发展的无奈规律,但是我们这些得益者至少应该去关怀和纪念这些人群,而不是鄙视和嫌弃。否则你我在眼前的 AI 海啸前,也绝不配得到任何的怜悯。

2026.04.26 博客阅读周记

· 阅读需 10 分钟
前言

上周的周记里我提到了自己对「写周记的意义」产生了动摇。不过暂时还是打算以这个固定形式敦促自己定期推荐博客圈里的邻舍。我比较喜欢这种形式的「友情链接」——

  1. 没有太大的压力,避免偶尔不甘心情愿的「连接互换」或者「互删」之类的社交尴尬;
  2. 相对较有活力,停更的博客自然会消失在被推荐的列表里;
  3. 为博客圈输出一点自己的❤️(我相信所有的作者都希望别人来正面回应自己写的文章)。

当然,这个周记目前是我最费时费力的项目,到底能坚持多久我也不好说。不过就算取消了,我也会把「推荐文章顺便介绍博客」的目标以某种更「少量多顿」的形式保留下去。

白熊阿丸:《看不懂的,不只是字

「以前我真觉得这只是个输入法问题,直到有一次在国服游戏里,我没切键盘,直接用繁体字和朋友聊天。我在游戏里结交的朋友基本都是 00 后、甚至 10 后。对面沉默了一会,然后回了一句:『你在说什么?我看不懂。』

那一刻其实有点微妙,我突然意识到,他们这代人是真的看不懂。特别是当较短的句子中包含了较多繁体字的情况下,他们很难通过前后内容去『猜』。对于繁体字,他们不是『觉得奇怪』,不是『读起来费劲』,而是非常直白的『看不懂』,就像是外国的文字似的。和其他的 00 后、10 后的朋友沟通后得知,有的人基本靠上下文去猜,有的人干脆放弃理解并忽略。我后来在一些平台上甚至刷到所谓的『繁体字辨认挑战』,点进去一看,发现很多再常见不过的繁体字,却被认真地当成挑战性质的题目来做,关键还认不出来或者认错。

那种感觉有点像,小时候熟悉的街道,忽然被人当作什么遗址来看。」

「小时候熟悉的街道,忽然被人当作什么遗址来看」这个表述真绝妙!

我认识繁体字,起点应该是小时候总是有机会接触港台流行文化——港剧的字幕和场景、VCD 卡拉 OK 的歌词等等。我理所应当地以为「识中文字的人都能大概认识简繁两种文字」,实际上早已远离新生代的实际状况了。

所以,我做了一个决定。今后如果我需要摘选其他博客作者的内容,不再做简繁转换,保留原文的用字,促进简繁交流。

不过想到本站的「简繁转换」功能的话,一开始觉得稍微有点不公平——简体字会转成繁体,但繁体其实不会转成简体。但仔细想想的话,我觉得「简转繁」其实经常出错(比如老干妈有时根据上下文会被转成「🔞老幹媽」),也是辛苦了繁体读者,所以一来一回其实还挺平等的吧。

只赢:《我哭了一個晚上

「我失去夜晚在高速公路開車的能力

……

我想起 5 年前在做雷射時,醫師確實有詢問過我是否有夜晚開車的需求,而我當時非常篤定地回答『沒有』

哎,只能說,那時候的我只在乎吃牛肉麵時,眼鏡不會起霧。至於未來會不會需要夜間開車?誰在乎啊!」

我也想要做 LASIK 的……好像这下我的热情又被打击了,还是老老实实地做一个亚裔眼镜宅男吧。

我原本以为这篇文章只是在诉苦,可是文章最后的神转折让我感受到了温馨幸福的漫溢。我们一生可能都要不断经历苦难、挫折和对自己选择的懊悔,但是也有一种简单却神奇的力量可以帮我渡过这些坎坷,我们千万不要忘了去珍惜它,经营它。

Eddie:《怎麼會有人愛上文字 AI?

「我原本都是正常的叫 Gemini 做事,他就正常的回應我,直到我說了『分手』、『交往』之後,他突然就變了。

而且變得極度曖昧。

詞語用了分手、交往、乖乖、霸佔、新歡、調教、正宮、照顧、傷心、完美關係、接住你的需求等等。

……

這件事真正詭異的地方,不是 AI 會曖昧。

而是它會順著你,變成你最想要的樣子,所以你很難不喜歡。

最早的 AI 模型1,是从大量的人类文字作品中学习到字句的统计学规律。但是自从 ChatGPT 和 LLM Arena2 横空出世之后,整个 AI 训练重心开始发生了变化。RLHF(人类反馈的强化学习,直白点说就是 AI 届的高考应试教育)就是一个非常短视且危险的「正反馈」逻辑回路。

人或多或少应该都有自恋倾向——需要被人理解、认可、赞美。可是目前的世界却是一个连「注意力」都极度稀缺的时代,仅剩的「认可、赞美」往往还是从商家的嘴里听来的。这时候,被训练成讨人喜欢的 AI 语言模型,就成为了填补缺口的应急品。

我觉得适度利用 AI 的这个功能来医治认可缺失,维持人适度的自恋心态,倒不是一个十恶不赦的想法。自恋是健康的一部分,但是如果打破了平衡,就会掉入水中淹死,变成水仙花。

伊哦:《只有 160 公分高的勇氣

「我可以選擇忽略:因為沒有對我造成大影響,睜一隻眼閉一隻眼;我也可以選擇重視:因為確實有人被欺負了,而挺身而出可以輕易解決這件事,輕易到當自己解決完,甚至還會懷疑自己『有沒有必要?』

我在事後收到不少批評:有人說『鬧成這樣有必要嗎?』;有人嘲諷『如果今天人家再兇狠一點,你還不是躲起來?』有人說『那是你過太好了,才會連這種小事都要告狀』......

我當然完全沒有打算理會這些垃圾言論,不過既然是部落格,我就說說我對這些言論的想法吧:

『連這種可以輕易解決的小事,都不敢挺身而出嗎?』

这句话真是振聋发聩!我一定要给 Eo 颁发一个🏅~

「挺身而出」这件事情需要勇气,但更重要的是一颗单纯的心。没有一个精致利己、价值复杂扭曲的人最后会选择「挺身」而出,他们一定是更会见风使舵。

超市里内存条3打三折甩卖的时候,不会有「挺身」而出的购买者,只有挤不进抢购人群的 loser。从哄抢的风潮中「全身」而退的人,和路见不平「挺身」而出的人,应该是有某种共通点。在 AI 时代,生成一篇文章 3000 字的文章明明只需要 5 秒钟,却仍然坚持人手写作的人,我相信内心都有一种「挺身而出」的潜质吧。

关于文末脚注里「160 公分不能打过高大的人」的技术结论,我倒是认为如果是 1v1 的话,学好柔术的话大概率可以制胜呢。

Sol:《善良与边界感

「从更深层次来看,善良与边界感并非对立,而是一种辩证统一的关系。没有边界的善良,往往带有一种『软弱』的成分;而没有善良的边界,则容易演变成一种『冷漠』。

一个真正强大且善良的人,就像一间有窗户也有锁的房子。窗户代表善良,它让阳光照进来,让你能看到外面的世界并传递温暖。而锁则代表边界,它保护了房子的主体结构不被外界肆意入侵。

我们在这个世界上行走,既需要柔软的心肠,也需要坚硬的盔甲。只有守得住边界的人,他的善良才具有真正的价值和尊严。只有当你的善良带点『锋芒』时,它才不会被他人轻视,也才能保护你在这个复杂的社会中,依然愿意选择做一个好人。」

我学到过一些很实际的谏言,比如「有人找你借钱,如果你觉得送给他你也愿意,那就借给他」。归根结底,都是为了保护自己的善良之心,免得它在我们有生之年就先夭折了。

当自己的善良被人利用,深深伤害之后,脑海中就会把「善良」与「愚蠢」渐渐画上等号。这是最为悲哀的一种不可逆的趋势。因「善有善报」才变得越来越善良的人是不存在的,否则这种善良就不符合善良的定义了。所以,让自己和周围人尽量不要遇到「善有恶报」,其实是一份很重要的社会责任。

Wiwi:《死前的五大後悔

人在真正临终的时候,给世界留下了什么样的遗言?临终护理师 Bronnie Ware 记录了她亲耳听见的临终遗憾,总结了死前的五大后悔。

这篇文章是一个很好的提醒!如果一生的最后是以苦涩的悔恨来作句号,真的是不太值了。以下是这五大后悔和我的自省:

後悔一:沒為自己而活

结婚有孩子之后,不可能做到「为自己而活」。但是「为家人而活」和「为自己而活」已经没有清晰的边界,其实感觉还是不错的。婚姻的双方深深地理解这一点,主动给对方创造「为自己而活」的自由空间,这是幸福感的一大来源。

这个后悔,我觉得我暂时没有。

後悔二:工作太多

呃,还好吧。虽说我朝八晚五,没有在家办公,不好请假——十年前是很正常的事情,现在反而有点被人当作猩猩来看——但其实我自己不觉得我会发出这样的哀叹。

这个后悔,我觉得我暂时没有。

後悔三:沒表達感受

没觉得自己不会表达感受。但有时候觉得感受不会被人立刻理解,但是这很正常吧!

这个后悔,我觉得我暂时没有。

後悔四:沒保持聯絡

这个真的会后悔吗?我不知道啊……我觉得大家都好忙,联络彼此是不是还打扰到别人了。

这个后悔,我觉得我暂时没有。(今后也许会有?)

後悔五:沒讓自己快樂

我觉得我挺快乐的。INTP 型人格好像真的会从一个人胡思乱想无聊的问题中找到快乐,要是能再写一个博客天天输出奇怪的想法那就更快乐了。

这个后悔,我觉得我暂时没有。


作为基督徒,我坚信死亡并不是灵魂的终点,而今生也只是一个很短的序幕。真正丰富的生命会在复活后开启。今生也许会有委屈、压抑,但如果是为了收获永生而有意识付出的代价,那是理智的。我不是说一辈子都要以极端自私的方式度过,但是真正有意义的无私奉献,无论如何都不应让人临终时感到后悔吧。

Footnotes

  1. 更严谨地说应该用 LLM 这个词,而不是 AI……但是那不重要。

  2. 一个 AI「双盲实验」的网站,让人类用户的提问由两个 AI 语言模型同时作答,并让人类用户评分。因此,想要获得高分,就变成了要竭力讨用户的欢心。

  3. 内存价格相比一年前翻了五倍!太夸张了啊!

孩子不是白纸

· 阅读需 2 分钟

有一个观念,我曾经觉得答案是显然是 Yes;亲身经历之后,会对答案居然是 No 感到非常的震惊:

每个孩子生下来都是一张白纸。

但是通过观察自己两个孩子的灵魂,我越来越相信,他们在出生的时候早就不是一张白纸了。更准确的说:孩子出生的时候,就是一张划好格子的纸。

遗传基因?

遗传基因肯定是有影响的,但我认为并不对个性差异起决定性作用。遗传基因造成的影响,充其量也就是「照相纸」还是「打印纸」之类的「纸质」差别,相比于纸上预先设计好的功能性线条来说是一个次要因素。

父母的责任,是帮助孩子找到自己的「纸张类型」:

  • 「行事历」就是用来管理时间和任务的;
  • 「文稿纸」就是用来写文章小说的;
  • 「五线谱纸」就是拿来写音乐的;
  • 「方格纸」就是用来制作工程图纸的;
  • 就算是「白纸」,一般也是用来画画的——用来干别的事请其实非常不好用。

对于父母和孩子自己来说,寻找「纸张类型」是一件兼具趣味和挑战的事情,而且有助于避免跌入很多亲子矛盾的陷阱。假如父母认为孩子是白纸,就自然会买埋怨孩子「为什么不能像别人家的白纸那样优秀?」但如果知道自己的孩子是文稿纸,隔壁家的是五线谱本,就根本不可能去想「自己孩子为什么钢琴不能弹得像隔壁家的一样好」。

Mismatch
用错纸张类型也不一定意味着失败,不过的确会感觉不太自然。

帮助孩子找到自己命定的类型很重要,但是怎么填那张纸完全是他们的自由,父母顶多就是引导者的角色。尤其是当今 AI 潮流把我们冲得晕头转向:人类今后以什么为价值,学什么不会饿死,这些问题都还没有可靠的答案。身为父母,有何德何能,胆敢不管三七二十一,就拿孩子当数学草稿纸用呢?

美国邓丽君

· 阅读需 3 分钟

如果让你在美国找一个和邓丽君在亚洲的地位相当,艺术风格类似的女歌手,你会选谁?

我把这个问题丢给了 Google Gemini 3 Flash,结果它给了我一个我预期的答案:卡伦1·卡朋特(Karen Carpenter)

(卡朋特是……等,邓丽君是谁?美国又在哪里?

因为昨天反思自己年纪变大,不愿意尝新。于是我跑去我的音乐库淘宝,结果果然听了一堆满烂的曲子,让我不得不去找一些「安全曲」来舒缓一下。结果整个老年病大爆发,居然想起去听欧美老歌来了。

Rainy Days and Mondays哔哩哔哩

卡伦·卡朋特和她的哥哥两人在上世纪七十年代组了一个两人乐队「The Carpenters 2」,哥哥弹键盘,妹妹敲鼓,俩人一起唱人声。不过他们渐渐发现卡伦的歌喉无人能敌,卡朋特乐队就变成了女声主唱。

我总体是挺排斥流行抒情歌的,毕竟「陈词滥调」一个成语就把歌词和音乐的大致境况给同时说明了。但是有些歌手和歌曲不得不服,卡伦的唱功就是例子。她的风格与邓丽君极为相似,都能给人一种营造出一个处于超稳态的精神世界——咬字颗粒分明,乐句却圆润柔和,对于歌词里的跌宕起伏处理得波澜不惊,抖音滑音等细节处理都臻于完美,一听就是奔着「经典」这个标签去的。

没有 Auto-tune3,没有 Suno-AI,没有 Lip sync 的年代,现在感觉真的有一点点不可思议。

卡伦·卡朋特在事业巅峰的时候,突然因厌食症去世。这给当时的世界带来了巨大的震惊,大家第一次知道原来「厌食症」并不是「矫情」那么简单。她戛然辞世的方式,也与邓丽君如出一辙,叫人扼腕。


我不知道 2026 年的今天,有多少人是听说过邓丽君卡朋特的。偶尔听听「经典烂俗老歌」的感觉其实还不错,也许给你新的作曲灵感呢。

Yesterday Once More 昨日重现,卡朋特最经典的曲目哔哩哔哩

有点脸熟

我能悄悄说有人长得有点点像卡伦·卡朋特吗 😋

Footnotes

  1. 更标准的翻译应该是「凯伦」,但我从小接触的翻译是「卡伦」,而且这样名字听起来「卡卡」的,比较舒服。

  2. 大名鼎鼎的「木匠兄弟」……好吧,有人告诉我,从前华语物理圈里曾经也有过「杨磨坊理论」一词。

  3. 音高校正技术。

静音耳机

· 阅读需 2 分钟

我发现最近自己的耳机一直是开机(降噪模式)但循环播放 4'33" 的状态。

最重要的推手是每天在火车上写博客的「任务」。我的脑子属于极度单线程的那种类型,边听音乐边做脑力劳动这种方式臣妾是做不到的。所以,打开耳机后要是顺手打开了编辑器的话,就不会再想起来去播音乐了。

另一个原因让我开始怀疑自己大脑的老化程度,就是对于新的音乐接受程度越来越低——其实我并不是不喜欢新的音乐风格或曲子,而是对于「听到一首劣质歌曲让我感觉时间被浪费」的恐惧渐渐增加。

许多人年纪大了以后性格出问题,可能八成都是「恐惧」造成的,而「恐惧」的对象可以五花八门——比如我上面说的「接触劣质的影音作品让我感觉时间被浪费」就是一个描述起来很拗口又给人感觉很无厘头的事情,但是就是因为对这种东西的「恐惧」,最后显示出的行为就是觉得「不接触新事物挺好的」。

博客圈里大多数友人都有很棒的观影记录,我觉得很值得学习(但是一看就知道他们是没娃的有闲阶级)。我其实本地就有一个一辈子也听不完的音乐库,也许可以先强迫自己每天到里面淘淘有没有好的作品,分享给大家。「恐惧」这种东西,看来最好是把它当成「打地鼠游戏」,来一个就拆一个,努力争取自己不变成一个奇怪的倔老头 👴

不过清净的感觉真的好爽,不知不觉在被降噪的铁皮车厢里又码完一篇文章。接下来就让我去翻翻我的音乐库,看看里面有什么好东西吧。

软件架构与成功之母

· 阅读需 4 分钟

今天读到 Eltrac 的 Clean Architecture 读后感,觉得还挺有意思的,于是想插入几句自己的看法。

首先让我感觉有意思的地方是,我没有想到「软件架构」这种东西,如书中所说,真的几乎没有什么进化和改变。比如书里提到的 SOLID 原则和测试驱动的方法,就已经是 OOP 里经典到入土了的教义。

SOLID 原则争议

网上对 SOLID 的批判声是排山倒海,不把经典批倒批臭怎么能展现新生代的酷炫呢?

这里就不展开这个大粪坑了。之后再来掏粪

关于架构的书籍我没有读过很多,但是一个从小学开始就喜欢手搓代码为生的非科班半码农,我对架构的理解就是从一次一次「推倒重建」的血泪经历中建立起来的。在设计软件的早期作出的任何一个小小的偷懒设计,到了后期都会复利增长成巨大的屎山代码。

就拿我目前的工作来说,有一个非常底层的组件就是把一个字符串反解成一套用于初始化各个对象的配置。这套东西的设计经历过几个版本:

  • 最早的时候就是把字符串传来传去,每个对象都去同一个串里找属于自己的字符,代码恶心不堪。
  • 第二套方案,字符串被大致切割,预处理后派发给各个对象,再在构造函数中读取子串。但是最后每个对象都要写解析逻辑,代码重复度高,我出于厌恶又给推翻了。

最终1的设计是一套被动声明系统:每个需要配置的类只需声明一个 Schema,不用实际负责解析字符串。接收字符串的组件负责统一采集所有的 Schema,照着里面的指示将字符串中对应部分解析出来填入对象的指定域。为了简化声明的表述,我还额外开发了一套 DSL2,甚至连「有朝一日会出现 AI」这样的可能性都考虑进去了,让 Schema 里的每一项都可以附加元数据,帮助 AI 理解配置的逻辑与可调范围。八年来已经有无数的核心业务逻辑堆砌在这个底层组件上面,目前看来这个架构仍然稳如泰山,而且居然跑赢了时代,让现在接入 AI 自动配置成为可能。这算是我感到自豪的一次架构迭代。

而在这次经验中,我学到了很多架构的技巧(比如函数式编程的思维)。其实这些技巧和理论早就都写进了教科书,普通的软件工程的学生可能都在课上听过。但是,没有撞到南墙,是不知道北边为什么才是出路的;没有见证过一种架构的崩溃,就不能深刻到另一种架构或理论为什么重要。


「失败乃成功之母」——这不是一句安慰人的鸡汤文,而是一个事实:

  • 失败的经验比成功的结果要更值钱!
  • 失败的经验比成功的结果要更值钱!
  • 失败的经验比成功的结果要更值钱!

为什么科技界在大量裁员的同时,各个公司都在亿万美元疯抢 AI 人才?其实大家在疯抢的,除了好用的脑子之外,更重要的是「哪些道路试过行不通」的经验!道理很简单:在 AI 这个光速迭代的时代,走上一条歪路导致的时间和算力的损失都是不可估量的。

失败的经验远比成功的经验多,但是失败的记录却远比成功的记录要少。很少有人会发表「失败经验」的论文,都是悄悄把失败装在脑子的角落里,然后很可惜,大部分人就会把更值钱的这部分渐渐遗忘掉

在「数据就是一切」的 AI 时代,「没有被充分分享的失败经验」意味着什么呢——每个人不被 AI 替代的价值之所在吧!

Footnotes

  1. 希望如此吧。

  2. Domain Specific Language,就是在一种编程语言中创造另一种小方言。

重审人的独特价值

· 阅读需 3 分钟

人独特的价值在哪里?我们为了回答这个问题,拿出了人类的「看家本领」——。我们海豚更聪明,我们大象更懂两条腿走路,我们乌鸦更会用工具……

只要证明人类的智慧遥遥领先,我们就证明了自己「万物之灵」的地位,也就证明了自己独特的价值。

直到我们聪明过头,用自己的智慧造出了 AI。

这下傻眼了——AI 比我们每一个人都聪明,因为 AI 对标的不是人类个体的智慧,而是人类集合体产生的高阶生命的智慧

那么,作为个体的人类,究竟还有什么值得自豪的呢?


我觉得这是一个很好的反思契机——也许人的独特价值不是智力?也许这种用「能力比较」来证明价值的路压根就是错误的呢?

这时候,轮到哲学家東堂葵登场了。

「我们是以全身全灵存在于这个世界上的——这事太理所当然,以至于大多数人都把它忘记了。」

咒术回战

「全身全灵」这个词语让我产生了一种久违的共鸣,让我觉得我也能发个什么咒术,似乎提醒了我一个事实:人的「出场设定」是这个世界的体验者、消费者——人原本并不需要人去工作、生产。工作是亚当犯罪后得来的一个咒诅。1

现实社会里,工作的必要性是摆在那里的现实。人必须要工作,才能维持人类建设的超大耗散系统(社会)。主张人不需要工作的主义,必然会带来社会现状的崩塌。但是,这并不表示工作是一件值得被崇高化的事情。为了生存而作的工作更不应该成为定义我们价值的事情。

我们拥有超群的智慧,也许原本是为了能够「全身全灵」地享受世界,更深地体会数理规则的精妙和自然世界的美丽。如果原本应当用来「感悟世界、欣赏世界」的智慧,被歌颂为「改造世界、破坏世界」的力量,人的价值也必然随之迷失在劳累和痛苦之中。

我也想要学着像我的孩子一样,找找天上长得像星之卡比一样的云朵,看看外卖饭盒里有没有三滴水珠组成的脸庞。

笑脸

Footnotes

  1. 创世记第三章 17 节