柏林纪行(上):整体感受

本文首发于 alinode 团队博客 https://alinode.aliyun.com/blog/43

受集团赞助,参加了今年五月在柏林举行的 JSConf EU。另外 Node.js 社区趁着欧洲参会的人多以及考虑到柏林靠近 V8 团队大本营慕尼黑,在 JSConf 前两天在附近举办了一次Node Collaboration Summit和一些别的活动,作为 Node Core 的 collaborator 我也一并参加了,以下是个人的一些总结。

传送门:

  • 柏林纪行(上):整体感受
  • 柏林纪行(中):Node.js Collaboration Summit
  • 柏林纪行(下):JSConf EU

整体感受:阿里与中国开发者在国际社区与标准制定过程的缺席

平行世界

在柏林的几天我和许多认识不认识的人交谈下来,最大的感受就是阿里,或者说中国的开发者在国际社区几乎没有什么存在感。几乎每个和我第一次见面的人在得知我在阿里工作,住在中国的时候,都表示好奇为什么中国的程序员好像活在另一个宇宙里。这里说的中国程序员,特指“土生土长,在中国公司工作的程序员”。从很多人的说法里听下来,我们就像一股神秘的东方力量,虽然人多势众,但是很少出来和国际社区的人交流。比如说,虽然每个人都听说过阿里,但是只在新闻里听说过,见过我们大 boss 的各种采访,只有极少数人见过阿里的程序员,有些人虽然听说过阿里的开源项目,但是点进去一看都在用中文讨论 issue 和写 commit,注释里可能还有很多中文,于是就默默点叉了。大家见过和交谈过的中国程序员绝大部分都是外籍或者在外工作的,所以对在中国公司工作的土生土长中国程序员感到十分好奇。一部分人知道墙的存在还能多少理解一些,其他人都感到十分困惑,对于很多人来说我就是第一个活生生出现在他们面前跟他们说话的“real Chinese” = =。这其中还有不少人是经常到世界各地开会,见多识广的,于是就更加奇怪了。

按照个人的经验,其实在 GitHub 上活跃的中国程序员还是很多的,但是实际参与到大型开源项目的日常维护,经常开 PR 和帮助维护 issue tracker,参加线上下会议的就很少了,只是偶尔出现的话这些项目里的人一般不会在意对方本人是怎样的人,没有交谈过一般也不知道真实姓名和来自什么地方,所以自然也就不知道对方其实是中国程序员了。国内对“自己创建的开源项目”一般更上心,但是据我观察好像这样的自己创建开源项目很少会有国际社区的人参与进来,一个主要的原因是这些项目大部分第一工作语言都是中文,让大部分不会中文的人望而却步,所以最后依然是两个平行世界。作为对比,像 JS 社区里比较知名的 Vue.js 虽然作者是华人,但是不在国内工作,第一工作语言也是英文,最开始也是在国际社区推广成功的,后来也在中文社区做了很多努力,所以算是比较罕见的在两个世界都有存在感的项目。

然而开源社区里,“维护者”总是比“创建者”要多得多,拿我比较熟悉的 Node.js 社区来说,Node.js Core 的大多数维护者都是最近几年才参与到项目里来的,npm 上很多热门模块的维护者也不是作者本人,这些有影响力的项目日常的 issue triage,code review,代码维护,新功能实现,版本发布,技术决策,很多都已经和原作者没什么关系了,社区活动大部分也都是承担日常工作的维护者们在互相沟通,而这样的维护者中确实很少有活跃的中国程序员,也难怪他们会有这样的疑问了。我曾经考虑过语言障碍是不是造成这个现象的一个原因,但实际上我接触过的很多维护者母语都不是英语,即使拿亚洲国家来说,隔壁日本的程序员在国际社区活跃的也不少,而日本程序员的平均英文水平似乎也并没有比中国高特别多,只要不影响理解大家都是可以沟通的。另外还有好几个人跟我提过的一点是,似乎只有中国人会在默认用英语的 issue tracker 上直接用中文开 issue,其他非英语国家的人都不会这样,他们都很好奇为什么,然而其实我也不知道原因……

