2021年12月19日 星期日

盲人摸象看軟體

軟體像什麼? 你認為把它視為「商品」是理解軟體的最佳比喻嗎? 把軟體/程式碼視為財產恰當嗎? 二手的電腦可以上網販售, 但是 Microsoft Office 可以嗎? 買回家的畫紙蠟筆可以隨時使用, 紙筆工廠不會檢查你的網路連線; 但是逐步走向訂閱制的 Adobe 繪圖軟體可以嗎? Line 說是為了保護你的帳戶安全, 所以一定要綁定一支固定的手機; 但是賣你錢包的廠商如果也要求你每次把錢包從一條褲子移到另一條褲子時, 都必須把舊的那條褲子擺在手邊, 否則禁止移轉, 這樣你也相信他是為了保護你的安全嗎? 廠商如果真的這樣限制你的自由, 那麼這個錢包到底算是誰的財產呢?

把軟體視為財產其實是大型軟體公司的專利。 軟體的複製成本幾近於零, 對大型軟體公司來說販售軟體就像是印鈔票一樣。 但是這個權力如果釋放給一般大眾, 那麼這種鈔票就會失去它的價值。 對一般人來說, 我們不僅無權印鈔, 甚至無權像自由處置車/房/家具等等一般正常財產一樣地自由處置我們所 "擁有" 的軟體 "財產"。 把軟體視為財產的視角不只完全無法解釋為何我們失去了自由處置財產的基本權利, 甚至會限制乃至扭曲思考, 讓我們看不見許多比軟體價格更重要的事。 曾經, 臺灣許多所大學的校長們聯合發聲明集體抗議微軟, 卻仍舊集體被微軟 征服, 因為校長們只看到 Office 定價過高, 卻看不見欠缺相容性所導致的壟斷。 令人嘆息。

即使是任職於大公司的程式設計師, 對他而言他的作品也並不像是財產, 而是單一次的工作產出。 就像是老師上課的錄影一樣, 這種產出並不是他的財產, 最多只是可以向學校僱主爭取一次性額外工作獎金的工作成果而已。

程式碼是知識。 Github 是程式宅們分享自身知識的地方。 自由軟體之父 Richard Stallman 認為 軟體/程式碼像食譜, 分享它, 可以幫你交朋友, 甚至獲得改進建議。 不只是創作者, 對閱聽/使用者來說也是如此。 因為網路讓資訊複製的成本降到零, 對於善於搜尋網路資源的人士們來說, 軟體/程式碼跟就像美食地圖/旅遊行程/保健操/...一樣, 都是很容易在網路上可以無償取得的知識。 把任何熱門軟體的名字加上 open source 去搜尋, 經常可以找到自由軟體版的同樣功能替代品。 自由軟體跟網路上找到的食譜一樣, 諸多版本的品質高低可能有著很大的落差。 但是只要網站有留言討論的空間, 那些原本只是來吸收知識的閱讀者, 也很可能在分享知識的氛圍下, 把他處的知識帶來分享給站長原創者及其他閱讀者。 從這個視角看自由軟體與專屬軟體孰優孰劣的比較論述, 有一部分會與探討維基百科或開放街圖優缺點的論述類似。 例如參與貢獻的程式設計師撰文者和地圖繪製者為什麼要無償分享? 採取財產視角看軟體、用金錢動機解釋人類一切行為, 將會無法理解甚至會進一步強烈否定好玩、成就感、解決自身問題、提高網路社會地位... 等等 金錢以外的動機。 在某些論戰當中, 甚至可以看見 「軟體/程式碼是財產; 金錢是創作唯一動機」 論述者所展現出來的反應, 頗為類似獨裁國家民眾遇到多元視角論述挑戰時, 堅持以黨的價值觀為唯一權威的態度。

