Weex Conf 2018 参会小结:Weex 的现状和未来

5,222 阅读5分钟

1 月 19 日 weex 团队在杭州开 weex conf。半闭门邀请制,因为我之前的项目里尝试性的接入了 weex ,刚好失业在家有空,就约上冰霜一起报名参加了。

虽然此次会议规模不大,现场不到百人,但是似乎是只邀请了项目里有使用过的 weex 的人,现场也不乏腾讯、网易、蘑菇街规模大一些的公司,所以现场讨论的气氛还是挺好的。下午的演讲都是介绍各自团队在使用 weex 的实践总结,算是让我对 weex 的现状有了更清晰的认知。把我一天下来的感想总结一下。

weex 的下一步:重写内核,摆脱 JavaScriptCore 依赖

一份代码,多端运行的思路是逻辑使用 JS 编写,JS 文件动态的同步到本地,之后本地的 JS 引擎执行 JS 的代码,通过调用本地提前注册好的 native 函数实现业务。如果更抽象一步,就是约定一份语法格式(DSL),不同平台针对这个语法执行响应逻辑。有点像编译的过程,把自定义的字符串解析成本地对应的代码。只是在早期的时候,有现成的 JS 和 JavaScript Core,自然而然的利用现有的完备的技术体系。

那么现有体系有什么硬伤呢?

  • JS 环境和 native 环境通信性能问题

    JS 的 runtime 和本地的 runtime 不一致。两个环境的互相调用还是有比较明显的性能损失。会上有人提到本地的 GPS 定位持续的传给 JSC,函数响应的过程可能需要几十毫秒。虽然这种持续的函数调用虽然不是常见的场景,但是这个场景突显了这种模式的先天的硬伤。

  • 对不同平台 JavaScript Core 的依赖

    在 iOS 端,weex 使用的是 iOS 自带的 JavaScriptCore framework;安卓端原先用的是 V8 引擎,后来替换成了 JavaScriptCore 。两端的 JS 引擎有着不一样的代码,而且 iOS 端的 JSC 是闭源的。如果同一份 JS 代码,两个端运行结果不一样,调试起来就非常困难。

如果用 C++ 写一份自己的内核,两个端就可以使用同一个引擎,就可以抹平运行时的不一致,性能也会得到提升。唯一的问题就是这个操作门槛有点高。只能说 weex 的野心让人敬佩。

选择 weex 的理由

支持 web

其实我本来想用“吊打”这个词,毕竟 RN 根本不支持 web。之前在技术会议上看到携程、京东都提到他们打算自己维护一套工具,以支持 RN 的 web 端能力。可是普通小团队都没有这样的研发力量。weex 因为来自自身(淘宝) web 端的需求,所以一开始就支持了三端。虽然 web 端的能力一般,但也还是能用。这是一个真实的痛点,现场来的很多团队选择 weex 就是因为需要同时支撑 web 端。

vue 的加持

前端框架的优劣就不谈了,但是个人喜好确实不同。因为现场团队听见有的团队说我们对 Vue 比较熟,不想再接触 react 那一套,就选择了 weex 。

阿里已经深深依赖

毕竟 weex 的最初使命就是解决自身的开发效率问题。阿里内部的认同对于这个项目的稳定性影响至观重大。随着 weex 的性能提升,淘宝的双十一会场的几千个页面都是利用 weex 实现的。看来是稳了。

听到飞猪团队的一个分享提到的一个业务场景很有意思。飞猪有一半的流量来自其他阿里系 app(淘宝等),以前通过 hybrid 的网页实现。但是网页的缺点大家都知道了,加载慢和交互体验差。现在因为其他 app 都带了 weex ,所以约定好一些 module ,可以非常方便的支持其他 app 嵌入自身的业务。

总之,阿里内部对 weex 已经有价值上的认同。好吧,其实我也不是很关心这个,我知道明天 weex 团队不会解散就好了。

最大的瓶颈:社区活跃度

Weex 开发者社区的活跃度对比 RN 可以用惨淡来形容。这种心情大概就是两个开发者如果知道对方用的是 weex 会相视一笑,然后抱头痛哭。

社区不活跃会对技术的使用提高很多门槛。

比如我看到的一件事,weex 移交到 Apache 后,原先 github 上的 repo 就不再维护了。Apache 上面并没有提 issue 的渠道。开发者也普遍对 Apache 通过邮件沟通的方式不太习惯。所以一位开发者使用 weex 碰到问题就不知道去找谁了。某些网站上提问有人回答也是几个月后才有稀松的几个回答。一个技术要普及,门槛就一定要低。不能希望使用的团队技术都有一线互联网公司的水准,能自己看源码解决;或者都能有渠道找到阿里的朋友帮忙解决问题。

社区不够活跃,技术的实践资料也就少了。如果用 RN 想要做路由,一搜就能搜到几个解决方案。甚至出版社的纸书,RN 都有好多本。然而搜一下 native 如何往 weex 传值都要找好久。

冰冻三尺非一日之寒。如果要入坑 weex ,社区虽然在变好,但是可能还是没有主流的框架那样活跃,要做好心理准备。

总结

谁不希望看到一个中国团队开发的技术方案走向世界舞台呢?

顺便带个 weex 的招聘

淘宝-Weex内核研发技术专家


欢迎关注我的微博:@没故事的卓同学

掘金博客地址:juejin.cn/user/192600…

如果想与我有更密切的交流也可以加入我的小密圈:程序员生存指南