回来和其他同事讨论这个现象的时候,还想到了一点,就是我们喜欢看自己的某些项目具备了基本的英文文档,或者我们有某几个在国际社区比较活跃的开发者,就以为其他国家的人应该会注意到中国项目和中国开发者的存在,所以会觉得他们说看不到中国人有些奇怪。然而我们的项目仅仅是无数个来自不同国家的项目里的几个项目,我们的开发者也不过是无数个来自不同国家国家开发者里的几个人,每个人的关注范围都是有限的,注意不到这几千几万分之一的来自中国的活动,其实也不是很难理解。换句话说,就是数量虽然不是没有,但是太少了,而且缺乏现象级的活动,因此还不到能让大多数人察觉到的地步。

尬聊

另外据我观察,似乎国内的程序员在被公司派出去参会的时候都不怎么和非华裔的人搭讪,比较喜欢找同样是来自中国的人搭话(我遇到过一些其他中国公司的人,他们似乎都倾向于找亚裔说话,而且发现对方是华人会很快切换到中文),所以造成了即使我们有人出国参会,结果非中国程序员依然不认识中国的程序员的状况……不过根据我在国外留学的朋友的说法,似乎这个情况在留学生里也是很常见的……

P.S. 我第一次出国开会的时候也不会主动找人聊天,不过被几个认识的人带着尬聊和被几个人尬聊之后,就学会套路了,基本就是看到落单的人自己刚好又很闲的话,就凑上去说 Hi I am xxx,对方这个时候会回 Hi I am yyy, 然后两边握手说一下 nice to meet you,接下来就是 where do you come from, where do you work, what do you work on 三件套就可以开始瞎聊了。如果是因为某些因素见过好几次面或者一起参与过几次讨论,但还没有直接说过话的,开头加句 Have I introduced myself to you?或者 I don't think I have introduced myself to you就可以。其实和国内开会搭讪也没什么区别,另外因为我是女的所以和女程序员搭讪有 buff,所以我比较喜欢找女程序员搭讪,开会中途吃饭拼桌的时候也是和旁边的人边吃边聊的好机会。除了这个尬聊的方式以外,在有第三方共同认识的人在场的情况下也可以很快认识人,如果第三个人不主动介绍你们认识,在交谈的间隙说一句I don't think we have met然后报上名字伸手即可,当然最快的就是以前在 github 一起 code review 过的人直接报 github id 就一见如故了……


午餐时间,尬聊的机会


Community Area,尬聊机会x2

JavaScript 标准过程中的缺席

除了在社区活动和开源项目中的缺席以外,还有一些人好奇的一点是,中国公司在标准制定组织里似乎没有什么存在感。有个德国人告诉我,他曾经问 Branden Eich(JavaScript 之父)为什么 TC39 (制定 JavaScript 标准的组织)里没有中国公司,Branden Eich 的回答是他感觉中国人似乎对标准不感兴趣。这让那个人感到相当诧异,他问我为什么像阿里这样广泛使用 JavaScript 的公司,会对 JavaScript 标准的制定和决策不感兴趣呢?然而这个问题,我也给不出一个看上去比较合理的答案……

因为我是 Node.js CTC(Core Technical Comittee)的提名成员,所以也参加了 Node.js Collaboration Summit 后 Google 撮合的一次 Node.js CTC + TC39 + V8 团队 + npm 的人 + IBM 的人 etc. 的聚餐,刚好有跟 TC39 的 Daniel Ehrenberg 聊了一下,在我简单介绍了一下我的工作之后,他想知道阿里人对 JavaScript 标准的现状和进行中的 proposal 的看法。在钉钉和一些同事讨论过后,后来 JSConf EU 有一个 TC39 的 Panel,结束后 TC39 的几个人在 Google 的展台继续交流,刚好上台的 TC39 成员里 James Snell 也是我平时交流比较多的 Node.js 社区的核心成员,于是我就过去聊天,把我总结的一些反馈和思考告诉了他们。


TC39 在台上的 Panel,左一的 James 和左四的 Myles 都是 Node.js CTC 的成员。左二是 Domenic Denicola 也经常和 Node.js Core 有合作,左三是 Daniel Ehrenberg,左五是一个在微软工作参与维护 moment.js 和 Date API 的成员。

