core-js 作者入獄 18 個月,2600 萬次周下載的開源項目將如何?

雷鋒網AI源創評論報道,

一位彪悍的俄羅斯程序員,名字叫丹尼斯·普什卡列夫(Denis Pushkarev),平時愛好就是飆摩托車。[1]


【雷鋒網注:俄羅斯程序員、摩托車愛好者,丹尼斯·普什卡列夫】

在一次事故中,他以 60 km/h的速度駕駛,結果撞了兩個行人,一人現場死亡。根據俄羅斯聯邦法律,他被判處有期徒刑 18 個月,剝奪 2 年駕駛權利,另處以罰金 138 萬盧布。[2]


【雷鋒網注:俄羅斯法院駁回了上訴】

丹尼斯認罪,但是請求縮短刑期,從 2019 年 11 月就遞交了上訴,如今上訴被駁回了。

問題是,丹尼斯寫程序也很彪悍,他是 JavaScript 的模塊化標準庫 core-js 的作者,這個庫通過 npm 軟件包管理器下載,每週居然高達 2600 萬次。[3] 甚至連蘋果公司的網絡服務,也用到了這個庫。[4]


【雷鋒網注:core-js有超高的人氣和下載量】

真正的問題來了,如果丹尼斯進班房這麼久,誰來維護這個庫?

一個人的開源

core-js 並沒有公司支持,其實就是丹尼斯寫的一個 JavaScript 標準庫的 Polyfill(插件),有點像裝修用的膩子,把缺損的地方填充抹平。在 Web 開發中,在不支持在 HTML5 的舊版瀏覽器上,實現最新標準。它是最普遍、最流行的給 JavaScript 標準庫打補丁的方式。

丹尼斯寫這個庫花了 5 年業餘時間,還一直在找新的全職工作。他想了各種辦法來籌集資金,以便維護開源項目。結果是籌到了每個月 57 美元的贊助,僅僅比沒有強。

他還想到了廣告的方式,方法就是在 npm 安裝之後出現日誌式的文字廣告。但是並沒有什麼廣告商願意為之付費。

現在,面臨高額的罰金和 18 個月的入獄,問題變得很嚴重。社區用户 nathanjd 問了大家都關心的問題,“如果您在監獄中,那麼誰來維護呢?” [5]

丹尼斯沒有提供答案。有一位項目貢獻者 slowcheetah 聲稱他可以有一些時間來修復關鍵錯誤和重大更新,並且顯示他具備“合作者”的權限。但是並不清楚這能否維持該項目的進展。

開源項目的挑戰

另一個 JavaScript 加密庫 jsrsasign 也遇到過類似的挑戰。自 2018 年 4 月以來,項目就沒有任何活動。但是在 npm 上卻有 350 個項目完全依賴這個庫,項目也受到了微軟、Mozilla 這樣有影響力公司的青睞。[6]

有人指出,JavaScript 社區裏不少項目都有這樣的問題,就是項目的作者是唯一的維護者,特別是這些使用量大的項目,不應該由一個人,而是應該由一個基金會來掌控。


【 雷鋒網(公眾號:雷鋒網)注:圖片來源:Pixabay 所有者:Boskampi 】

然而現實問題擺在這裏,需要有一個解決辦法。GitHub 社區與安全高級產品經理本·巴爾特(Ben Balter)迴應説,如果項目維護者無法響應,GitHub 有一個賬户所有權轉移的流程,比如轉給合作者或者同事。同時鼓勵維護者將項目從個人賬户轉移到組織中,不僅可以獲得高級社區管理功能,還可以添加其他維護人員作為共同所有者。[7]

這些都要取決於項目維護者的選擇。也有的網友提出,項目可以分叉,由另外的人來維護。但是分叉對於 npm 上依賴這個名字的其他軟件包而言,並沒有任何幫助。
最後有網友建議,大家有沒有想過,丹尼斯可以在監獄的圖書館裏,繼續維護這個項目?

引用來源:

[1] 丹尼斯的個人網頁,https://vk.com/xrock

[2] 法院判決,https://kraevoy--alt.sudrf.ru/modules.php?name=sud_delo&srv_num=1&name_op=doc&number=1733512&delo_id=4&new=4&text_number=1

[3] core-js庫,https://www.npmjs.com/package/core-js

[4] https://www.apple.com/legal/internet-services/news/notices-acknowledgements.html

[5] https://github.com/zloirock/core-js/issues/548#issuecomment-494112872

[6] https://github.com/kjur/jsrsasign

[7] https://www.theregister.co.uk/2020/03/26/corejs_maintainer_jailed_code_release/

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知


資料來源:雷鋒網
作者/編輯:張路

如果喜歡我們的文章,請即分享到︰

標籤: core-js