时间退回到2014。
这是 K 成为微信开发实习生的第一天,走进TIT创意园 B1号楼的大门,一股清凉扑面而来。对于未来即将走进的“小世界”,此刻他还全然不知。
快进到2018年11月7日,小程序获选世界互联网领先科技成果,PONY 在领奖致辞中说:
小程序已经构建了一个完整的开发环境和开发者生态,超过150万开发者进入小程序生态,2017年带动就业104万。小程序走进了高校计算机课堂,还产生了很多专门的“小程序员”。
今天,我们找到了几位创始小程序员,来听听他们的故事。
最年轻的创始小程序员
“我曾一度怀疑小程序做不下去了。”这是年轻的互联网人 K 职业生涯中的第一个大项目,他负责小程序接口能力的设计与开发。
2015年前后,小程序的概念已在内部被提出,最初的想法来自于建立一个中间层操作系统的愿望,微信公众平台开放接口的积累为技术上提供了可行性。
小程序的命名一波三折:从最初的 Web+,到后来的应用号,发布前夕才定下“小程序”。
比名讳更折腾,K 亲历了开发过程中的尝试与反复——基于公众平台进行页面增强、在 Web 形式上添加 JS-SDK 、仿朋友圈形态......
“那时候我就在想,是不是所有的产品都是这样成长起来的?那如果它将来做好了,我一定要记得这个过程中的每一步。”
2016年6月1日,对 K 来说,只是一个普通的加班夜晚。21点10分,他依照日常工作流程向系统提交了一次代码,日后这次提交被定义为小程序代码的首次提交。
小程序代码的首次提交
0号小程序员的“不疯魔不成活”
“坦白讲,我就是为了小程序才加入团队的。”半路加入团队的 H 从大学起就是“代码狂热者”,他是整个框架逻辑的提出者。
入职不久的一个周五,他正猫在工位写代码,隔壁开会的同事叫他过去。在那间办公室,他听到了同事们关于小程序做一个独立框架的构想。
“那样的话,所有的东西都要自己做了。”一整个周末,H 都在琢磨方案。周一刚上班,他就站在台球室里向两位同事“安利”了自己“做一个编译器”的方案,三个人探讨打磨良久,最终确认了一个合理的开发方向。
2016年6月,小程序开发真正意义上开工了,H 也被大家笑称为“0号小程序员”。
很多个夜晚,他思考技术细节到痴迷,兴奋得睡不着觉。一天夜里两点,已经躺倒的他,突然被一个一闪而过的念头从床上拉起来,翻阅资料、查看文档...
直到凌晨四点多,一个初版的模型完成,他满意地发了个朋友圈,才倒下睡去。
截图来自0号小程序员 H 的朋友圈
1号小程序员和发际线忧愁
“那个阁楼有很多吃的,也有很多老鼠,我留下许多代码,也留下许多头发。”在《小程序员 2016》的文末,Y 写下这句话。
除此之外,他还写下了小程序编译器,由此成为当之无愧的1号小程序员。
工作中,Y 和 H 是配合默契、心心相印的搭档。如果将小程序的开发环境比作是一个世界,H 赋予了这个世界一个规则,而 Y 的所做的编译器就是一架桥梁,将世界运行规则和光、水和空气等元素连接起来。
离开大学校园5年,许多课本知识已经还给老师,要做一个可能会影响其他程序员下班时间(原话引用:因为可能有bug)的工业级程序,是一个让人热血沸腾的挑战。
思考的时候,Y 喜欢在阁楼的狭小空间里走来走去,WXML (WeiXin Markup Language)就这样边走边写出来了。
阁楼上的生活是关于小程序的记忆原点。“束之高阁”一年多,除了小程序的雏形,整个开发二组打下了坚实的感情基础。在工作间隙,和同事玩实况足球是 Y 喜欢的消遣。1块钱1个球,被人笑话抠门,他争辩说“这和钱无关。”
但是,在所有的事情中,最让 Y 挂心的,还是他随代码生长而逐渐远去的头发们。
TIT创意园腾讯微信总部B1阁楼
在“牛粪上雕花”的兄弟
“有一个词叫’牛粪上雕花’,说的就是自选股的兄弟们。”H 现在提起自选股来,依然以兄弟相称。
自选股是第一批受邀内测的开发者之一。当时小程序框架刚刚搭建起来,存在种种问题。自选股的“小程序员”们在通宵了一个礼拜之后,成品竟然做得有模有样。
当时自选股小程序需要使用 Canvas 绘制 K 线图,整个开发二组中,有且只有一位实习生接触过 Canvas,于是承担了这部分工作,也有了后来被广为流传的“等他们先睡”的故事。
一天夜里,这位实习生正和自选股团队一起做开发,加班到深夜双方都没有去休息。自选股的开发心想,微信团队的兄弟还没睡,我们怎么能睡?实习生心想,自选股的兄弟还没睡,我决不能先撤。
后来,天就亮了。出自灵魂画家 Y 之魔手的这个笑脸,陪伴不下班的实习生度过了那几个不眠的夜晚。
B1号楼柱子表面的笑脸,By Y
和自选股一样,在小程序测试中和发布后,大量开发者的建议,为小程序的快速优化与稳定,起到了至关重要的作用。
生命不息,Debug不止
距离小程序发布还差几小时,B1号楼的庆功宴已经备好,一个意外小插曲发生了。
一个高校学生利用 bug 让自己的小程序提前上线了,曾经负责开发者工具、现在已经是 team leader 的 L 并没有感到不悦,只是告诉这位同学:“你很厉害哦,可是我们暂时要先把你下掉啦,拜拜。”
对于尚在襁褓的小程序来说,bug是一个严肃却被包容的存在。每一次版本发布,都意味着大量的bug反馈需要解决,但也意味着小程序有机会变得更加完美。
凌晨时分,小程序正式对外发布了。
谁都知道这只是一个起点。庆功宴之后,来不及休息,所有人都全身心投入 debug 的工作当中。
面对发布之后的外部“唱衰”,L 说他感觉还是稳的。“初期的小程序只是在蓄力,等到能力开放到足够的程度,开发者积累到一定数量,生态自然会慢慢建立起来。这个过程并非一蹴而就的。”
小程序 · 员
“对于小程序开发者来说,我们是乙方。”
无论是 K 、H 、Y 还是 L,都一直在关注和改善“小程序员”们的开发体验,希望能够降低开发门槛,让小程序开发变成一件轻量的事情,甚至“让天下人都能够拥有自己的小程序”。
连小朋友都可以开发自己的小程序,是开发团队的心愿,“那时‘小 · 程序员’就是真的‘小程序 · 员’了。
不过这也是有区别的的。说到这里,K 说了一个在程序员中流传的段子:
史上最牛逼的程序员简历: I wrote Python.
而这位最牛逼的程序员,就是 Python 的作者本人。
讲完这个段子,K 微笑了一下,似是有所期待。年轻的 K 、头发越来越少的 Y 、日益变胖的 H 、“生性腼腆”的(自称)L 以及年轻的小程序,未来都还有很长的路要走。
此处致谢并恭喜
小程序部门的每位同学、微信客户端的每位同学、微信事业群的每位同学,以及150万外部小程序员,是你们的努力让小程序生态更加完整和美好。
荣誉属于你们所有人。
但是,可能真的如 Y 所说,作为小程序员,真的不是很关心别人对我们的评价,可能更关心别人对我们的代码的评价。