在和 Daniel 和 James 交谈的时候我们聊到了最近 Node Core 里几个关于 Promise 的 PR,James 的感觉是虽然 async/await 已经落地了,但是在 Node 的用户里教育和推广离开 callback style 还需要时间,于是我向他们介绍了一下 generator 在 async/await 出现前已经在阿里的生产环境使用了很多年,内部的后端代码基本没有什么人用 callback 了,基础库的 API 上基本不是 promise 就是 generator,内部的定制框架基本都不基于 express 而是 koa。他们对国内几乎完全不同的风向很惊讶,根据 Daniel 介绍,V8的generator 当初是 Bloomberg 赞助他现在的公司的 Igalia 的 Caitlin Potter 实现和帮助推进标准的,就是因为 Bloomberg 和我们一样内部很依赖这种 generator 的用法(P.S. 我在会场居然碰到了以前在中大认识的师兄,他就在伦敦为 Bloomberg 工作,据他介绍Bloomberg 内部有一个 V8 的 fork,里面有很多私有的扩展,这点有一点类似 alinode 的前身的情况)。Daniel 现在正在负责推进的一个标准是任意精度的整数,这让我想起 alinode 其实内部也曾经有一个为蚂蚁的业务需求添加了 BigNumber 的 fork,而且阿里内部的前后端 JavaScript 代码确实遇到过类似用 Number 做 ID 的类型结果遇到精度问题,需要抓紧升级的情况。但我们基本都是自己去寻找曲线救国的解决方案,并没有想到去 TC39 推进标准,从长远角度解决问题,也没能 Igalia 一样作为第三方协助推进 JavaScript 引擎上游做实现,阿里作为 JavaScript 的使用大户,虽然在很多方面受到 JavaScript 标准的影响,但在 JavaScript 标准和实现上的参与还是太少,也难怪别人会觉得奇怪了。在我跟他们介绍阿里 JavaScript 和 Node.js 技术应用的一些情况(包括 YunOS,enclose 这些比较罕见的应用)的时候,他们表示,为什么你现在才出现,我们根本不知道还有一个大公司在这样用 JavaScript = =!我只能回答其实我去年才毕业,在阿里正式工作不到一年,阿里和国内业界的很多情况我也是才了解没多久……= =|||

或许我们在标准制定和实现上的缺席有一点是因为,我们内部推广一个新东西一般比在社区推广高效的多,TC39的标准制定过程十分漫长,中间有很多无比枯燥的文案细节要讨论,无数画风不太友好的会议要开,虽然 JavaScript 引擎实现新特性也是相对效率比较高的(除了要经常跟进proposal 的变动,但毕竟基本都是写代码,不怎么需要动嘴皮子),但是许多需要 runtime 配合实现或者推广的特性还是会很长时间都无法落地。比如 Promise 在 Node.js API 上的整合,纠缠了好几年都没有落地,中间出现过许多个 PR,最后都会被无休无止的论战淹没,以前成立过的 Promise Working Group 现在也不活跃了,最近几个为 Node 添加的 PR 也是争议不断。这样有争议性的月经话题纯粹由社区的志愿维护者去推进,很容易最后大家都觉得口水战太久浪费彼此的时间,结果一次又一次不了了之(P.S. 从柏林回来之后为 Node.js Core API 添加 Promise 抽象的 util.promisify() 终于合并了,感谢耐心惊人的 Anna,她大概是我见过的脾气最好的人之一 = =)。虽然我们内部对 Promise 和 async/await 存在实际需求,但是毕竟在 Node.js Core 没有直接支持的情况下,我们用 npm 模块加上 co + generator 也能达到类似的开发体验,自己也有其他需求在身,对于推动社区和标准落地这种容易吃力不讨好还特别耗费时间的事情,自然就没有十分的动力了。

