一封寫給 JavaScript 女神的信

Olive8848 8年前發布 | 15K 次閱讀 開源 JavaScript開發 angularjs

親愛的 JavaScript,

我想要與你談談我們的社區里需要解決的一個問題。

我為這個社區里的許多開源項目做出了貢獻(包括 Babel、Flow、Yarn、Lerna,等等)。作為這些流行項目的維護者,我在社區里經歷了溫暖的陽光,也承受了猛烈的暴風雨。

參與社區的最大好處之一是我被邀請去世界上各種各樣的會議演講,旅行到那些我以前從未想過有一天會去到的地方,與世界各地的人們交朋友。正是通過這項開源工作,我收獲了人生中最寶貴的一些友誼。

但恐怕我不得不說,事情并不總是只有陽光的一面。

維護一個有著成千上萬用戶的大項目意味著你將面對許多批評。有時候這種感覺就好像你卷入了政治斗爭。有些批評是無效的,但是大部分批評是有效的。不管怎樣,最杯具的事情是,那些批評者經常以一種非常消極的方式與你溝通。

與一般的批評不同,這種消極性會打擊你。我可以滔滔不絕地介紹在我參與的各種項目里的權衡取舍。我也很樂意重新考慮我們既定的發展方向,如果我判斷錯了,我也非常愿意承認自己的錯誤(盡管有時候認錯很難)。但是,當有人開始嘲笑和侮辱我所付出的努力,當他們以一種極其消極的態度批評我和我的工作,我就會很受打擊。這個后果(對我而言)非常可怕。

讓我舉一個例子:

當我們發布 Babel 6 時,對 API 做了改變,我們為了這個改變已經計劃了一段時間,一步步從小范圍測試直到最終對所有人開放。

在發布 Babel 6 之前,我們認為這一改變將毫無爭議。我們提前幾個月傳達了我們的意圖,并詢問了社區的意見。

但是當我們將這一改變發布出去時,沒過多久,出現了各種攻擊的文章,說 “Babel 6 對軟件設計而言是個反面教材” 或 “Babel 團隊破壞了 Web 平臺”。有人還在網上提到我,說我是個白癡。一大波關于“JavaScript 疲勞”的文章開始出現。

這種感覺就像是每天我都收到一封未讀的投訴,控訴我們干了一件多么罪惡的事情。

為什么我們還要繼續做下去?我的洪荒之力都被這些噴子給耗完了。我再也不想碰 Babel 了。本來維護 Babel 是我人生中最有趣的一段經歷,現在卻讓我每天都覺得可怕。

“怒火已經無法承受。每一天都有人不斷抱怨我們所做的工作有多遭。這太打擊積極性了,我幾乎停止了讀 issues 和 pull requests”

開源項目維護者的懈怠對于任何開發者社區來說都是一個很嚴重的問題。如果一個社區希望每隔幾年都有技術革新,那么他們需要幫助我們(開源項目維護者)對付這些問題。因為如果放任不理,這樣的批評最終傷害的是整個社區。

我們的工具有一系列問題,與其攻擊那些能幫我們解決大部分問題的人,何不站在他們那一邊試著幫助他們?這并不需要人們付出太多,但很多人仍然選擇做鍵盤俠。

首先,這樣的文章,僅標題就是對維護者的攻擊。當然,作者想要的是維護者能解決一系列問題。但以這樣的標題寫文章,又怎么指望維護者會去點擊它,更別說去解決文章里的問題。

這篇文章接著又提出了他們使用 Angular 2 的一堆問題。整篇文章用標題黨的形式吸引眼球并充滿著對 Angular 2 憤怒的咆哮,而對于他們面臨的實際問題卻幾乎沒有解釋。

一些人還在知乎(啊呸,應該是 /r/javascript/ )上釣魚,粉飾作者的行為并重復作者的原話。

讀到這樣的文章和它所引發的提問令人非常失望。

這種內容沒有任何意義。完全沒有積極結果。它只是噴子們成群結伙地攻擊,噴完這一家去噴下一家。

Angular 團隊有許多大牛,他們有聰明的頭腦,在社區里也有豐富的經驗。因此我想他們能夠很好地處理這些問題。

但不是所有人都能承受傷害并繼續前行。噴子們留下了腳印,踩傷了維護者,尤其是新手。

這不是說我們不要批評我們的工具,或者我們不應該開源我們的工具。我沒有寫信批評 Angular 2 是因為我是它的粉絲。我現在不再繼續做 UI 方面的工作,但是,即使我曾經做這方面的工作時,我也沒有完全認同 Angular 2。

在過去的幾周里實際上我一直在使用它。我嘗試著學習它,因為我認為學習他人根據實際經驗做出的技術決策是有價值的。

