勾三股四:用技术追寻世界的肯定答案

图片描述

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业务作了更深度的整合。

Weex的故事

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%的会场页面,页面的打开速度、滚动的流畅性都保证了良好的用户体验。

Weex的意义

目前为止,一切都很顺利。

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是什么样的东西。」

深度参与Vue.js

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的项目,我收到不少的鼓励,更好的反馈,而后被周围很是多的人认同。它让我有信心,一直作技术作下去,能够探索出不同的工程师发展的可能。」

996的新意义

2017年1月21日,勾股、渚薰和完颜组成了996乐队,在阿里巴巴西溪园区举办第一次新歌发表会。

其实,他们乐队的成员最先在「All-in无线」的时候就认识了,但乐队两三年以后才成立。一是由于以前工做太忙,确实没有时间。二是也没有所谓的契机。

直到一次年会,同事子宽本身写了一首歌,吉他弹唱。歌词旋律都很简单,唱的就是一些本身工做的感觉和状态,使人很是感同身受。

「有些人加班,有人在偷懒,有人今天没活干……」「你会写代码,你会切页面,你作出了淘宝网;身材走样了,眼睛坏掉了,头发也快没有了……」

因而,他们几个会点乐器的人凑在一块聊了聊,想给他伴奏,组了个乐队,名字就叫996。

图片描述

他们设计了一个简单的logo。「logo里面的99像一个引号,表明歌词。6像一个音符,表明做曲,也就是旋律。」

他们想这样赋予996一个新的意义,而非那个规定的工做时长,或用所谓「奋斗」来鼓励你们绑架本身的生活。

勾股说:「第一个9是早上9点,表明认真工做。第二个9是晚上9点,表明下班以后的我的生活。那个6呢,就是周末能够玩玩音乐,作点本身喜欢的事情。」

他们但愿经过一种轻松的方式,传递一些想法,一些声音给技术社区。让你们知道,若是你在工做当中遇到了一些问题,即使不是纯技术问题,也是能够拿来讨论的。虽然技术交流会上不能讲,咱们能够把它写成歌,以音乐这种轻松的方式,唱给别人听。

图片描述

前几年,有人问勾股:「你怎么能看那么多东西?」他笑说:「由于比你晚睡几个小时。」他习惯用更多的努力和时间去换一个更好的答案。

但是,工做生活怎么平衡呢?这个问题,每一个人的选择不同。有些人是按小时计算,好比白天几个小时工做,晚上几个小时回家陪家人;有些人是按天计算,周一到周五玩命地工做,周六周日陪家人。

勾股说,他是属于那种按年计算的。

前几年他真的花不少精力在工做上,忽视了家人。直到两年前,他的女儿出生。面对这份天赐的礼物,他才忽然开始反思:本身这种透支身体的工做状态,真的可持续吗?

他意识到了家人对他的须要,而且开始作出行动上的改变。

今年,女儿两岁了。他说:「我以为本身逐渐地找到了一种既能很好地工做,又可以很好地生活的状态。我主动作了不少变化,可以花更多的时间在家里,这让我颇有成就感。」

他说等再过几年,等宝宝长得比较大了,他可能再把一部分重心逐渐转回工做当中,作更多事情,追求更多想法,这也何尝不是一种选择。

除此以外,他生活中还有一个很是狂热的业余爱好,就是足球。

图片描述

「我不光看球赛,有机会我还会下场去踢球,平时也爱跟同事玩足球游戏。若是之后不作前端的话,即便没办法作球员,也许作个足球教练?

「只要有足球相关的东西在个人眼前,我就永远不以为疲倦,这个还蛮神奇。有些兴趣爱好,可能一时兴起玩一玩,不会坚持好久,可是足球这么多年就一直没有离开个人生活。」

图片描述

也许这就是工程师们或程序员们,就像996乐队的歌词所写,他们拼命工做,在代码的世界like a hero. 但在工做以外,他们也对生活有着纯粹的追求。

--End--

技术的世界没有退缩的念头

追寻生活中的小小需求

最好的技术成就最好你我

让音乐来为本身加油

——《持续迭代》996乐队

相关文章
相关标签/搜索