我们组因为工作内容的原因,偶尔会向 V8 交一些 patch,而向 Google 的开源项目提交 patch 需要签署 CCLA,中间的过程十分漫长,需要联系法务做一些不在程序员认知领域的手续。到我提交 patch 的时候我们组已经把坑给踩过了,虽然时隔略久法务也忘了怎么为新成员授权,不过通过四处查阅文档一两天后也解决了手续问题。然而看当初第一次签署协议的邮件记录了解流程的时候,还是对整个过程的曲折程度感到惊讶,幸好我授权的时候原来接口的法务还在,如果当初的法务离职了,没有交接好这个十分低频的工作,估计就远远没这么顺利了。相比之下,仅仅是内部 fork,不提交 patch 回去的话想怎么改就怎么改,或许这也是我们倾向于内部造车而不是提交反馈回上游开源社区的一个原因。当然这种东西法务也是一回生两回熟,Intel 和 IBM 这样四处参与开源项目的公司对这种手续就已经驾轻就熟了,以后的情况还是比较乐观的。

另外一点与国外大公司不同的是,在对待标准化进行中的 JavaScript 新特性的时候,我们大多数人还处在只看 proposal 表面而不去关心细节,注意不到其中可能和自己的实际需求完全脱节的坑的阶段。相比之下 Google 这样技术布局更广的公司对 proposal 的细节关注更高,不会只对一个 proposal 看似美好的表面欢呼雀跃,而是会去认真挑刺,对于他们关心的 proposal,如果发现和实际需求不符合的情况他们会直接进行阻拦,宁可什么都没有也好过让一个有缺陷的特性进入 JavaScript 的标准覆水难收,就连自家同事做 champion 的 proposal 可能也照怼不误,比如 Object.observe,可取消的 Promise 都是这样夭折的。一个论点是,只要实际需求足够强烈,proposal 们都是会以更好的形态卷土重来的,所以阻拦一个特性的实现并不会造成世界末日。包括当年的 ES4,最近几年被不少人在 TypeScript 的风潮下发现当成遗珠,觉得微软和雅虎当年的阻拦似乎显得有些无理取闹,但事实上参与 ES4 制定的很多人其实是庆幸 ES4 最终没有落地的,因为 ES4 的很多想法表面上看似美好,事后具体去深究他们写出来的草案细节,会发现其实还有很多严重缺陷,这是许多普通的应用开发者光看各种 proposal 的概述,不去直接翻阅 ecma-262 的情况下不会注意到的,只有整天关心茴字有几种写法,不断咬文嚼字的标准制定者们才会感到后怕。当然,某些阻拦新特性的理由可能显得有些杞人忧天,为了一点小事伤了大计,然而一个未落地的新特性到底会不会因为一点细节上的 bug 在开发者社区造成严重的负面影响,是没有人能给出确切答案的,毕竟没有人能够预测未来,只能说塞翁失马,焉知祸福了。

时间: 2024-09-17 04:56:29

柏林纪行(上):整体感受的相关文章

柏林纪行(下):JSConf EU

本文首发于 alinode 团队博客 https://alinode.aliyun.com/blog/45 传送门: 柏林纪行(上):整体感受 柏林纪行(中):Node.js Collaboration Summit 柏林纪行(下):JSConf EU JSConf EU JSConf EU的组织与整体观感 这次 JSConf EU 很多人都注意到了女性讲师的比率特别高,在和其中一位女性讲师 Chen Shay (来自 Google AMP 团队)交谈的时候,得知这次的演讲稿评选是盲选的,也就是

柏林纪行(中):Node.js Collaboration Summit

本文首发于 alinode 团队博客 https://alinode.aliyun.com/blog/44 传送门: 柏林纪行(上):整体感受 柏林纪行(中):Node.js Collaboration Summit 柏林纪行(下):JSConf EU Node.js Collaboration Summit 比较沉重的思考写完,下面是比较轻松的部分了--按照时间顺序,先记录一下 Node.js Collaboration Summit 的见闻. Node.js Collaboration Su

章子怡柏林电影节上把玩“干练与优雅”

一对由蓝色火焰钻石镶嵌的耳环抓人眼球柏林当地时间2月7日14点45分,导演王家卫携得力爱将章子怡.梁朝伟一起出席了<一代宗师>于柏林电影节期间的首场新闻发布会.现场章子怡以一袭黑色皮质拼接铆钉小礼裙示人,一对由通灵珠宝蓝色火焰钻石镶嵌的"红毯"系列"梦境"耳环更是抓人眼球.能把优雅干练与柔美妩媚把玩得浑然一体,"国际章"的时尚嗅觉看来是愈发灵敏了!通灵珠宝几何耳环点亮整体造型当章子怡出现在新闻发布会的那一刹,各国记者的长枪短炮无一例外

