教材把設計選擇講成選擇、不講成必然或天性
論述基礎與限制
本卡的論述基於 1 個 case(HOF / typedef 文章的「更新的本質天生就是一個函式」)抽出來的觀察、建卡判準是教學需求(本質主義框架在技術寫作、尤其 LLM 生成內容裡是高發 pattern)。具體限制:
- 必然性詞是 starting set:天生 / 本質就是 / 必然 / 唯一 / 註定 是觀察到的、不窮舉。新形式(生來 / 理所當然 / 不可能不)持續擴充。
- 跟 compositional-writing 原則三(機會成本語氣)部分重疊:本卡是原則三的一個 subtype、靠「絕對的形式」區分(命令式 vs 必然式、見關係段)。原則三未獨立成 report 卡、本卡補這個缺口的必然性維度。
- 「設計 vs 必然」的界線本身是判斷:某些陳述介於「被上游選擇逼出來的後果」跟「真正的自然必然」之間(見邊界段)、需個案判讀。
核心原則
設計選擇要講成選擇 —— 說明它在什麼條件下成立、為什麼比替代方案好,而不是用「天生 / 本質就是 / 必然」把它講成自然法則。 必然性框架抹掉設計能動性:讀者拿到「這本來就這樣」、卻不知道「這是一個選擇、有前提、有替代」。
這是「機會成本語氣 vs 絕對主義」違反的一個 subtype,但比命令式絕對更隱形:
| 絕對主義形式 | 句型 | 為什麼隱形 |
|---|---|---|
| 命令式(原則三主要談的) | 「應該用 X」「正確做法是 X」 | 讀者聽得出這是主張、會質疑 |
| 必然式(本卡) | 「X 天生就是 Y」「本質就是 Y」「必然是 Y」 | 偽裝成事實陳述、讀者不會質疑「天性」 |
必然式更該防 —— 它不說「你該怎麼做」(讀者會審),而說「事情本來就這樣」(讀者直接接受)、把一個 trade-off 藏進「自然」的外衣。
具體 case
必然版:「更新的本質天生就是一個 (current) => next 的函式 — 拿舊值算出新值。」
問題:
- update 是設計出來的方法、不是與生俱來的東西、「天生」語義場(生物性 / 本能)對不上設計產物(表層症狀)。
- 更深:update 以
(current) => next形式呈現、只在「選了不可變模型」之後才成立。不可變本身是設計選擇(@immutable+copyWith)—— 「天生」把這個前提條件跳過、讓條件性結論變成無條件真理。 - 最深:牴觸文章自己的論點。這篇通篇論證 HOF 是條件性適配(「三條件齊備才划算」「場景不對時硬用是過度設計」)—— 唯獨這句用「天生」把它講成必然、局部破壞了文章自己的條件性紀律。
修法版:「不可變模型下的更新,在語意上就是一個 (current) => next 的函式 — 拿舊值算出新值。」
差別:修法版用「不可變模型下的」把前提條件講出來、用「就是」取代「天生」—— 結論還在、但還原成「在某前提下成立」、不再偽裝成自然法則。
沒這樣做的麻煩
讀者學到「規則」而非「思考方式」
必然框架告訴讀者「事情本來就這樣」、讀者拿到一條沒有條件的規則。換個情境(可變模型、需要 persist 的場景)規則就不適用、但讀者不知道邊界在哪 —— 因為「天生」沒給條件。機會成本語氣的核心就是「教思考方式(能遷移)而非規則(壓力下會忘)」、必然框架直接違反。
局部牴觸自身論點、瓦解可信度
一篇講「看條件、不是必然」的文章、出現一句「天生 / 必然」、細心的讀者會發現矛盾 —— 到底是條件性還是必然?這比單純用詞不當更傷:它瓦解文章整體論證的一致性。本質主義框架的高發處正是「作者其實知道是條件性、但順手用了必然語氣」。
偽裝成事實、躲過 review
「應該用 X」這種命令式主張、reviewer 會審「憑什麼應該」。「X 天生就是 Y」偽裝成事實陳述、reviewer 容易直接接受 —— 跟 #151 誇飾、#94 空降斷言同構:把需要依據的東西包裝成不需要依據的形式、躲過檢查。
跟其他抽象層原則的關係
- compositional-writing 原則三(機會成本語氣優先):本卡是原則三的 subtype。原則三主要談命令式絕對(「應該 / 正確做法是 / 替代方案不足」)、本卡補必然式絕對(天生 / 本質就是 / 必然)這個更隱形的維度。原則三未獨立成 report 卡 —— 本卡是它在「必然性框架」這個具體形式上的 report 化。
- #151 教材給技術理由、不替方案下品質評價:兩卡是「空降家族」的 sibling、都把需要依據的東西包裝成不需要依據。#151 是品質 verdict 空降(教科書級頂替理由)、本卡是必然框架空降(天生頂替條件)。差別在頂替的東西:#151 頂替「為什麼好」、本卡頂替「在什麼條件下成立」。
- #94 正向改寫要保留對照論據、不能空降結論:#94 是空降家族的源頭(刪掉對照 Y → 結論 X 空降)。本卡跟 #151 都是 #94 在不同維度的變體 —— 三者共享「給結論不給依據、讀者只能相信或腦補」的失敗。
- #111 口語化修辭會稀釋技術精度:「天生」在表層也是一種用詞精度問題(語義場對不上指涉對象)—— 但本卡聚焦的是它的框架效果(把設計絕對化)、不是精度。#111 抓表層用詞、本卡抓深層框架、可疊加。
判讀徵兆
| 徵兆 | 該做的行動 |
|---|---|
| 出現「天生 / 與生俱來 / 本質就是 / 必然 / 唯一 / 註定 / 理所當然」 | 檢查指涉對象是不是設計產物 —— 是 → 還原成條件性 |
| 句子說「X 本來就是 Y」、但 X 是設計出來的 | 必然框架 —— 補前提條件(「在選了 Z 之後、X 以 Y 形式成立」) |
| 同一篇別處強調「看條件 / 看場景 / trade-off」 | 檢查必然句是否牴觸自身條件性論點 —— 是 → 對齊 |
| 必然陳述讀起來像事實、但其實是設計決策 | 偽裝成事實的主張 —— 還原成「選擇 + 理由 + 條件」 |
| 刪掉「天生 / 必然」後句子仍成立 | 詞是純贅字 / 偽裝 —— 直接刪或還原條件 |
適用範圍與邊界
- 適用:設計理由段、概念建立段、適配性論述 —— 凡是在講「某設計 / 某結構為什麼成立」的地方。
- 不適用:物理 / 法律 / 合規 / 數學事實(per 原則三的例外)—— 「雜湊碰撞必然存在」「GDPR 規定必須 X」這類是真必然、可用必然語氣。
- 邊界:條件性後果 vs 真必然的判別線是「這個必然有沒有上游的設計選擇當前提」。「不可變模型下、更新是 current → next」是條件性(前提=選了不可變)、要講出前提;「任何雜湊函式都有碰撞」是真必然(不依賴任何設計選擇)、可直接斷言。被上游選擇逼出來的後果、不是天性。
Self-case:本卡的觸發來源
本卡觸發於 review 為什麼這個場景適合用高階函式 時、讀者指出「更新的本質天生就是一個函式」—— 「不會有天生這件事、update 也是設計出來的、中文語義上不可能說這叫天生」。
第一輪我把它定性成單純的語義錯置(天生=生物性、對不上設計產物)、讀者要求用 WRAP 再想一次。WRAP 揭露三層遞進:(1) 表層語義場錯置;(2) 中層把設計選擇講成必然、抹掉設計能動性;(3) 深層牴觸文章自己的條件性論點(通篇論證 HOF 是條件性適配、唯獨這句講成天生)。
對應本卡:必然性框架不是用詞問題、是框架問題 —— 把「設計」講成「天性」。它比命令式絕對(#151 / 原則三主談)更隱形、因為偽裝成事實陳述躲過讀者跟 reviewer 的審查;它的高發訊號是「局部牴觸作者自己在別處的條件性立場」。建卡正當性來自教學需求(LLM 寫作高發)、非本 case 頻率(1 實例)。