2015年,他發起阿里Weex項目,實現「一次編寫,三端運行」。他被稱爲「Weex之父」。前端
2016年,阿里宣佈開源Weex項目,年末將其捐贈Apache基金會。2017年,他在微博宣佈退出Weex團隊。程序員
外界對Weex的討論也好,爭議也罷,他淡出了大衆的視線。 面試
下一次外界聽到他的消息,是在2017年末,卻徹底與技術無關。原來,他和幾個同事一塊兒,組成了阿里996樂隊。你們才發現,原來程序員們不只會寫代碼,寫歌也蠻好聽。瀏覽器
他和Weex的故事是怎樣的?他是怎樣的一我的?今天,圖靈訪談帶你走近勾三股四,一位自稱「有點叛逆」的前端工程師。前端框架
文 | 李冰
採訪 | 樂馨,李冰
勾股2007年大學畢業。他大二學完基礎課程以後,就轉到了本身很着迷的軟件工程專業。畢業後,他去傲遊瀏覽器面試,筆試以後現場對方只問了三個問題:「HTML熟不熟?JavaScript熟不熟?CSS熟不熟?」他不怵,說了三個「熟」。面試官居然沒多問,直接給了他offer。前端工程師
那是中國互聯網風起雲涌的時代。當時瀏覽器纔剛興起,你們用得最多的仍是Office、QQ這種桌面傳統軟件。他們經歷了所謂的瀏覽器大戰。框架
傲遊作了大量革命性的創新,不只推出免費版,支持多語言,用單窗口多標籤代替了多窗口,推出廣告過濾功能,並且它首創了現在瀏覽器必備的在線收藏系統。2007年,傲遊霸佔了很是高的市場份額,市場佔有率僅次於IE瀏覽器。less
勾股說:「在一個蓬勃發展的創業公司,天天都給你不少成就感。並且我的也在隨着公司一塊兒發展,不只是技術,而是可以真正感覺到整個行業的方方面面。」優化
然而,隨着移動端崛起,PC瀏覽器市場開始呈現疲態。2010年,傲遊的用戶大量流失。2012年,它在中國大陸的市場佔有率已經不足1%。網站
勾股坦言:「咱們在PC端有很是狂熱的忠實用戶的支持,收入也比較穩定。公司其實也看到了移動互聯網的趨勢,但可能沒有抓住這個機會。」
與此同時,2013年,阿里的戰略是「All-in 無線」。
一方面,勾股看到移動互聯網的發展,很想參與和探索;另外,不少他認爲很厲害或者關係很好的朋友在阿里,淘寶的居多。因而,在winter的推薦下,他加入了阿里。「winter打電話給我,說:‘有一個好消息,有一個壞消息。好消息是咱們發offer給你。壞消息就是咱們要996。’
「我當時的第一反應固然是比較興奮啊!反正我剛去那邊,也須要花比別人更多的時間熟悉工做。既然這樣的話,就有更多的人晚上陪我了。當時我是這麼想的。」
那段時間他印象深入的就是每一個人都很拼。
「從最上邊到最一線的員工,每一個人都是在玩命。可能一方面是工做壓力,另一方面,我看到不少人談到移動技術的發展這些東西時,真的是兩眼放光,有講不完的話想跟你分享。確實是有那股熱情在。」
2016年,手機淘寶和淘寶的合併標誌着一個時代——移動端的崛起。手淘的創業之路算是告一段落,不管從技術仍是從業務,都和淘寶網的PC業務作了更深度的整合。
2013年,阿里「All in 無線」戰略如火如荼地推動,大量資源向無線業務傾斜。當時,勾股所在團隊負責手機淘寶的前端業務,在快速向前的同時,他們面前也擺着大量的問題。
其中,iOS、安卓,還有Web,這三端的業務,可不能夠只用一套代碼解決?
iOS和安卓的發佈節奏有限制,好比iOS每個月發一版。但淘寶天天都要作新促銷活動或者上新功能。有些東西這個月沒遇上,就只能趕下一個月。因此可不能夠找到一種方式,可以隨時發佈更新?
他們一直在尋找解決方案。
2015年初,React Native正式開源發佈了。其實,自從2014年末的一個技術會議對它有所介紹以後,你們就一直很期待,由於它看上去可以解決這兩個問題。
但在嘗試以後,兩大困難讓他們沒法忽視。
第一個困難是當時React Native的版本還很早,迭代很是快,而且每次都有大幅度的改動,團隊跟不上這個節奏。
第二個就是,很難在它上面加本身的東西。這個技術方案的定位並不是解決他們面臨的動態性問題,致使不少細節用起來比較牽強。
歸根到底,他們仍是繞不開面前的難題,外來的解決方案彷佛並不合適。
乾脆仍是靠本身吧!
2015年夏天,勾股發起了Weex項目,一顆探路石,一個靈活的解決方案。
「可能我在這個過程中扮演的角色,是在一個特定的階段,我同時看到不少信息和知識,其餘人未必同時看獲得。而後我有機會想到把它們組合在一塊兒。
「第一個東西是在阿里內部的項目,它能夠接受一段JSON的數據,而後渲染成Native的界面。這個工程我2013年加入阿里的時候就已經在作了,爲Weex提供了技術積累。
「另外,第二個東西是Vue.js,當時知道它的人並很少。我發現它能很好地優化前端開發體驗,以及處理前端框架中間JavaScript的這部分。2015年夏天深圳的JSConf上,恰好尤雨溪也一同參會,咱們當面聊了幾句,交流了這個項目。他當時給了我不少鼓勵,也跟我分享了他對一些技術細節的見解。
「第三個固然就是Web standard,包括W3C,以及其餘Web規範。首先,它能夠解決不少通用的一些技術問題。並且,它的一些規範和API的設計是由不少厲害的科技公司沉澱下來的結論,很是經得起考驗。」
三大武器雖已備齊,現實遇到的困難卻比預估的更復雜。
「最大的困難,坦白講就是三端不一致。
「不光是從技術角度,就是API的設計不同。更困難的在於,由於你們的技術棧不同,整個思考問題的方式,甚至工做習慣都不同。因此,要讓整個團隊在一塊兒工做,作出一個讓你們可以信服的技術方案,這是真正具備挑戰的地方。」
這個難題,他們寫出了怎樣的答案呢?
2015年的雙十一Weex首秀,歷史上第一次把Native級別的體驗和穩定性帶到了天貓雙十一的移動會場。
如此驚喜的效果不只讓Weex團隊感到興奮,也得到了技術團隊負責人的承認,給了Weex項目更多的支持和信任。
2016年雙十一,Weex覆蓋了99.6%的會場頁面,頁面的打開速度、滾動的流暢性都保證了良好的用戶體驗。
目前爲止,一切都很順利。
2016年初,阿里決定將Weex開源,年末宣佈將Weex項目捐贈給Apache基金會,而且宣佈了與Vue.js的官方合做。然而,這卻使Weex引來了巨大的爭議,外界對項目後續維護問題產生了質疑。
2017年初,項目發起人勾股發表了一份聲明:再也不是Weex團隊的一員,離開淘寶,新的工做內容已與Weex無關。
事情的發展讓外界迷惑不已。
Weex項目以及手機淘寶內部,經歷了怎樣的變更?
起初,在移動端崛起的背景下,每一個團隊都在摸索前進。移動端的開發形態和模式應該是怎樣的?Native工程師有本身的想法,前端工程師也有本身的想法。直到Weex出現,愈來愈多的業務團隊的技術棧逐漸地穩定下來。
這種變化,從技術角度來講,你們作事更有層次感了。有些人會維護Weex開源項目的核心的框架,有人作一些Weex插件或者擴展,還有一些人會專一在最上層的業務開發。你們的分工和團隊協做方式變得更加清晰。
另外一方面,人員結構也在逐漸地發生變化。有人適應,有人不適應,有人來有人走。每一個人都在變化的進程裏,包括勾股。
他說,一面的確有被動的因素存在,另外一方面本身在想,不如主動地去擁抱變化。
而今時隔兩年,他坦然分享了本身對這個問題的思考:Weex項目的意義是什麼?
「Weex項目是阿里巴巴第一個願意以官方的身份,而且主動地去擁抱開源社區的。
「其實阿里在Weex以前也開源了不少東西,都是以我的名義開源。當時在阿里內部,你想開源一個東西,流程很簡單,就是你本身作一個申請。公司只會作一件事情,就是看有沒有泄露公司的內部信息。公司不是在主動地面對這個問題。名義上是阿里的,但其實就是我的的。
「其實咱們也討論過這個問題,但擔憂將它開源會給公司惹麻煩。
「後來,這個觀念在逐漸轉變。咱們也在思索,可否經過開源的這個行爲,爭取到更多開源社區的認同?甚至能不能招聘到更好的人?或者說能不可以經營一個更好的開源社區生態?
「我很欣慰由於Weex項目讓阿里敢於作這個嘗試,主動地開源。並且阿里內部還重組了一個開源委員會,專門來思考這個問題。
「在這個背景下,我很早就清楚,這個項目是我發起的,但它不是我的的。若是想借助開源項目達到一些我的訴求,在Weex這個項目面前其實顯得有點自私了,由於更多的是要爲公司考慮。並且我以爲這是一個很好的開始,將來更多的開源項目作下去,是須要站在公司的角度去思考的。這是一件共贏的事情。」
面對Weex受到的質疑,他說:「Weex的開源,也是它意義的一部分。你們都須要一個過程去適應和感覺,去了解開源文化以及一個國際化的技術交流社區,而後嘗試去解決問題。」
即便退出了Weex團隊,他也一直在思考它的命題。「我以爲這個問題尚未結束,就是移動端的所謂UI技術或者是渲染技術,它未來會走向哪裏?
「其實相關的技術,我一直在關注或者在思考。恰好上個月,Swift UI也發佈了,它是iOS技術棧裏UI開發的一個新技術;包括去年的Flutter,我在Weex團隊的時候就知道這個項目,它當時剛開始,那應該是兩年前了。
「我以爲這些相似的技術必定是更靈活的。更靈活的意思是說,你能夠更加快速,更加直接有效地去完成你的開發,完成你的發佈,而後讓用戶看到。這個很理想。
「還有,它是對開發體驗更友好的。不管是Flutter仍是Swift UI,或者像React Native,Weex,都是在嘗試作一件事情,就是你代碼寫完,能馬上在開發環境下看到渲染結果,或者看到一些友好的錯誤提示,調試信息,等等。固然另一方面,不少東西也在逐漸地標準化和規範化,會進一步下降整個技術方案實施的門檻和你們接受的門檻。」
到如今,勾股在前端已經有12年了。
從傲遊開始,他見證了整個HTML5技術從無到有的過程。「如今咱們可能也不叫HTML5了。就叫前端或者Web。最先的Web前端只用來作一些簡單的頁面,到今天能夠作複雜的應用。」
他剛加入淘寶時,前端是在UED團隊的,也就是設計團隊。過了一段時間,團隊結構變成了「UED團隊、前端團隊、技術團隊」。直到如今,他們已經徹底歸屬於技術團隊。顯然,前端的技術含量在不斷地積累和提升。
勾股說,前端發展得很是快。「我舉兩個例子。一是今天愈來愈多前端框架嘗試着在編譯器上,以及從DSL,即所謂的語言層面去作文章了,甚至創造一種新的語言,這在早幾年是不敢想的。也許未來有一天你想作前端,你就要懂編譯原理。這個一點也不誇張。
「另外一個例子是 WebAssembly,就是讓更多語言和更多技術參與到Web 這個生態當中。之前只是寫 JavaScript,未來有一天 Rust、Go、C++ 等,甚至整個軟件行業的積累都會進來,因此這是一個很開闊的空間。
「前端領域將來的可能很是多。渲染技術,好比3D渲染,包括AR,VR場景;還有好比工程化,這個也不是什麼新話題了;再有就是 Serverless,跟雲計算有更多的契合。固然也包括剛纔提到的更多的語言,更底層的技術棧,就像前端框架如今都深刻到了編譯原理。
「因此最重要的就是打開本身,就是沒有不可能。保持好奇心,不要主動向新的東西 say no。」
他最近一段時間對一個東西比較着迷,叫信息無障礙化,英文是accessibility。
「我也會把它翻譯成可訪問性,聽上去更符合Web語境,意思就是無論你用任何設備,有任何輸入輸出環境(好比鍵盤或者鼠標壞了)的狀況下,都能正常訪問網站。
「它最先的受益羣體多是一些視障用戶,而隨着移動互聯網到來,適用羣體以及場景也變得愈來愈豐富。
「好比說,工程師會高頻地使用電腦,因此習慣用各類快捷鍵,不喜歡把手離開鍵盤。那若是一款軟件只能用鼠標操做,是否是就忽視了這個用戶羣體?再好比,一我的在開車,只能經過語音使用軟件。而另外一我的在開會,沒辦法講話。那他們倆能不能正常地交流?
「因此accessibility是在探索這些,它甚至可讓咱們更語義化地去理解今天的Web是什麼樣的東西。」
2016年9月,尤雨溪加入了Weex。同時,勾股也是Vue.js的核心開發成員,他很早就與Vue.js結緣了。
「2013年末,咱們團隊當時在討論移動端的前端的框架,嘗試着作本身的東西。就在那個過程當中我發現了Vue.js,它從裏到外都符合咱們的指望,包括技術實現和API設計的想法,因此我就有種自然的親切感。
「每一個人都想作屬於本身的東西,這個聽上去很酷,但你若是有機會跟別人合做,作一個1+1>2的東西呢?不少人可能沒有看到第二種可能性,而這就是我與Vue.js的開始。
「由於最先的代碼都是小右本身寫的,完成度很是高,我很難直接參與到代碼中,就從英文文檔翻譯開始。」
由於翻譯須要他分析一字一句,甚至一些詞語的隱喻,不能錯過任何細節。這個過程讓他對Vue.js更瞭解。
「Vue2.0發佈的時候,也是咱們團隊在作Weex的時間點,咱們一塊兒探討了早期的一些想法。
「當時小右在作2.0的時候,是從一個private的倉庫開始作的,但其實那個階段他就已經把我邀請進去了。因此今天看提交記錄你會發現,最先的一兩百個commit都是小右的,中間有幾個是個人,後面纔是整個社區參與進來,就是已經從private到public發佈了。」
勾股說,這段經歷對本身影響很深。他學會如何與國際化的團隊交流,相互碰撞想法。他們會聊技術,也會聊生活中好玩的話題。他深入感覺到了那些不同的文化,與世界的距離在一點點縮短。「它就是一點點在發生,若是說是從哪裏開始的話,應該就是我從參與Vuejs項目開始。」
身處阿里,他也在思索我的應該如何發展。不一樣的是,他有一點叛逆,不想放任周圍的慣性替本身作決定。
「有一個廣泛的技術人員的困惑,是作到必定階段就會有人push你去作管理。
「在當時阿里的環境下,不管是項目管理仍是團隊管理,不多有人不作管理而能夠被你們認同,固然也包括內部晉升。
「在不少場合,你們以爲你工做經歷和能力到必定程度後,就須要作一些管理的工做,或者你須要把經驗傳遞給更多的人。因此我周圍的人幾乎清一色從技術轉向管理,繼續發展。
「我可能有點叛逆。這個行業有更多更難的技術問題等待着優秀的技術人才去解決,爲何要把轉向管理變成一個傳統?我會問本身:我可不能夠只專一在技術上,同樣能夠發展得很好?」
這不是一種簡單的執拗,他有本身理性的分析。「坦白講,我本身也是愈來愈平靜的,或者包容的心態去看待各類事情和想法。
「首先你們都是學技術專業出身的,這個毫無疑問,本身的心裏所屬就是技術自己。管理對你們來說也許是第二專業,或者甚至不那麼專業,沒有那麼有歸屬感,因此你會困惑。但坦白講兩個都是機會,我以爲這個是因人而異的。
「第二就是說,管理更多的是跟人打交道,不一樣的人須要花的代價和精力是不同的。我也看不少社科研究的書,也看一些管理的書(推薦《合做的進化》,《精益企業》等),不少東西到今天尚未定論,因此管理路線是一個不斷往前探索的過程,某種角度這也是管理有意思的地方。
「而技術的世界是小蔥拌豆腐,一清二白。像我這種性格,我但願全部東西都有肯定答案,能夠有方法有路徑,永遠去追求那些東西,內心會有底。」
他說,本身以前也一直不肯定,是Weex項目給了他走技術路線的信心。
「參與Weex的項目,我收到不少的鼓勵,更好的反饋,而後被周圍很是多的人認同。它讓我有信心,一直作技術作下去,能夠探索出不同的工程師發展的可能。」
2017年1月21日,勾股、渚薰和完顏組成了996樂隊,在阿里巴巴西溪園區舉辦第一次新歌發表會。
其實,他們樂隊的成員最先在「All-in無線」的時候就認識了,但樂隊兩三年以後才成立。一是由於以前工做太忙,確實沒有時間。二是也沒有所謂的契機。
直到一次年會,同事子寬本身寫了一首歌,吉他彈唱。歌詞旋律都很簡單,唱的就是一些本身工做的感覺和狀態,使人很是感同身受。
「有些人加班,有人在偷懶,有人今天沒活幹……」「你會寫代碼,你會切頁面,你作出了淘寶網;身材走樣了,眼睛壞掉了,頭髮也快沒有了……」
因而,他們幾個會點樂器的人湊在一塊聊了聊,想給他伴奏,組了個樂隊,名字就叫996。
他們設計了一個簡單的logo。「logo裏面的99像一個引號,表明歌詞。6像一個音符,表明做曲,也就是旋律。」
他們想這樣賦予996一個新的意義,而非那個規定的工做時長,或用所謂「奮鬥」來鼓勵你們綁架本身的生活。
勾股說:「第一個9是早上9點,表明認真工做。第二個9是晚上9點,表明下班以後的我的生活。那個6呢,就是週末能夠玩玩音樂,作點本身喜歡的事情。」
他們但願經過一種輕鬆的方式,傳遞一些想法,一些聲音給技術社區。讓你們知道,若是你在工做當中遇到了一些問題,即使不是純技術問題,也是能夠拿來討論的。雖然技術交流會上不能講,咱們能夠把它寫成歌,以音樂這種輕鬆的方式,唱給別人聽。
前幾年,有人問勾股:「你怎麼能看那麼多東西?」他笑說:「由於比你晚睡幾個小時。」他習慣用更多的努力和時間去換一個更好的答案。
但是,工做生活怎麼平衡呢?這個問題,每一個人的選擇不同。有些人是按小時計算,好比白天幾個小時工做,晚上幾個小時回家陪家人;有些人是按天計算,週一到週五玩命地工做,週六週日陪家人。
勾股說,他是屬於那種按年計算的。
前幾年他真的花不少精力在工做上,忽視了家人。直到兩年前,他的女兒出生。面對這份天賜的禮物,他才忽然開始反思:本身這種透支身體的工做狀態,真的可持續嗎?
他意識到了家人對他的須要,而且開始作出行動上的改變。
今年,女兒兩歲了。他說:「我以爲本身逐漸地找到了一種既能很好地工做,又可以很好地生活的狀態。我主動作了不少變化,可以花更多的時間在家裏,這讓我頗有成就感。」
他說等再過幾年,等寶寶長得比較大了,他可能再把一部分重心逐漸轉回工做當中,作更多事情,追求更多想法,這也何嘗不是一種選擇。
除此以外,他生活中還有一個很是狂熱的業餘愛好,就是足球。
「我不光看球賽,有機會我還會下場去踢球,平時也愛跟同事玩足球遊戲。若是之後不作前端的話,即便沒辦法作球員,也許作個足球教練?
「只要有足球相關的東西在個人眼前,我就永遠不以爲疲倦,這個還蠻神奇。有些興趣愛好,可能一時興起玩一玩,不會堅持好久,可是足球這麼多年就一直沒有離開個人生活。」
也許這就是工程師們或程序員們,就像996樂隊的歌詞所寫,他們拼命工做,在代碼的世界like a hero. 但在工做以外,他們也對生活有着純粹的追求。
--End--
技術的世界沒有退縮的念頭
追尋生活中的小小需求
最好的技術成就最好你我
讓音樂來爲本身加油
——《持續迭代》996樂隊