我曾經做過許多 UI 相關的工作,因此根據我自己的經驗,我有一些觀點,我將與你分享其中的一部分:

  1. Angular 2 有許多激動人心的部分。它構建在許多創新想法之上,其中的不少思想在社區中還未廣為人知。這使得它的學習曲線變得陡峭。

  2. 模板(Templates)引入了許多緊湊語法(compact syntax),看起來不那么一目了然。這乍看有點像天書,即使它其實是很有邏輯的。有時,它似乎比它實際上(的行為)隱含著更多的意義。

  3. 文檔看起來像是一下子把你丟進漩渦中心,并嘗試讓你自己快速游出來。有許多你需要學習的點,而當你一下子接觸那么多內容時,你會有點力不從心。例子在某種程度上也有點混亂(與 #1 相關)。

  4. 文檔里還有許多新概念,它們毫無理由地突然出現,并在讀者理解之前灌輸到他們的腦海里。對讀者來說,在沒有弄明白為什么這是一個好點子的時候,就要為這個點子埋單,著實有點為難。(也與 #1 相關)

我還可以繼續說很多,但我有一個底線:我不發牢騷,我不侮辱人,我不無謂抱怨,我會給出反饋。

所有這些點(可能除了 #1,我列出它以呼應后面的觀點)對于團隊來說都是能夠關注和具體可操作的任務。我將這些點提供給團隊,是站在一個友好用戶的角度,出發點是希望它得到改進。

這也不是什么難以做到的事。我專注于我面臨的問題,并嘗試從根源上解決它們。實際上,我最希望 Angular 2 的文檔能夠先得到改進,因為其他的東西都可以暫時容忍,而我認為文檔于對用戶體驗的影響最大。

我希望你們能像我這樣以直接的方式溝通,而不是僅僅表達憤怒。

做一個程序員有時候真令人沮喪,所有的一切可能都在和你作對。人們常有非常不同的方法來對付這些沮喪,不管是在他們開發的軟件還是他們經歷的社交中。

我理解批評,因為人們會遇到麻煩和感到沮喪。我理解批評,因為并不是每個人都能成為開源團隊的一員,參與所有重大決策,而這可能會導致怒火(決策與自己期望的不一致)。我理解批評,因為人們用這些項目工作,這些工具對他們而言非常重要。

我不能理解的是,有人攻擊那些本來可以幫助他們解決問題的人。我也不能理解,噴子們發泄自己的憤怒,而不是嘗試用更積極的方式解決問題。

我不得不承認,我也曾多次犯過這樣的錯。憤怒和沮喪是很強大的力量。當你需要發泄這些情緒的時候,溝通很難進行。事后我總是感到后悔,而很多時候我得強迫自己道歉。

當試圖表達一個觀點時,發怒很容易。用過激的方式溝通,還認為自己是在幫助別人。你覺得你自己“愛之深,責之切”。

但我們作為社區的一分子,應該要控制憤怒。

要解決問題,不需要寫一篇充滿憤怒的文章或者在 推ter 上噴項目維護者。然而社區中的每一個人都要為縱容某些噴子行徑負責。

每一次我們支持、收藏、喜歡或者贊成某人的消極態度時,我們就使得他們的憤怒被放大。每一次我們評論和重復作者所說的內容時,我們就成為打擊那些只是想讓事情變得更好的人的幫兇。如果一篇發泄憤怒的文章有 1000 支持者和 600 個評論,就很讓人心寒。

甚至那些有著冷靜頭腦的人,那些本來有積極態度和善意的人,他們也默默接受社區中的這種行為而不是將它拒之門外。

那些鼓勵這種行為的子社區,項目維護者不愿意參與。因為沒有人愿意成為社區里的噴子們發泄怒火的下一個目標。

而一旦這種事情不斷發生,每次持續幾周或幾個月,它將導致那些最可能修復根本問題的人退出。這對于社區來說是最糟糕的一件事。維護者退出宣判了項目的死亡。

Babel 活過來了,但是它用了幾乎一年時間組建一個新的團隊來繼續支持它。在 Henry Zhu 和 Logan Smyth 這些人的努力下,這個項目才慢慢緩過勁來。

我這一年最大的貢獻只是玩笑般地添加了 Guy Fieri ascii art 到項目中。此舉也被那些曾經發話說“這件事情之后,我們怎么能信任這個團隊呢?”的某些人批評為“極不專業” —— 好吧……看來我真得讓賢了。

有許多這樣的“子社區”,在 /r/javascript/ 和 Hacker News 這樣的地方,常常是負能量大于正能量。

我之前提到的,在最近幾年中我有機會見到許多在這個社區里的開源項目維護者。我見過的維護者沒有上千也有好幾百。你可能很難找出一個有幾千 stars 的 GitHub 項目而我沒見過至少其中一位維護者。

我和這群人有許多交流。多年以來我收到了許多建議。

我總是收到建議說要避免上一些“子社區”,比如 /r/javascript/ 和 Hacker News。維護者們說那上面充滿了噴子,那些人從不理解討論的內容,只是隨意噴任何事和任何人,把好好的社區鬧得烏煙瘴氣。

我最經常聽到的是:“別讓他們噴到你,和他們撕逼不值得”。

這些社區把那些真正能幫助他們的人趕走了。那些離開的人是唯一有能力解決這些令人沮喪的問題的人。造成這一結果,都是因為人們不能很好地控制他們的怒火,不能成為一個彬彬有禮的人。

噴子行為需要制止。我們需要停止鼓勵憤怒。不僅是為了維護者,我們也是為了自己。否則我們將自食苦果。

我們需要辨識出那些實際解決問題的帖子,那些對社區有積極影響的帖子。我們需要參與能改善產出的討論,反對那些只表達憤怒的噴子。我們不能持續噴問題而對談話內容沒有任何實際幫助。

如果我們聚焦于解決問題、聚焦于幫助他人,聚焦于分享觀點,我們將會一起打造一個更好的社區。我們都是一個更大的社區的組成部分,而我們對社區都會產生影響。我們可以傳播正能量,也可以傳播負能量,這完全取決于我們自身。

這是社區面臨的現實問題。我們要么努力修復它,要么繼續挖坑埋葬自己。

 

 

來自:https://www.h5jun.com/post/a-email-to-miss-javascript.html

 

 本文由用戶 Olive8848 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!