core-js作者入獄18個(gè)月:2600萬(wàn)次周下載的開(kāi)源項(xiàng)目何去何從?
一位彪悍的俄羅斯程序員,名字叫丹尼斯·普什卡列夫(DenisPushkarev),平時(shí)愛(ài)好就是飆摩托車(chē)。
俄羅斯程序員、摩托車(chē)愛(ài)好者,丹尼斯·普什卡列夫
在一次事故中,他以60km/h的速度駕駛,結(jié)果撞了兩個(gè)行人,一人現(xiàn)場(chǎng)死亡。
根據(jù)俄羅斯聯(lián)邦法律,他被判處有期徒刑18個(gè)月,剝奪2年駕駛權(quán)利,另處以罰金138萬(wàn)盧布,約合人民幣12.4萬(wàn)元。
俄羅斯法院駁回了上訴
丹尼斯認(rèn)罪,但是請(qǐng)求縮短刑期,從2019年11月就遞交了上訴,如今上訴被駁回了。
問(wèn)題是,丹尼斯寫(xiě)程序也很彪悍,他是JavaScript的模塊化標(biāo)準(zhǔn)庫(kù)core-js的作者,這個(gè)庫(kù)通過(guò)npm軟件包管理器下載,每周居然高達(dá)2600萬(wàn)次,甚至連蘋(píng)果公司的網(wǎng)絡(luò)服務(wù),也用到了這個(gè)庫(kù)。
core-js有超高的人氣和下載量
真正的問(wèn)題來(lái)了,如果丹尼斯進(jìn)班房這么久,誰(shuí)來(lái)維護(hù)這個(gè)庫(kù)?
一個(gè)人的開(kāi)源
core-js并沒(méi)有公司支持,其實(shí)就是丹尼斯寫(xiě)的一個(gè)JavaScript標(biāo)準(zhǔn)庫(kù)的Polyfill(插件),有點(diǎn)像裝修用的膩?zhàn)?,把缺損的地方填充抹平。
在Web開(kāi)發(fā)中,在不支持在HTML5的舊版瀏覽器上,實(shí)現(xiàn)最新標(biāo)準(zhǔn)。它是最普遍、最流行的給JavaScript標(biāo)準(zhǔn)庫(kù)打補(bǔ)丁的方式。
丹尼斯寫(xiě)這個(gè)庫(kù)花了5年業(yè)余時(shí)間,還一直在找新的全職工作。他想了各種辦法來(lái)籌集資金,以便維護(hù)開(kāi)源項(xiàng)目,結(jié)果是籌到了每個(gè)月57美元的贊助,僅僅比沒(méi)有強(qiáng)。
他還想到了廣告的方式,方法就是在npm安裝之后出現(xiàn)日志式的文字廣告,但是并沒(méi)有什么廣告商愿意為之付費(fèi)。
現(xiàn)在,面臨高額的罰金和18個(gè)月的入獄,問(wèn)題變得很?chē)?yán)重。社區(qū)用戶nathanjd問(wèn)了大家都關(guān)心的問(wèn)題:“如果您在監(jiān)獄中,那么誰(shuí)來(lái)維護(hù)呢?”
丹尼斯沒(méi)有提供答案。有一位項(xiàng)目貢獻(xiàn)者slowcheetah聲稱他可以有一些時(shí)間來(lái)修復(fù)關(guān)鍵錯(cuò)誤和重大更新,并且顯示他具備“合作者”的權(quán)限,但是并不清楚這能否維持該項(xiàng)目的進(jìn)展。
開(kāi)源項(xiàng)目的挑戰(zhàn)
另一個(gè)JavaScript加密庫(kù)jsrsasign也遇到過(guò)類(lèi)似的挑戰(zhàn)。
自2018年4月以來(lái),項(xiàng)目就沒(méi)有任何活動(dòng)。但是在npm上卻有350個(gè)項(xiàng)目完全依賴這個(gè)庫(kù),項(xiàng)目也受到了微軟、Mozilla這樣有影響力公司的青睞。
有人指出,JavaScript社區(qū)里不少項(xiàng)目都有這樣的問(wèn)題,就是項(xiàng)目的作者是唯一的維護(hù)者,特別是這些使用量大的項(xiàng)目,不應(yīng)該由一個(gè)人,而是應(yīng)該由一個(gè)基金會(huì)來(lái)掌控。
然而現(xiàn)實(shí)問(wèn)題擺在這里,需要有一個(gè)解決辦法。
GitHub社區(qū)與安全高級(jí)產(chǎn)品經(jīng)理本·巴爾特(BenBalter)回應(yīng)說(shuō),如果項(xiàng)目維護(hù)者無(wú)法響應(yīng),GitHub有一個(gè)賬戶所有權(quán)轉(zhuǎn)移的流程,比如轉(zhuǎn)給合作者或者同事。同時(shí)鼓勵(lì)維護(hù)者將項(xiàng)目從個(gè)人賬戶轉(zhuǎn)移到組織中,不僅可以獲得高級(jí)社區(qū)管理功能,還可以添加其他維護(hù)人員作為共同所有者。
這些都要取決于項(xiàng)目維護(hù)者的選擇。也有的網(wǎng)友提出,項(xiàng)目可以分叉,由另外的人來(lái)維護(hù)。但是分叉對(duì)于npm上依賴這個(gè)名字的其他軟件包而言,并沒(méi)有任何幫助。
最后有網(wǎng)友建議,大家有沒(méi)有想過(guò),丹尼斯可以在監(jiān)獄的圖書(shū)館里,繼續(xù)維護(hù)這個(gè)項(xiàng)目?