主要差距不是技術水平和專案質量,差距一直都是社群,是參與者對遊戲規則的熟悉和尊重。但是差距也顯而易見。
主要的差距是幾個:
1. 世界性的社群參與度和影響力(英語能力在其中可能是一個非常大的因素)。
2. 對各種標準的參與度和影響力(除了英語能力之外,工程師的習慣也是個問題)。
3. 公司本身的low。比如百度前端團隊的實力非常強,我很尊敬百度的前端工程師同學們,但是百度公司本身low爆了。
其中1、2兩點這幾年有非常大的進步。
比如Ali在node.js社群已經是不可忽視的中堅力量。又如BAT以及UC、360等公司對webkit/firefox等都有contributors(雖然嚴格說瀏覽器開發本身並不屬於前端範疇,但是有非常重大的關係)。
BAT現在都已經是W3C會員,已經開始參與到Web標準的制定,包括提交一些新的草案。
唯一是第3點,雖然BAT都財大氣粗,但是公司的治理水平和技術戰略離世界級的公司還是有比較大的差距,並且短期內看不到趕上的跡象。(最有希望的或許是騰訊,但是騰訊的風格太過低調,騰訊的工程師似乎也都太低調。)不是說技術上的或者工程師程式碼能力什麼上面的差距,而是說,前端技術發展日新月異,而我們基本處於跟隨的狀態。能夠作為前端發展里程碑的創新,我們基本是零。
什麼是里程碑式的創新呢?
比如 jQuery。
比如顛覆前端開發體驗的 MVVM 框架。Google 發揚光大的。
比如 Facebook 的 React。
比如JS模組載入器、AMD 規範等。
比如 node,基於 node 的比如express,koa等框架。npm 上排名前十的庫,沒一個是我們主導的。
比如 css 預處理器。
所有上述的這些,從技術上說,沒有什麼我們做不出來的。以載入器為例,我們有很牛逼的工程師做出來的載入器可以在效能上超越 requireJS,我們也有基於 AMD 進行區域性創新的 CMD。但是,為什麼? 為什麼上面幾乎沒有一個東西是我們首創的?重複造輪子是容易的,但是造一個從來沒有過的輪子,這事我們沒幹過。
往大了說,他們發明了全球資訊網,發明了HTML,開發了效能卓越的瀏覽器。我們呢?做瀏覽器也是在他們的核心上套個殼。
一個外華人用了幾天時間,折騰出了一個 Javascript。然後我們的人花好幾年的時間去熟悉它,然後可以被稱為語言大師。Google研發了 V8 引擎將它的效能提高好幾倍。而我們要是看過 V8 原始碼都算大神了。
簡言之,工程師的能力和意願與國外總體差距已經很小,但是公司本身差距較大,這也導致公司主導或發起的專案達到世界級的基本沒有。也就是大陸頂級公司在拖大陸頂級工程師的後腿。
整個(前端)開源業界經過多年發展,已經從下至上形成了一套完整成熟的玩法和執行模式(GitHub 的 Fork 為典型)。國外新的好東西一出來,馬上就能吸引到一大批相同志趣且熟悉玩法的人參與,立刻能蓬勃發展。在大陸則缺乏這樣的人和環境。
一個很小的例子,Sea.js 的 README 裡一直寫著報告問題的推薦方式,幾乎沒有人遵守過。
主要差距不是技術水平和專案質量,差距一直都是社群,是參與者對遊戲規則的熟悉和尊重。但是差距也顯而易見。
主要的差距是幾個:
1. 世界性的社群參與度和影響力(英語能力在其中可能是一個非常大的因素)。
2. 對各種標準的參與度和影響力(除了英語能力之外,工程師的習慣也是個問題)。
3. 公司本身的low。比如百度前端團隊的實力非常強,我很尊敬百度的前端工程師同學們,但是百度公司本身low爆了。
其中1、2兩點這幾年有非常大的進步。
比如Ali在node.js社群已經是不可忽視的中堅力量。又如BAT以及UC、360等公司對webkit/firefox等都有contributors(雖然嚴格說瀏覽器開發本身並不屬於前端範疇,但是有非常重大的關係)。
BAT現在都已經是W3C會員,已經開始參與到Web標準的制定,包括提交一些新的草案。
唯一是第3點,雖然BAT都財大氣粗,但是公司的治理水平和技術戰略離世界級的公司還是有比較大的差距,並且短期內看不到趕上的跡象。(最有希望的或許是騰訊,但是騰訊的風格太過低調,騰訊的工程師似乎也都太低調。)不是說技術上的或者工程師程式碼能力什麼上面的差距,而是說,前端技術發展日新月異,而我們基本處於跟隨的狀態。能夠作為前端發展里程碑的創新,我們基本是零。
什麼是里程碑式的創新呢?
比如 jQuery。
比如顛覆前端開發體驗的 MVVM 框架。Google 發揚光大的。
比如 Facebook 的 React。
比如JS模組載入器、AMD 規範等。
比如 node,基於 node 的比如express,koa等框架。npm 上排名前十的庫,沒一個是我們主導的。
比如 css 預處理器。
所有上述的這些,從技術上說,沒有什麼我們做不出來的。以載入器為例,我們有很牛逼的工程師做出來的載入器可以在效能上超越 requireJS,我們也有基於 AMD 進行區域性創新的 CMD。但是,為什麼? 為什麼上面幾乎沒有一個東西是我們首創的?重複造輪子是容易的,但是造一個從來沒有過的輪子,這事我們沒幹過。
往大了說,他們發明了全球資訊網,發明了HTML,開發了效能卓越的瀏覽器。我們呢?做瀏覽器也是在他們的核心上套個殼。
一個外華人用了幾天時間,折騰出了一個 Javascript。然後我們的人花好幾年的時間去熟悉它,然後可以被稱為語言大師。Google研發了 V8 引擎將它的效能提高好幾倍。而我們要是看過 V8 原始碼都算大神了。
簡言之,工程師的能力和意願與國外總體差距已經很小,但是公司本身差距較大,這也導致公司主導或發起的專案達到世界級的基本沒有。也就是大陸頂級公司在拖大陸頂級工程師的後腿。
整個(前端)開源業界經過多年發展,已經從下至上形成了一套完整成熟的玩法和執行模式(GitHub 的 Fork 為典型)。國外新的好東西一出來,馬上就能吸引到一大批相同志趣且熟悉玩法的人參與,立刻能蓬勃發展。在大陸則缺乏這樣的人和環境。
一個很小的例子,Sea.js 的 README 裡一直寫著報告問題的推薦方式,幾乎沒有人遵守過。