抽掉 11 行程式就讓網路大崩塌!一場撞名事件,看開源的威力與權力衝突

抽掉 11 行程式就讓網路大崩塌!一場撞名事件,看開源的威力與權力衝突

抽掉 11 行程式就讓網路大崩塌!一場撞名事件,看開源的威力與權力衝突

 

資料來源:http://www.inside.com.tw/2016/04/12/how-one-programmer-broke-the-internet-by-deleting-a-tiny-piece-of-code

 

一位在加州奧克蘭的程式設計師 Azer Koçulu 從 npm 刪掉了 11 行程式碼,在網路世界興起了一陣風波。

 

導火線:撞名事件

整件事始於 Koçulu 在套件管理服務 npm(Node Package Manager) 的模組「Kik」恰巧和一家叫做 Kik 的通訊軟體撞名,根據 Quartz,Koçulu 數週前接到 Bob Stratton 專利事務所的信件,希望他能將 Kik 模組下架。Koçulu 在部落格上聲稱自己斬釘截鐵地拒絕了要求,不過對方卻回覆「我不是故意找麻煩,但 『Kik』是我們註冊的品牌,我們的律師將會去敲你家的大門,並且接管你的帳號。」
在 npm,你可以找到各種 JavaScript 的開源模組,而且廣泛應用在網頁開發上,因為其易用的介面和龐大的免費資源,每月使用次數可以達到數十億。
Koçulu 表示,他製作模組時並不知道有一家公司叫做 Kik,也不想因為一家公司的威脅就改名。不過後來對方聯絡上 npm 客服,而且每封轉寄給他的備份信內都強調他們握有法律資源。最後 npm 在沒有經過他的同意之下,奪走了他對 Kik 模組的所有權。
這導致 Koçulu 決定從 npm 撤下他所有的模組,因為他認為這個事件顯示出在 npm,企業權力仍然比一般人大,而這違反了開源「賦權給群眾」的初衷,Koçulu 也強調這絕非一時衝動,並期許開源社群能在 npm 以外的地方找到出路。

 

開源的精神和企業的利益

Koçulu 加入和離開 npm 都是依據同一個原則,那就是開源的精神。這樣的精神從早期麻省理工發跡的「駭客道德」開始,到了自由軟體基金會創辦人 Richard Stallman 手上,又有了更具體的闡述:
程式設計師之間的友誼是建立在分享程式碼上。
他反對作業系統商業化,並致力開放程式碼讓更多的人使用。這樣的信念也深深影響了包括 Koçulu 在內的程式設計師。
npm 雖然是一家營利組織,不過它同時也經營免費的開源資料庫。他們的使命之一包括要培養 JavaScript 的開源發展,它獲利的方式和 Github 一樣,是另外提供收費、非開源的程式碼。而在這次的事件中,npm 卻採用了 「Kik 模組會讓人誤以為是 Kik 通訊軟體提供的服務,」這樣的說詞,選擇站在企業這邊,讓 Koçulu 大失所望。
開源社群常常批評美國的專利和智慧財產法規,各企業好幾年來不斷發出各種技術專利訴訟,常見例子像是網頁圖片顯示或發送電子報更新的方法等等,讓開發者不勝其擾,認為這是創新突破的絆腳石。

 

問題爆發:消失的 left-pad

因為 Azer Koçulu 將所有模組撤下,導致世界各地的工程師開始莫名其妙收到各種錯誤訊息,其中最常見的,就是這一條:
npm ERR! 404 ‘left-pad’ is not in the npm registry.
這代表跑程式時需要某段程式碼,但它現在卻不見了。這段消失的程式碼叫做「left-pad」,大部分的人連聽都沒聽過,因此在網路上開始出現尋找 left-pad 的求救訊息。出乎意料地,這段程式碼其實很簡單,它的功能就是在一串文字前面加上某些字元,比如開頭自動加 0 或是郵遞區號之類,而且只有短短 11 行。
因為許多龐大的程式都是在前人的程式碼之上,像堆積木一樣層層累積起來的,只要其中一塊突然消失, 就算是簡單的程式碼也會對整個生態造成很大的影響。比如 Facebook 使用的 React 便是廣為使用的套件之一 ,在這次 left-pad 事件中也受到了波及。更諷刺的是,通訊軟體 Kik 的開發工作也因為 left-pad 碰到問題。
事件發生約莫 2 小時後,npm 重新上架了 left-pad,這件事史無前例,npm 的技術長 Laurie Voss 還在 Twitter 上說「一位作者的個人意願和廣大的社群利益產生了衝突,而我們選擇滿足多數人的需求。

 

互相依存的網路,牽一髮動全身

事件告一段落,大家便開始檢討起這看似荒謬的災難:沒沒無聞、短短幾行的 left-pad 程式碼,竟造成網路世界這麼大的動盪。這不只是一起企業與開源社群的爭執,它還反映出大型軟體對小套件依賴過深的隱憂。
有些人怪罪 Kik 用法律威脅開源專案;也有些人認為 npm 不該輕易答應 Kik 的要求,應該有更好的解決方法。更有不少人認為這些重大專案要是親自寫了這 11 行的簡單程式,就不會惹出這麼多麻煩,並對此大做文章,引起一陣惡搞風潮,還有人半開玩笑地建立了 left-pad.io,號稱「為了避免重蹈覆轍,這裡提供所有 left-pad 能做到的功能。」

最後,Kik 的通訊軟體主管 Michael Roberts 在部落格回應道,他相當後悔當初沒有直接和 Koçulu 聯繫,才產生了這麼多誤會,也表示認同開源社群的精神是「彼此幫助」。

 

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *