近十几年来,Ecma International,简称Ecma,因其制定的ECMAScript(也就是大名鼎鼎的JavaScript语言)标准而在国内技术社区名声大噪。事实上,这家成立于1959的行业协会还制定很多其他国际标准,包括C#、Dart语言和CD-ROM,等等。作为一家注册在日内瓦的国际标准组织,Ecma越来越成为头部互联网公司在标准领域发力的平台。
众所周知,Ecma负责ECMAScript标准制定的技术委员会是TC39。2019年6月,在Ecma第117次会员代表(GA,General Assembly)会议上,360被批准为会员并加入TC39,成为TC39成立22年来的第一家中国会员。(1997年,JavaScript 1.1作为提案被提交给Ecma。)
Ecma GA每半年召开一次会议,集体审议并决定协会层面的重大事项。2019年第二次也就是第118次GA会议于12月10号在东京举行。360的GA是赵文博先生,他邀请我一道前往,同时也参加11号举办的TC53研讨会。作为W3C的AC(Advisory Committee) 代表,我也很高兴去增长增长见识,体验一下Ecma的GA会议跟W3C的AC会议有什么区别。
见证阿里、华为和Sujitech加入Ecma
Ecma这次GA会议由日立公司做东道主,会议地点就在品川站的日立公司分部,JR Shinagawa East Building 20层。
会议时间从早上9点到下午5点,中午休息1小时。会议日程多达几十项,包括Ecma一年来重点工作回顾、预算执行报告、会员类别的标准及会费、会员章程及议事规则的修订、外部合作、未来规划、外部不利因素应对,以及各技术委员会主席的年度报告,还有Ecma管理层(Managment)、秘书处(Secretariat)及执行委员会(Executive Committee)人事变动等。当然,还包括投票表决新会员申请。
比如,下图就是包含第117次GA会议接受360加入Ecma成为Associate Member申请的回顾。
而下图则是第118次会议要表决的会员申请,其中包括来自阿里巴巴、华为和Sujitech等3家中国公司的申请。
我和文博作为360的代表在本次会议现场见证了阿里、华为、Sujitech被接受为Ecma会员。重点是这3家公司同样也加入了TC39。在此前召开的 TC39第71次技术会议上,360 技术委员会Web前端分会委员贺师俊作为360的代表接手了停滞多年的function.sent提案的工作,标志着中国已经正式参与到 JavaScript语言标准的制定中。此次阿里、华为和Sujitech的成功加入,无疑会让中国会员在ECMAScript标准制定中拥有更多话语权,同时也将能够更好地代表广大中文开发者发声。我们一方面期待更多中国公司加入Ecma,参与到包括ECMAScript在内的各项标准制定中;另一方面也期待中国的Ecma会员能够紧密合作,相互支持,共同把ECMAScript标准向更强大、更高效和更安全的方向推进,造福全球社区和用户。
Facebook提议制定智能合约编程语言标准
Facebook有两个代表参加本次GA会议:Joel Marcey(乔尔·马西)和Eric Nakagawa(中川·埃里克)。Joel Marcey曾经担任TC39和TC49主席,貌似还参与过PHP语言标准(Hack/HHVM)制定。Eric Nakagawa现在Facebook子公司Calibra负责开源工作,这个人也很传奇。
会议上,Joel Marcey代表Facebook提议制定一个“智能合约编程基础设施”之类的编程语言标准。大会秘书长Patrick Luthi和执行委员会主席Isabelle Valet-Harper(Microsoft)对此表示欢迎,他们建议考虑以TC或者TG的形式开展工作。TC作为一个独立的技术委员会曝光度更高,影响力更大,但需要至少3家会员公司支持。而TG相对容易组建,但影响力小。
下图是第118次Ecma会员代表会议现场,还有很多会员代表是通过电话会议形式远程参会的。
在会后的社交晚餐会上,我跟Eric Nakagawa聊天,谈到未来这个TC或TG是否考虑将Move语言标准化,他表示一开始应该会以Move为基础。
无论如何,作为一家雄心勃勃的公司,Facebook希望在Ecma这个平台上制定智能合约编程语言规范,说明他们希望在标准化这个领域布局未来,获得未来区块链产业的主导权。而Ecma作为一家国际性的开放的标准组织,也非常希望有更多公司通过这个平台实现对各类技术的标准化,从而不断提升其影响力。
与W3C AC会议的区别
相对于Ecma,W3C是相对专业的标准组织,只专注于Web技术的标准化。但是,从会员规模、工作组数量,特别是活跃工作组数量上看,W3C比Ecma要庞大和复杂一些。尽管Ecma的历史更悠久,但其现状基本上是TC39及其ECMAScript标准一枝独秀。从本次GA大会上公布的标准下载量来看,ECMAScript规范的下载量遥遥领先于其他规范。夸张一点说,W3C是百花齐放,从MDN提供的学习指南和API文档可见一斑。当然,W3C的组织结构也相对多一些,流程也比Ecma复杂一些。
具体到Ecma GA和W3C AC会议,应该说除了后者的会期通常为2~3天而前者只有1天之外,其他大同小异。同样作为会员代表的会议,基本上都是会员代表对协会或联盟事务进行“参政议政”,包括人事、流程、财务、规划,等等。就像秘书长Patrick Luthi在中午吃饭时跟我们开玩笑说的:这种会议不好玩,都是事务性的,明天TC53的研讨会应该有你们更感兴趣的技术内容。他非常高兴我们作为中国会员参加这次会议,毕竟中国人来得太少了。
相信随着Facebook提议的“智能合约编程基础设施”技术委员会或技术工作组的成立,包括刚刚成立的TC53(ECMAScript Modules for Embedded Systems)在面向IoT和可穿戴设备方面有所作为,Ecma的影响力会越来越大。
有读者可能知道,就在12月5日,W3C正式发布“继HTML、CSS、JavaScript之后支持代码在浏览器中运行的第四种Web语言”的正式标准:WebAssembly Core Specification。另外,致力于解决IoT“碎片化”问题的WoT(Web of Things,万维物联网)的各项标准也正在紧锣密鼓的制定中。可以期待,Ecma和W3C未来将在更广泛领域有更多更深入的合作。
TC53研讨会
IoT是未来人工智能最有前途的应用方向,也是技术、商业和社会及向更高层次跃进的基础。
如前所述,TC53是Ecma刚成立不久的技术委员会。主席Peter Hoddie是硅谷创业公司Moddable Tech的创始人,该公司的嵌入式JavaScript引擎XS “...passes 99.84% of the language tests and 99.78% of the tests for built-in objects”。
12月11日上午,在日立公司的同一个会议室,举行了Ecma TC53技术研讨会。
这次研讨会也是TC53面向会员代表的一次集体亮相。下图是Peter Hoddie在介绍TC53设立的初衷和工作方向,包括提供面向I/O、网络、传感器、BLE、显示屏、安全、电量管理等公共操作的JavaScript API,按操作组织为软件模块。设计的最高优化级是考虑效率(efficient),然后是安全、可移植和容易使用。
接着,XS引擎架构师Patrick Soquet(帕特里克·索凯特)介绍了XS的架构。这位老兄母语应该不是英语,他打印了一份讲稿,照本宣科:
研讨会还安排了Moddable的日本开发者石川真也等进行了现场演示:
以下是TC53研讨会现场全景:
小结
我们非常感谢日立公司主办这次会议和研讨会,感谢包括但不限于Kei Yamashita(山下Kei,Ecma副总裁)先生、Osamu Namikawa(並河治,TC38主席)先生、Taku Hoshizawa(星沢拓,TC31主席)先生、Masaki Ito(伊藤正树,TC51主席)先生等日立公司同行的支持和招待。
另外,这次GA会议还向三位对Ecma标准制定做出贡献的日本同行颁发了奖杯,其中两位应该已经年届古稀。提到年龄,我和文博都深有感触。跟这次日立公司参会的人相比,我们是白头发最少的。我们既感叹于日本人工作到老的职业心态,也庆幸于国内公司为年轻人提供的崭露头角的机会。
这次参会还有一个意外收获,就是我发现了Peter Hoddie要在Apress出版一本书:IoT Development for ESP8266 and ESP32 with JavaScript: Build Powerful Software with New Generation Hardware。更意外的是,这本讲IoT开发的书中使用的硬件来自一家中国公司,英文名叫ESPRESSIF,中文名叫乐鑫。