程式碼是法律。 創用 CC 發明人 Lawrence Lessig 教授 20 多年前寫書的時候拿第二人生等遊戲作為例子, 說明在虛擬世界裡, 程式碼像是物理法則 (architecture) 或是人類法律 (law) 一樣, 限制或至少左右了使用者能做的事。 大約在那同時, 英國郵局大規模導入 horizon 會計資訊系統, 此後有 700 多位郵局局長遭控詐欺, 其中有 39 位因此而入獄。 直到今年他們才洗刷冤屈, 原來是因為 horizon 程式碼裡的 bug 毀了他們的現實人生。 這兩年的肺炎瘟疫促使學校改採遠距教學, 在美國更有許多學校採用極具爭議的遠距監考軟體。 這類軟體禁止電腦的擁有者開啟瀏覽器的其他分頁、禁止開啟其他應用軟體等等, 行為跟違背電腦主人意志、 劫持電腦控制權、 刺探隱私的各類惡意軟體一樣。 這引發師生抗議軟體公司侵犯隱私與自主權。 無奈地,大多數時候, 我們的生活被那些我們無權質疑, 甚至無權研讀與理解的法律所宰制著。 對於冤獄的局長們以及因為膚色太深而無法考試的學生們而言, 這種被黑箱法律所冤枉的感受特別深刻。 另一方面, 開放原始碼的各種密碼貨幣, 因為遊戲規則透明化及去中心化而吸引了許多投資者的信任, 現在更逐漸與主流金融市場整合。 密碼貨幣的挖礦機制以及智慧合約 -- 例如質押、 非同質化代幣 (NFT) 交易抽成、 去中心化交易所的換匯與交易手續費、 流動性挖礦利潤分配 -- 等等金錢往來規則, 更把「軟體是法律」 這句話從譬喻變成直白描述的事實 (literal fact)。

程式碼是言論。 撰寫程式的權利應被視為言論自由受到保護。 合法購買 DVD 影音光碟的用戶卻因為他的電腦採用 Linux 作業系統而無法播放。 募款無法解決問題, 因為解碼授權機構 DVDCCA 不會同意 Linux 社群購得授權後公開其程式碼。 於是網友自行開發 Linux 的 DVD 播放軟體 DeCSS 並且自由分享, 開發者與協助散佈該自由軟體的網站站長們卻遭到授權機構 DVDCCA 的訴訟威脅。 Rene Hollan 採用隱寫術 (steganography) 的方式寫了一篇文章, 把程式碼編碼藏在文章的空格裡, 讀懂那一篇文章的人就可以還原 DeCSS 程式碼。 這迫使 DVDCCA 要嘛就必須對那篇文章進行言論管制, 要嘛就只好放棄封鎖 DeCSS。 加州大學柏克萊分校的數學博士 Bernstein 發表一篇加密演算法的論文, 卻遭美國政府以國安理由要求下架。 捍衛資訊人權的非營利組織電子先鋒基金會 (EFF) 協助他打官司。 Marilyn Hall patel 法官判決程式碼是言論, Bernstein 的言論自由應該受到美國憲法第一修正案保護。 另一個比較輕鬆的例子則是 perl程式語言的寫詩比賽: 每件參賽的作品唸起來是一首英文詩, 執行起來卻是一個程式。

程式碼是數學定理。 有一些人認為兩者都是被發現的而不是被發明的。 諸如各種排序演算法及各種平衡樹等等資料結構, 經常都有不同的人各自獨立發現類似或等價的結果。 甚至僅僅是邏輯能力較好的年輕程式設計師, 也很有機會獨立自行重新發現其中一些最自然最有效率的方法。 筆者自己在高中的時候, 為了解騎士走棋盤問題, 而領悟出一大類對於剛學會迴圈的程式設計師而言較為挑戰問題的解法, 直到大學唸了資工系才知道那個問題叫做旅行推銷員問題, 而我想出來的方法叫做遞迴。 事實上有一大家族通稱為 functional programming languages 的程式語言, 其設計理念就是把每一個程式碼都視為一個數學函數, 而驗證程式碼的正確性也就變成了證明數學定理。 如果這個社會用智慧財產權保護高斯消去法或牛頓拉福生求根法, 要求每位使用者都必須付錢給發明人的子孫, 那麼數學在各種工程上的應用將會更加蓬勃或是更加肅殺呢? 錢應該要付給牛頓的子孫還是拉福生的子孫呢?

