天天看點

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

作者:CSDN
“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

整理 | 屠敏

出品 | CSDN(ID:CSDNnews)

高薪,讓大廠成為一個外界無數從業者憧憬與向往的地方。據 levels.fyi 最新的薪酬報告顯示,Meta 的首席工程師薪酬最高,總薪酬中位數高達 978,000 美元。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

然而,這座圍城,城外的人想進去,城裡的人想出來。

7 月 20 日,Meta 工程師、React 項目核心人員、Redux 原作者 Dan Abramov 在 Twitter 上連發 15 條推文,以“我感到苦樂參半,幾周後我就要辭去 Meta 的工作了”為開場白,官宣了自己即将從這座圍城中離開的消息。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

15 條推文中蘊藏着些許的無奈,也讓人擔心 React 這個前端主流架構的未來動向。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!
“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

苦樂參半的七年開發曆程

今年正值 React 十周年,其在 Web 前端開發中占據主導地位。據 JavaScript 現狀調查顯示,React 使用率自 2016 年以來穩步攀升,目前穩居第一,使用率已經超過 80%。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

今年也是 Dan Abramov 在 Meta 工作的第 7 個年頭,一直以來,他作為 React 的官方發言人,長期活躍在開發的一線,也被衆多開發者親切地稱之為“Dan 神”。

如今突然宣布将要從 Meta 離職,其實并不是 Dan Abramov 剛萌生起來的想法,而是幾經心理鬥争做下的決定。

Dan Abramov 表示,「在過去的三年裡,我一直說我會在“一年左右”的時間離開,但感覺總是沒有合适的時機」。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

因為他想要在自己放手 React 之前,完成一些事情,包括:

(1) 完成 React 新文檔建設 ;

(2)遵循 React 團隊的“全棧架構願景”, 能夠看到廣泛可用的 Suspense 資料擷取內建傳遞。

“我對是否要早點離開感到猶豫,因為不久前,離開 Meta 就意味着離開 React 團隊。那對我來說太悲傷了”,Dan Abramov 說道。

