在前端領域,國內和國外的的互聯網公司有差距嗎?
中小公司以及非互聯網IT公司的水平就不考慮了,如BAT的前端水平,如果有,和國外的差距在哪兒?
主要差距不是技術水平和項目質量,差距一直都是社區,是參與者對遊戲規則的熟悉和尊重。
整個(前端)開源業界經過多年發展,已經從下至上形成了一套完整成熟的玩法和運行模式(GitHub 的 Fork 為典型)。國外新的好東西一出來,馬上就能吸引到一大批相同志趣且熟悉玩法的人參與,立刻能蓬勃發展。在國內則缺乏這樣的人和環境。
一個很小的例子,Sea.js 的 README 里一直寫著報告問題的推薦方式,幾乎沒有人遵守過。
seajs/seajs · GitHub
缺失對遊戲規則的了解和尊重不只發生在程序員圈子(嗯這一定是體制問題)。
有差距,但是差距不是特別大。個別領域可能已經達到世界領先。
主要的差距是幾個:1. 世界性的社區參與度和影響力(英語能力在其中可能是一個非常大的因素)。2. 對各種標準的參與度和影響力(除了英語能力之外,工程師的習慣也是個問題)。3. 公司本身的low。比如百度前端團隊的實力非常強,我很尊敬百度的前端工程師同學們,但是百度公司本身low爆了。其中1、2兩點這幾年有非常大的進步。
比如Ali在node.js社區已經是不可忽視的中堅力量。又如BAT以及UC、360等公司對webkit/firefox等都有contributors(雖然嚴格說瀏覽器開發本身並不屬於前端範疇,但是有非常重大的關係)。
BAT現在都已經是W3C會員,已經開始參與到Web標準的制定,包括提交一些新的草案。唯一是第3點,雖然BAT都財大氣粗,但是公司的治理水平和技術戰略離世界級的公司還是有比較大的差距,並且短期內看不到趕上的跡象。(最有希望的或許是騰訊,但是騰訊的風格太過低調,騰訊的工程師似乎也都太低調。)
簡言之,工程師的能力和意願與國外總體差距已經很小,但是公司本身差距較大,這也導致公司主導或發起的項目達到世界級的基本沒有。也就是國內頂級公司在拖國內頂級工程師的後腿。
另外,與題主考慮的相反,我認為突破也不是沒有可能出在中小公司。
以上為個人淺見。順便召喚前百度前端現facebook工程師 @Cat Chen前來答題。有差距。因為窮。窮人是沒有資格追求錢以外的東西的。所以。就是差距很大。不服不辯。
光看開源項目的話
幾個大公司
百度有FIS,Echarts等等阿里淘寶有seajs,kissy,Tengine等等騰訊……剛看了下AlloyTeam貌似有個JX,還有alloyImage(這個挺棒的),還記得騰訊的那套UI也是開源了的……對比一下國外的
Google……項目多如牛毛,前端比較相關的,V8引擎,chromium和webkit/blink(貢獻度來說?),angularjs,polymer等等Facebook,React一家……twitter,Bootstrap,爆炸的星星數……bower?微軟,我所知的只有winjs……蘋果,webkit?還有啥?adobe,因為有個人很喜歡的Brackets和snap.svg
社區貢獻度來說除了Google這代碼產出機器以外其他基本都差不多吧?
工程技術水平上……維護的都是億級的項目……水平的差距應該不大吧……
開源項目上看好像確實比起國外的差點,不過這個差不是質量水平上的差距而是流行度的差距。不過也有在國外也吃得很開的比如樓上大牛們的Echarts,同時有些老外的東西想法確實很dio……
另外baidu在國內的前端知識普及和培訓上做了很多,贊一個。(最後PS個我不是百度的……)看到很多人說差距不大,我想說一句:哪來的自信?當然我對比的是國外頂尖的公司如FLAG等。如果你說在全世界包括亞非拉國家的互聯網公司里我們是排名前列的所以我們世界領先,那當我沒說。
在我看來,差距太大了。不是說技術上的或者工程師代碼能力什麼上面的差距,而是說,前端技術發展日新月異,而我們基本處於跟隨的狀態。能夠作為前端發展里程碑的創新,我們基本是零。
什麼是里程碑式的創新呢?
比如 jQuery。
比如顛覆前端開發體驗的 MVVM 框架。Google 發揚光大的。比如 Facebook 的 React。
比如JS模塊載入器、AMD 規範等。比如 node,基於 node 的比如express,koa等框架。npm 上排名前十的庫,沒一個是我們主導的。比如 css 預處理器。所有上述的這些,從技術上說,沒有什麼我們做不出來的。以載入器為例,我們有很牛逼的工程師做出來的載入器可以在性能上超越 requireJS,我們也有基於 AMD 進行局部創新的 CMD。但是,為什麼? 為什麼上面幾乎沒有一個東西是我們首創的?重複造輪子是容易的,但是造一個從來沒有過的輪子,這事我們沒幹過。
往大了說,他們發明了萬維網,發明了HTML,開發了性能卓越的瀏覽器。我們呢?做瀏覽器也是在他們的內核上套個殼。
一個外國人用了幾天時間,折騰出了一個 Javascript。然後我們的人花好幾年的時間去熟悉它,然後可以被稱為語言大師。Google研發了 V8 引擎將它的性能提高好幾倍。而我們要是看過 V8 源代碼都算大神了。
個人認為不光是前端,整個計算機科學技術的領域都是別人發明、主導、制定標準的,我們還處於跟隨的狀態。當然其實能跟上也不錯了,至少比 CPU 製造什麼的強不少。2015年4月15日時的截圖。
一瞬間無法代表太多,只是我們力爭成為世界頂尖技術團隊路上的一個縮印
你不能說技術好了就和人家沒差距,就像中國動畫製作,明明有技術,卻做不出個樣子,這是為什麼?其實想一想,不光在前端領域,各個領域都差距蠻大的,差的不是技術,不是錢
我覺得我們差的只有兩個地方,一個是時間,web前端真正發展也就十年時間,而國內巨頭參與標準制定,也就兩三年的時間,近年已有趕超之勢;一個是用戶,這個不必多說,滿眼都是淚。------小公司想達到國外頂尖團隊的水準尚且容易些,大公司的話也得是小團隊。因為大項目,要賺錢的項目,兼容性考慮太多,權衡的東西太多,會拖慢迭代速度。而且開發水平,國內絕對不弱於國外啊,輪子數量、質量大概差些,做出的產品,完全不差吧。
我覺著最大的差距是牆…
技術來自業務,業務來自公司。技術影響力也一樣。
但在業務受尊重程度、業務規模大小、業務全球化程度中國還沒有一個世界級公司。
看到有些人的比較方式,又忍不住祭出這張圖了。
最主要的差距在於: 兼容IE6
有,而且不小
國外的前端:為了解決某些問題研發新技術,比如,angularjs,reactjs,國內的前端:看到新技術了,然後造輪子造輪子...前端業界比較知名的書籍也都是國外的,國內基本沒什麼拿的出手的
總體來說就是國內的前端比較浮躁,創新能力嚴重不足,業界很多新技術新規範的產出跟國內前端都沒太大關係公司里的不清楚,但是看了很多國外設計和github上的前端,能感受到國內前端和國外前端追求不同,國外前端可以為了自己愛好做出很美的頁面,很有創意的插件,很好玩的html遊戲,但國內的苦逼前端通常喜歡老老實實賺錢養家糊口,跟同事同學吹牛裝b
等什麼時候npm和git不用設proxy就能用的時候再開這個問題,謝謝。
技術上差距不大甚至沒有差距。腦洞以及推廣上嘛……這就叫「發展的速度超過人死掉的速度」。
看到本題某些自大無比的人,特此手機碼字怒鄙視。
【】居然有臉說差距不大?!要臉么? 誰給你的狗膽???
暫且不說Back-End,絕壁秒你全家,想都不用想沒MySQL 沒 Apache 沒 Nginx 你玩什麼????趕緊滾去買授權,給錢知道么??NoSQL 有一個是你自己家的??
2007第一版js dom庫,國內有什麼??? 國外:Prototype. jQuery. Dojo. Mootools YUI.....企業級框架,國內有什麼?!? 國外:Extjs . Flux . jQuery UI . jQuery Mobile
測試框架,國內有什麼? 國外: JSLint . Qunit
哦。瀏覽器,國內有360,百度,獵豹,遨遊,楓葉樹,世界之窗,hao123桔子, 沒有Chromium 你玩什麼? 皮都不知道往哪套呢。
2010 - 2011Backbone,國外MVC框架鼻祖 Backbone.js 問世, 隨後 Ember.js , KnockoutJSCanJS . 國內知道 前端MVC是什麼么?2012
AngularJS 問世之前,國內知道什麼是依賴注入嘛,什麼是單例模式?RequireJS 之前,除了非同步載入,你TM知道什麼是模塊載入器么???? 居然有人天真到說seajs比requirejs好,哥們,先去了解一下AMD規範,CommonJS,測試一下全部載入一次執行和依賴載入的區別,測試性能。以及一次執行會出現什麼問題??????看下CSSconf 和一年一度的Google I/O ?人家分享的都是乾貨,國內什麼XXX技術峰會,說得什麼玩意,整個大會90%時間在說一大堆廢話,核心乾貨一點不講,擦下皮毛,反正老子不會讓你知道我掌握的,就告訴你個皮,麻煩別打腫臉重胖子好么?!
國內一切產品都是為了盈利賺錢,國外呢?人家的學術界和實踐派無論從學術成果還是實際產出都要秒你十條街。
好了,繼續洗腦,繼續神話自己那垃圾的輪子。記得給錢百度推廣自己的輪子。不要停.國內的創新一點不比國外少,少的是創意。或者說國內比較少有人能提出新概念而已。就比如模塊載入器,esl和seajs我覺得都比requirejs好用。avalon比angular好理解很多而且解決了國內的痛點,ie67。再比如echarts這種已經在國外很流行的框架。不過不論是amd還是mvvm for fe這些新的理念都不是國人提出的。
頂級的開發者之間差距很大。(個人觀點,主要外國人太多了……)
差距很大
我們一直在不停的追趕,但離他們還有很長的距離。
目前前端的技術有幾樣是國內搞出來的?
js 引擎?渲染引擎?貌似就只有中文排版規範之類的東西吧?先不說做出來什麼東西,能搞明白國外那套技術標準,在國內就已經是很牛的人了。
每天眼睜睜的看著國外做出一個有一個牛逼的東西,雖然扒開源碼看,花點時間都能看懂,但我們就是沒想到要這樣做。
也就是我們的創新能力太差,整天只會造輪子。當然,一般的工程師是看不懂人家源碼的。
創新也是要技術支撐的,如果知識面太狹窄的話,是很難創新的。
前端是個覆蓋很廣的體系,CSS3、Nodejs、Canvas、WebGL,每個領域都需要深入學習很久才能搗鼓出來點東西。很多前端,拿得工資不少,但只是在自己熟悉的幾個領域有所作為,出了特定的領域就懵逼了。我就見過不少級別不低的工程師還在用同步的思維來寫 Nodejs。
前段時間還看到國外的一句話: 不懂svg的前端工程師,不叫前端工程師,叫前端愛好者。BAT 的同學出來回答一下你們的愛好者佔比有沒有低於80%。
究其原因就是很多程序員根本就不熱愛他們的工作,沒有把他當成是樂趣,學習都是帶著功利性的,所以他們沒有動力去改進手頭上的工具。
目前情況在逐步的轉好,我們也有越來越多的項目進入外國人的視野中了。但想要追趕或者超越,還是要十幾年時間的。推薦閱讀:
※一個程序員如何零基礎自學速寫,培養這方面愛好?
※雲視鏈是什麼?
※男朋友有哪些鮮為人知的使用技巧和功能?
※是搞IT的人特別多,還是只是知乎上IT從業者多?
※目前市面上最高配的TI Nspire CX CAS圖形計算器為什麼自2011年發布後再未被超越過?