大家好,我卡颂。
你会不会时常疑惑,同为程序员,为啥搞开源的大佬能做出优秀的库,而自己只能跟着文档调用API
?
本文带你走进AssemblyScript
维护者「Aaron Turner」背后的故事,或许能对以上问题带来一些启示。
本文参考From hacking prepaid phones to maintaining WebAssembly[1]
在聊主人公之前,让我们先聊聊AssemblyScript
。
WebAssembly
(下文简称WASM
)是一种浏览器支持的低级语言。
他以二进制的形式交付。这意味着与传统的浏览器语言Javascript
相比,实现同样的功能在代码量与性能上都更有优势。
WASM
的出现并不是为了取代JS
,而是扩展web
的势力范围,比如:
这些都是传统端应用的势力范围。WASM
使web
有了染指这些应用的能力。
但是,直接编写WASM
字节码显然是很低效的。所以WASM
通常是其他高级语言的编译目标,比如:C
、C++
、Go
、Rust
。
对于前端开发,可以选择AssemblyScript
。他是TypeScript
的子集。
只要你会TS
,就能用AssemblyScript
编写最终编译为WASM
的代码。
从以上描述可以推测,AssemblyScript
的维护者至少需要熟练掌握:
接下来,让我们看看故事的主角「Aaron Turner」是如何与这些知识产生交集的。
Aaron
出生在一个贫困家庭。在他小时候,拥有很多劣质的预付费手机(就是你经常在特工片里看到那种打一次电话就掰碎丢垃圾桶的手机)
如果不超频或魔改,这些手机就是垃圾。
为了废物利用,Aaron
在13岁时学习了Linux
,安装了Ubuntu
。就为了在这些手机上刷安卓ROM
。
他的手机每月只有1G流量,而Ubuntu
大约就占800MB。所以,Aaron
还得精心策划每个月的流量分配。
靠着WIFI
热点,Aaron
完成了他所有的安卓ROM
开发。
开发安卓ROM
的经历让Aaron
很早就接触了开源,并在15岁时学习了JS
。
上大学后,Aaron
接触了AngularJS
,学习了web
开发。但是,这些并不是他的兴趣所在。
直到他发现了WASM
。
WASM
为低性能设备带来的体验突破让Aaron
找回了童年刷垃圾手机ROM
的快乐。
作为JS
开发者,他顺理成章开始使用AssemblyScript
。
他使用AssemblyScript
开发的第一个项目,是一款Game Boy模拟器
。
这种游走于灰产与黑产之间的项目,学校可不会教。但是,「从互联网灰暗的角落学习各种隐藏技能」对Aaron
来说就是童年的一部分啊!
在此过程中,Aaron
与AssemblyScript
作者Daniel Wirtz
建立了联系,为接下来成为项目维护者打下了基础。
毕业后的Aaron
在谷歌工作过一段时间。但受不了大公司的繁文缛节,最终选择了离开。
现在他是Fastly
的高级工程师,主要在WASM
领域工作。
他时常感慨,虽然早已不用像小时候一样为了生计而奔波,但从小养成的「用技术去解决阻碍自己的东西」的理念早已深入血液。
当被问及「成功的标准」时,他说:
我通过检查「我是否快乐」来衡量成功。我喜欢我正在做的事情吗?我喜欢我的团队吗?如果不喜欢,对我来说就是失败的。
参与开源,维护AssemblyScript
,帮助更多的人「用技术去解决阻碍自己的东西」,对我来说是最快乐的。
当然,大神也有烦恼。Aaron
业余时间是一名说唱歌手,如何平衡说唱与写码的时间,一度让他很头疼......
[1]
From hacking prepaid phones to maintaining WebAssembly: https://github.com/readme/stories/aaron-turner
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有