標籤:

如何評價Node.js的新fork ayo.js?

https://github.com/ayojs/ayo


大海航行靠舵手,Node 基金會的管理層叫做技術舵手委員會(TSC)。Node 社區靠的是行為準則(COC)。

前不久委員會裡的 rvagg 的言行引發了爭論,讓委員會裡的一部分人覺得他違反了COC理應除名。在該不該將其除名的投票中,1票迴避(當事人),2票棄權,4票支持除名,6票反對除名,結果是 rvagg 繼續留在委員會。

然後這4人從 TSC 辭職,轉而創建這個fork,也就是 ayo.js 。

目前 ayo.js 項目里沒有實質性的代碼變更。

所以 ayo 的 fork 跟之前的 io.js 不是一回事,只是單純的源於政治上的爭議。

======

這個問題的關注者不少,一句話也不說是不好的。

我覺得作為用戶,沒必要在意這些爭議,我們用 Node.js 更多是技術上的考慮。觀眾們都散了吧,不如去關注一下 Node 8 又修復了哪些 bug。

======

補充:CTC將在本月底討論是否將 rvagg 除名,以下為 rvagg 的自辯和具體的日程。

Requesting Rod to step down or be removed from the CTC · Issue #165 · nodejs/CTC

https://github.com/nodejs/CTC/issues/171


事情始末見:Requesting Rod to step down or be removed from the CTC · Issue #165 · nodejs/CTC

值得一提的是,rvagg 是負責簽發 node release 的七人之一,代碼提交次數 node.js 排11,nan 排第2。

跟上一回 io.js 的分裂是技術線路之爭 (企業化求穩定 vs. 追逐最新技術) 完全不同,這一回技術上毫無意義。


從今年3月份就開始注意foundation里政治鬥爭最近激烈,沒想到最後發展到如此。上面同學的分析個人比較同意,ayo.js和當年的io.js的情況萬全不同。在我看來深層次的東西還很多,各種人物的背景,複雜的關係,怎麼互相懟的,為什麼有些人支持,有些人反對,而且很多討論的細節現在已經看不到或者刪除,以下是我找到一些內容分享出來。

首先介紹一下名詞和背景

  • Node.js foundation Board:
    • 來自Foundation Member的代表:
      • Member分為, 不同的Member權益有所不同,6個Platinum(IBM, Intel Joyent, Microsoft, Paypal, RedHat) , 2個Gold(NodeSource, GoDaddy),15個Silver
      • 每個Platinum一個board席位
      • 目前沒有Gold代表,有一個Silver的(GroupOn)的代表,奇怪
    • 1個TSC Director
    • 2個人代表,任期2年
  • TSC (Technical Steering Committee): 負責Foundation的日常事務
  • CTC (Core Technical Committee):負責node.js的技術推進
  • 更多背景:
    • 2014年12月,IO.js fork以反對Joyent對Node.js的控制,主要在於Joyent出於商業目的不同意緊跟v8的版本升級
    • 2015年9月,Node.js和io.js合併,並且成立Node.js Foundation

主要人物(知乎不支持表格,只能貼圖了):

次要人物

導火線,3月board身份之爭:

  • 2017年三月份有人發現Board的成員里有2位來自NodeSource,分別是故事的主人公Rod和NodeSource的發起人之一Dan Shawn,並且在board/issues/58里發起了討論。按照規定不能有2個以上供職於一家公司(Platinum除外),提出的方案是要麼該規則,要麼兩個人一個人需要退出。
  • 3/30 Rod回復 Charlie Robbins: I know you"re viewing this as an opportunity to regain the board seat , https://github.com/nodejs/board/issues/58#issuecomment-290255685
  • Ashleygwilliams 回復要修隱去公司,並且有personal attack
  • Rod反抗說為什麼上面討論沒有隱去NodeSource和GoDaddy
  • 事情就此擱置,直到8月底(細節已經找不到了)