索尼否认破产称将在九月的柏林IFA上推出新品

硅谷网讯 18日夜间,有网友发布了疑似央视新闻频道的"截图",称索尼申请破产,截图显示,新闻主标题是<http://www.aliyun.com/zixun/aggregation/18317.html">索尼公司申请破产>,副标题则是<索尼电子业务全线溃败>,正在播出的字幕为"索尼的帝国已经瓦解,产品毫无亮点",该截图一发出就引起了网友的热议,大多数网友对此将信将疑. 网友"正和岛徐超"表示"索

第63届柏林电影节落幕

第63届柏林电影节落幕宝琳娜·加西亚凭借<葛洛莉亚>夺得影后通灵传世翡翠加身显温婉柏林当地时间2月16日晚,第63届柏林电影节主竞赛单元收锣,由王家卫领衔的评委会将金熊大奖授予了罗马尼亚影片<孩子的姿势>.曾以<无主之地>获得奥斯卡最佳外语片奖的丹尼斯·塔诺维奇,则以<渺生一页>获得评委会银熊大奖与最佳男演员两项大奖.宝琳娜·加西亚凭借<葛洛莉亚>击败朱丽叶·比诺什,夺得影后.当晚,宝琳娜以一袭深V领.露背黑色晚礼裙,搭配柏林电影节指定珠宝--通

杜亮:中国经济型连锁酒店网站浅评与入住感受

11月11--14日出差上海,入住锦江之星1晚.汉庭酒店2晚,至此,我已入住过如家.7天.锦江.汉庭.维也纳.莫泰.城市客栈,目前还有格林豪泰.速8.桔子三家知名经济型连锁酒店未曾实际入住体验.因为工作的关系,先后接触和参与了七天连锁酒店.维也纳酒店.城市客栈的电子商务与网络营销工作,以及秦皇岛精品文化酒店:秦皇岛如意山海酒店(www.5ruyi.cn)的网络营销顾问,自从2007年做了七天连锁酒店的网络营销之后,我就对经济型连锁酒店比较关注,每次入住不同的经济型连锁酒店都会比较留心观察,用心体

第61届柏林国际电影节:新十年旧法则(组图)

戴着3D 眼镜的维姆文德斯在首映现场(左图):热爱胶片的赫尔佐格也携带3D新作前往柏林. <内达与西敏:一次别离>一片大获全胜,斩获"3只熊"(左图):伊朗影片<内达与西敏:一次别离>导演阿?/span> 贝拉·塔尔是本届电影节唯一 一位没有发表获奖感言的导演 <都灵之马>团队极少在电影节公开露面 撰文.编辑/王子烨(发自柏林) 上周日,为期10天的第61届柏林电影节落下大幕.尽管本届电影节仍有一贯弊病,但是金熊奖颁发给伊朗电影<内达与西

WWDC上这个神级功能,一言不合又要改变未来购物趋势

在 2017 年的 WWDC 上,最令科技爱好者们动容的,其实是苹果关于 AR 终于开了金口,公布了名叫 ARKit 的增强现实(AR)平台的上线.谷歌.Facebook.微软,在这个领域都已捷足先登,在AR上做出了点成绩:Tango.Camera Effects.Hololens. 苹果姗姗来迟,首次正面向外界推出关于AR平台上线的消息,科技界一阵骚动,这一举措相当于是宣告了 AR 时代全面来袭. AR 和新零售即将擦出的未来火花 苹果软件工程副总裁Craig Federighi表示,一夜之间

活动消费者在移动设备上的活动与日俱增

在智能手机和平板电脑用户之间,查收邮件是排名第一的活动消费者在移动设备上的活动与日俱增,查收邮件被指做是最热门的移动活动.根据Return Path2013年12月的数据强调了这一趋势,在刚刚过去的假日季里,全球超过一半的电子邮件是在移动设备上打开的.而台式电脑和网页邮箱每一个只占到1/4左右.圣诞节是电子邮件打开率较低的日子之一,Return Path指出可能是因为那个时候业务邮件发送量减少的原因.尽管12月25日在电子邮件上整体花费的时间较低,但在当天移动设备上打开邮件的份额呈现62%的激增