程式碼是認知戰的工具。 學習強國這個 app 是最鮮明最赤裸裸的例子。 高壓洗腦是最強有力的方式, 但並不是透過程式碼進行認知戰的唯一方式。 在 「全民打漢奸」 這個遊戲裡, 反送中人士被貼上漢奸標籤, 成為玩家打殺的對象。 這個遊戲在微博中四處散佈, 並沒有標明註明著作權人, 創作者的動機顯然不是 "販售財產" 以便賺錢; 這不是誰的財產, 而是政治作戰文宣的二十一世紀版。 共產黨並不是透過程式碼進行認識戰的唯一組織。 「逆統戰: 致地與海的革命者」 是一款由台灣境外戰略溝通工作小組所發表的反共史詩桌遊。 籌資固然是目的之一, 但是用智慧財產權保護它是否有助於終極目標? 這是值得創作團隊思考的問題。 政治並不是透過程式碼進行認知戰的唯一戰場。 許多廠商把證券交易 app 設計成像遊戲一樣, 吸引年輕人頻繁交易上癮。 投資新手 Alex Kearns 誤以為自已賠大錢而自殺。 這引發了美國證券交易委員會的關注, 要限制這類的遊戲化引誘交易設計 (gamification)。 Paolo pedercini 撰寫許多刻意引發爭議的 apps, 目的是要促使大眾討論被主流媒體所忽略的重要議題。 他的作品 phone story 探討衝突礦產 (conflict mineral) 議題下的童工、血汗工廠、計畫報廢等等問題, 戳到許多手機生產商的痛點, 因而 遭蘋果電腦從 app store 下架。 值得一提的是: 跳回先前的 「程式碼是言論」 觀點, 逆統戰與 phone story 這類挑戰強權的認知戰武器, 遭到強權噤聲也是很容易理解的, 這是言論管制者必然需要做的事。

程式碼正在逐漸地與我們的身體結合, 擴充甚至融入我們的神經系統。 四歲的 Maya 無法清楚發聲, 只能靠一家小公司在 iPad 上所推出的 app 「Speak for yourself」與父母溝通。 溝通輔具 (AAC) 市場上的大咖 SCS/PRC 原本的暴利被破壞, 於是以專利法令控告 SFY 的發行者, 蘋果也配合其要求將 SFY 下架, Maya 被噤聲。 Karen Sandler 是軟體自由保護協會的律師也是心律除顫器的使用者。 她想要知道他所使用的機器是否安全, 但她從來要不到程式碼。 即使白帽駭客 Barnaby 早已示範如何駭入胰島素泵,顯示醫療器材的資安問題嚴重, 而 Sandler 更不斷地向廠商強調: 這是要放進我身體裡的東西, 我需要知道他是否安全, 但仍舊沒有任何一家除顫器的製造商願意提供程式碼。 除顫器的參數設定對孕婦特別危險, 如果有程式碼就可以針對孕婦改變參數設定; 但是在廠商拒絕配合的情況下, 最後醫師只能施藥降低她的心跳速度, 卻又提升了她其他方面的醫療風險。 Elon musk 的公司最近成功地讓一隻頭骨底下裝有 neuralink 的猴子用思想去操作遊戲。 當逐漸老去的我們全身上下從心臟到頭腦都漸漸需要透過軟體與世界互動的時候, 我們仍舊堅持 「軟體是商品、是廠商的財產」 的觀點嗎? 我們認為廠商有權隨意處置他們的財產, 透過藍牙或是 WiFi 讀取甚至遙控那些植入我們身體裡各個器官的裝置嗎?

[2023/4/1] 如果把整個人類社會視為一隻巨獸, 那麼網路加上程式碼就是 牠的神經系統

將軟體僅僅視為財產/商品, 而缺乏其他認知的社會, 就像只被允許觸摸牆上細縫露出來的一小截大象尾巴的盲人們一樣, 將會因為關注錯重點而失去許多機會與警覺。 軟體正在吃掉全世界。 如果這麼說太抽象, 請想想過去這幾十年間, 手機吃掉了電話簿、計算機、鬧鐘、指南針、相機、地圖、字典、... 為什麼? 從售前到售後, 一般使用者從來不是軟體真正的擁有者, 卻被說服把軟體視為大公司的財產, 這比所有的盲人們只能搶著摸象尾巴更危險、 更令我們 -- 包含大學校長與資訊電腦教授們 -- 的想象力被削弱到貧乏得無法應對新世界的快速變化。 我們的社會需要勇氣打破軟體的認知高牆、 需要更多聲音採用其他觀點去理解軟體到底是什麼、 正如何被拿來駕馭或影響著我們的社會。

[本文為 科學月刊版 加上超連結及小幅度修改後的版本]

1 則留言:

請見 留言審核及授權政策