不過,如今情形不太一樣了,Dan Abramov 也算是功成身退。

  • 一方面,經過團隊多年的努力,有關 React 的新文檔網站(https://react.dev/)已上線。
  • 另一方面,在今年 3 月釋出的 React 18 中,也已經全面支援通過 Suspense 擷取資料(https://react.dev/reference/react/Suspense),現在任何開發者可以開始使用 Suspense 在 Relay、Next.js、Hydrogen 或 Remix 等架構中擷取資料。

與此同時,Dan Abramov 也表示,如今的 React 已經成為一個多公司項目,團隊中也有幾位獨立工程師可以挑大梁了。

接下來,Dan Abramov 将作為獨立工程師留在 React 團隊,這也意味着他不會得到任何公司的全職贊助,繼續參與團隊的工作與相關會議。

對于未來,Dan Abramov 也有些迷茫,因為他也還不清楚其未來參與 React 團隊開發的确切性質。

其回憶道,「七年前,當我開始加入 React 團隊時,我主要負責編寫代碼。然而,我的隊友在這方面經常比我出色,随着時間的推移,我發現自己傾向于做其他事情」,比如說面向開發者解釋一些事情。

基于此,Dan Abramov 在 http://overreacted.io 上練習寫作,後來受到 @rachelnabors 的啟發,其參與一起寫 React 官方開發網站:http://react.dev 。

不過,Dan Abramov 表示雖然自己全身心地投入到這個項目中,但現在有點力不從心了。他坦言:

我發現現在很難寫作了,因為我無法再達到自己頭腦中的标準。這可能會随着時間的推移而消失,但我需要從文字寫作中休息一下。

有時人們會認為我為 React 寫了很多代碼,但其實我已經很久沒有這麼做了。除了合作編寫新文檔,我在過去幾年中的其他貢獻主要是社群粘合劑工作:成為社群和團隊之間的橋梁。

雖然我很喜歡這類工作,但單靠我一個人的力量是難以為繼的,這也給我帶來了情緒上的影響。在某些時候,作為一個單點故障點就不再有趣了,我覺得我既辜負了團隊,也辜負了社群。

同時,有些遺憾的是,Dan Abramo 表示,「目前,隻有兩家公司資助員工全職從事 React 工作,但我們希望将來能有來自其他公司的貢獻者加入。」

其實對于 Dan Abramov,不少開發者從其分享的開發文檔中獲益,有開發者表示,作為 Redux 的原作者與 React 社群核心主力,他一直很接“地氣”,無論是分享技術文章,還是回答社群的問題,都能夠深入淺出地分享。

除了 Dan Abramov 為 React 帶來的貢獻引人注目,其“逆風翻盤”的成長經曆也讓人敬佩。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

從退學到外包,再到開發 Redux、維護 React 成為 Dan 神

Dan Abramov 在俄羅斯出生和長大。他在 12 歲左右開始接觸程式設計,探索Microsoft PowerPoint 功能。他的第一個程式設計語言是 Visual Basic。

Dan Abramov 真正深入學習 JavaScript 是在十四歲的時候。當時,他的繼父向他提出了一個有趣的任務,需要開發一個資料庫來跟蹤照片拍攝的資訊。這個簡單的任務讓 Dan 陷入了程式設計的世界,他對此産生了濃厚的興趣。

2009 年,Dan 完成了高中學業并開始上大學。

不過,Dan 的數學成績不太好,是以他可以選擇與程式設計有關的選項并不多。從剩下的選項中,Dan 選擇了一所向學生提供 MacBook 的大學。

大學第一年結束,Dan 發現接下來兩年裡,大學課程中不會有太多程式設計内容,但有很多線性代數、實體和其他科目,他對此不太感興趣。

與此同時,他在經曆偷懶、逃課之後,發現當他參加考試時,老師不允許他交卷,除非交錢給這個老師參加他的“補習班”,這讓他對大學的初始印象并不好。

不過,從職業角度來說,也是在這個時候,Dan 找到了人生第一份工作——軟體開發者,可以拿到 $18k/年的工資。

當暑假過去,大二開學時候,他發現通過工作可以拿到工資,這磨滅讓他去學校聽課的最後一點動力。最終,他毅然決然地選擇了退學。

那時,他的大部分工作是在便宜的外包公司裡面修複糟糕的 Bug。由于沒有行業經驗,Dan 過度使用了各種他能用到的新技術。雖然這樣做對于編寫項目而言很糟糕,但是他也完美地完成了不少任務。

那段時間,發生了很多令 Dan 終生難忘的事情,比如為一個 13000 行的函數修複 Bug。那時,為了弄清楚它到底是如何工作的,Dan 隻能将他們列印出來,将列印出的紙鋪在桌上,用鉛筆在上面做注釋。最終發現,那是同一段程式片段在不同的情況下被重複寫了 50 遍。為了探索那個服務在實際産品中如何工作,Dan 添加了無數的輸出日志,然後從無到有的重構了一遍這個程式。終于,它不再那麼容易崩潰了。

一如現在行業中的外包工作,Dan 經過幾個項目下來,感覺備受“折磨”。在堅持了一段時間後,某一天,Dan 在等待公司 HR 上班之後又毅然地選擇了辭職。

在失業且辍學的期間,Dan 不斷地反思自己,最終也發現自己的程式設計技術需要提高。偶然間,他在網上看到一篇從矽谷回來的俄國企業家寫的文章。這個人正在尋找志願者參與他的個人項目,作為回報他會免費教授開發技術。

于是,Dan 選擇加入了這個項目。結果發現這位企業家提供的教學有限,好在 Dan 與其他志願者一起努力學習 Git、Python 基礎知識、Django,以及一些 CSS 和 JavaScript。

在接下來的一段時間裡,Dan 參加了更多的編碼課程。2012 年,Dan 從聖彼得堡搬到了莫斯科,開始在一家網絡郵資解決方案(軟體)公司 Stampsy 工作,拿着$30k/年的工資。

在 Stampsy,Dan 開始開發 iPad 應用程式,并學習如何使用 iOS。他們的應用程式于 2013 年 4 月釋出,得到了蘋果公司的認可。與此同時,他們也開始在 GitHub 上釋出自己的代碼,與開發者社群分享他們的成果。

2014 年,Dan 開始接觸 React。他們決定将原來的 iPad 應用轉換為 Web 應用,這使得 Dan 開始更深入地學習 JavaScript。在同僚的推薦下,他嘗試了React,并從 Backbone 轉換了第一個元件——一個"贊"按鈕。随後的一年裡,他們将整個 UI 都轉換成了 React,并釋出了許多新功能。

鑒于當時 React 周圍的生态系統還很小,Dan 希望為 React 做出自己的貢獻,并聯系了當時的 React 核心團隊成員 Paul O'shannessy,詢問是否有任何他可以處理的拉取請求。

與此同時,Dan 也開始就 React 技術在各地進行分享演講,首先是在 Stampsy 的同僚面前,然後在 BerlinJS 聚會上。2014 年,Dan 還收到了 Facebook招 聘人員的第一封電子郵件,但由于他沒有足夠的工作經驗,并且之前退學了沒有文憑,是以招他到美國進 Facebook 并不容易。

不過,他并沒有放棄對 React 的學習與投入。後來,在受邀參加 ReactConf 時,Dan 想帶來關于熱加載功能的主題演講,同時,他也在分享中加一些噱頭——“時間旅行”。

不過,随着演講日期即将到來,Dan 仍然不知道到底如何實作“時間旅行”。他知道 Elm 語言有類似的功能,但他也擔心自己的研究最終會告訴他這個功能在JavaScript 上可能實作不理想。

在那個時間節點上,市面上流行着非常多 Flux 的函數庫。Dan 嘗試其中幾個,Andrew Clark 開發的 Flummox 讓他眼前一亮,他模糊的感覺到與 Flux 結合熱加載能夠讓自己實作時間旅行。Sunil 的 gist 讓他有了一個點子:Flux 範例中用一個 reducer 函數取代原有的 store。

最終,趕在這場示範時間的 deadline 前,Dan 實作了 Redux,這是 Flux 模式的一種變體,但具有更簡化的功能。

在演講結束後,他得到了 Flummox(一個受歡迎的Flux庫)的開發者 Andrew Clark 的支援,最終兩人一同編寫了 Redux。

也是在這次會議上,Dan 結識了一位名叫 Jing Chen 的開發者。後來,Jing Chen 在 Twitter 上問 Dan 是否有興趣在 Facebook 倫敦辦事處工作。

最終在 Jing Chen 推薦下,Dan 通過面試,拿到了 offer,入職了 React Core 團隊,也成為唯一在英國遠端工作的成員。

後來,他搬到了美國。在 2016 年,他開發了 Create React App。

2017 年,他推出了 React 16。

如今在 React 18 釋出的四個月後,Dan 決定離開 Meta ,也離開 React 團隊。

“苦樂參半,我要辭去 Meta 的工作”,React 核心開發者 Dan Abramov 官宣離職!

祝福 Dan Abramov

面向未來,Dan 表示,「不做“計劃”和“目标”,現在正是嘗試新事物、重新找回初學者感覺的好時機。我不知道接下來我要做什麼。可能會做一些 YouTube,一些咨詢。我确實有點渴望編寫一些産品代碼來應對大公司之外的快速疊代周期。也許我會結合所有這些。我也有點想什麼都不做。」

不過,從 Web 架構的角度來看,Meta 允許他們開源項目最著名的推動者之一 Dan 離開,也有人将其解讀為,Meta 在為其開源産品融資方面不那麼熱情了。

如今,在 React 成熟發展之際,Dan 離開,而另一邊,Google 仍然在繼續維護 Angular 架構的創新、尤雨溪也在發力 Vue,這也為未來前端架構的新格局帶來一些不定性。

不過,我們以及更多的網友還是選擇祝福 Dan 未來會更好:

  • 祝福他。新的 React 文檔真是天賜良機。我真希望我一開始就有一個好的起點,而不是原始文檔和社群網絡功能版本的混雜體。
  • 如果你檢視送出曆史記錄,他已經有一段時間沒有參與到 React 的工作中了,這對 React 來說應該不會有太大影響。

    這并不是貶低他的重要性,隻是因為他擔任 React 的代言人有一段時間了,是以有人會認為 React 可能會放緩或發生一些負面的事情。

    我祝願他好運,我無法想象他一定感受到了怎樣的壓力,我相信這是一個艱難的決定。

參考:

https://www.reddit.com/r/reactjs/comments/154trk7/dan_abramov_announces_retirementleaving_meta/

https://overreacted.io/zh-hans/my-decade-in-review/

https://twitter.com/dan_abramov/status/1682030005214404611

繼續閱讀