8月事件回顧:

  • TSC內部對Rod的指控(目前已經不可見,但是Rod的回復暴露了一些細節):
    • 違反了Moderation,對貢獻者不友好,已經看不到實際證據,據說導致一些人不願意沒感到受到尊重,停止貢獻代碼
    • 沒有聽取另外一位board的意見隱去公司名字,以及潛在的個人攻擊,見3月份board/58moderation/82 (已失效或者private)
    • Rod的一個有關Code of Conduct的tweet, https://twitter.com/rvagg/status/887652116524707841
  • 8/22 TSC公布了是否支持Rod退出TSC的決定的投票(TSC/issues/310),結果結果:60%反對。細節:13個成員,有效票10,2票棄權,Rod本人未投。
  • 8/22當日:
    • Anna Henningsen, Myles Borins( blog) , Jeremiah Senkpiel (TSC/pull/316 )宣布退出TSC,保留CTC
    • Bryan Hughes完全退出Nodejs,後來被勸說把名字挪到了退休名單內
    • Kat Marchán fork了Ayo
    • 喀什討論TSC和CTC合併
  • 8/25 Rod寫長文一一解釋3條指控,https://github.com/nodejs/CTC/issues/165#issuecomment-324798494
  • 8/28 reddit(署名node_in_peace) 上一篇對Ashley Williams違反CoC的指控, TSC表示收到,並關閉了TSC/issues/324
  • 8/29:
    • Isaac Z. Schlueter發了一條comment,對CoC的重要性
    • 署名ghost的用戶在TSC/issues/325 指出Kat Marchán的CoC,TSC表示收到並關閉,有趣的是ghost這個用戶目前顯示Deleted User, 沒有任何活動,但是有485個follower
  • 8月30日,CTC和TSC合併完成,並進行新board的選舉,目前在nonimate階段

個人分析:

  • Rod方面:
    • Rod估計是性格比較strong的人,加上自己貢獻頗多,也曾擔任上街TSC的director,有些小膨脹也在所難免,具體參見各種大神比如Linus Torvalds
    • 幾個退出TSC的人貢獻也很大,估計日常工作里受夠了Rod的強勢,日積月累,終於爆發。以暴露出來的一些case來看,其實都是有爭議性的,比如Bryan Hughes抱怨Rod不同把ioctl的介面完全暴露,這個case上我認為Rod有道理,就是態度有問題。
  • Rod的反對者:
    • 女性佔比頗高,包括Ashley Williams,Anna Henningsen還有Ayo.js的fork的人Kat Marchán。是Rod本身歧視女性,還是強強相遇必有一傷,不得而知
    • Npm.inc 的職員很多,包括Ashley,Kat以及Issac,兩家公司有何故事,不得而知。
  • Rod的支持者:
    • 覺得Rod的聲明都有道理,並且聲討Rod的3點有些證據已經看不到了
    • 關於對Ashley和Kat的指控,很多人發現雙重標準,即一方面指責Rod的3點,另一方面自己也在犯同樣的錯誤,甚至用詞更猛烈。

Ayo.js只是個幌子,大家對Node.js的感情和已經建立的影響力還是要考慮的。這件事情應該還沒結束,Rod態度會不會改善,新的TSC的組成會不會解決之前的各種問題,大家是否能再次戰爭一起,拭目以待。


如今的Nodejs社區熱度已經不是當初iojs分裂出去的時候了!只是fork一下代碼又沒什麼改動!說白了就是自己不服,然後搞點事情,引來關注!作為我們開發者來說,該幹嘛幹嘛


TSC身份是特權,但更是義務。如果TSC成員可以違反COC,而不用承擔責任,這無疑傷害了社區氛圍,引起潛在貢獻者的顧慮。

當然,這個事件不會對node社區有很大影響 — 大多數開發者都不會注意COC。

==

好好奇 @張秋怡 大神投的什麼票?:(


推薦閱讀:

nodejs寫的小工具,如何使用命令行直接執行?而不是先調用js文件,具體情況往下看
js很奇怪的問題,關於加法運算的問題?
如何評價前端應用框架 dva?
如何在 JS 中嵌入 HTML 代碼?

TAG:JavaScript | Nodejs |