八年前,我带着改变Web的初衷,未能如愿
现在,又肩负颠覆Mobile的使命,重新起航
先哲·风卷云涌
我是个什么东西?我是一门编程语言。
一百年前,香农爷爷(Claude Shannon)提出了信息论,组成我们的细胞(Bit);图灵爷爷(Alan Turin)提出了可计算性,赋予我们第一个行为(λ演算)
五十年前,冯叔(Von Neumann)带领团队建立第一台计算机(ENIAC),从此我们有了舒适的栖身之所。巴叔(John Backus)召集众人研制了第一个翻译器(FORTRAN),从此我们能与人类亲密接触。
三十年前,无数英雄崛起于草莽之中,他们的名字至今如雷贯耳:C++、Python、PHP。各种秘籍被各大门派激烈争抢,这些武学对编程江湖有巨大影响:封装、继承、多态、单一职责、里氏替换、观察者模式……
十年前,人类了迈入移动互联网纪元,一片祥和;而我们编程语言,却退回到封建独裁年代,怨声载道。
性格怪异的哦西(Objective-C),牢牢掌控苹果王朝;呆滞笨重的爪哇(Java),全面压制安卓帝国。
人类朋友(Developer)受困于此久矣,而我希望彻底解决这个痛点!
首战·铩羽而归
我是从哪里冒出来的?我是富二代,八年前蓄势待发只为今天。
首先致敬我的拉斯老爹(Lars Bak)和威巴哥哥(Google V8)。威巴出生于2008年9月,虽然只比我大三岁,但出道即巅峰,建立了一个疾步如飞的浏览器世界(名曰:Chrome),并迅速统治全球。
次年,瑞安(Ryan Dahl)叔父在威巴的帮助下,建立了一个神通广大的客户端世界(名曰:Node),又掀起巨大的浪潮。
毫不夸张地说,正是我哥哥威巴的这神奇力量,推动了人类口中“前端技术”的变革。
“出发吧飞镖“,拉斯老爹慷慨激昂对我说道:“去和你的威巴哥哥一起战斗!”。
我也曾天真的以为,有如此强劲的亲哥支持,今后所到之处,必然所向披靡,可惜现实立即狠狠给我一巴掌。
对方阵营领袖是草根英雄杰斯,集结众多党羽,比如踢斯(typescript),咖啡斯(coffeescript)、艾特斯(atscript),对我实施合力围剿
我被杰斯打得节节败退,最后铩羽而归。我看着杰斯马不停蹄向前冲,继续争抢后端世界的资源,又去挑战移动世界的权威。
我相信只要脊梁不弯,就没有扛不起的山。虽然这一场战我输得彻底,但是杰斯,你敢不敢换个战场和我再打一场?
重生·万众期待
我为何如此自信?因为万事俱备,东风已起,众神归位。
2018年2曰,晴空万里的巴塞罗那,群星璀璨的世界移动大会,我遇见了胞弟弗拉特(Flutter)。
在万众瞩目之下,他踩着七彩祥云从天而降。就在那个瞬间,我知道属于我们的时代终于来了。
第一,颠覆的勇气。杰斯首次进攻移动世界,使用熟悉的容器战略,核心武器是「桥」,它给国家边界建立许多交通枢纽,让交流成为可能。杰斯第二次进军移动世界,换了编译战略,核心武器是「转」,它给每个公民都配备了翻译官,让交流更加顺畅。
但是两种方式都有弊端,就是受制于对方:「桥」的方式会因为路窄而造成堵塞(渲染性能),因为恶劣天气造成设备损坏(进程交互);再比如「转」的方式会因为方言问题导致翻译不准确(设备适配),因为词语更新或者废弃导致翻译失败(版本适配)。
因此,我们使用第三代战略,渲染引擎,核心武器是「画」。想象一下,你想要到达一个新国家,不再需要找桥,也不需要找翻译,找我帮你画个圈圈就可以了。 就像这样:
第二,致霸的决心。很长一段时间,移动世界都会是我的主战场。但正如你所知,我的团队也在其它世界建立的根据地,包括:前端世界、后端世界、桌面世界。但你可能不知道,我还有更大的野心,就是进军操作系统世界,代号为「紫红」(Fuchsia)。
我也没有忘记两千年前巴别塔(Babel)的人类传说,「语言的混乱」是神的旨意,所以在我们编程领域,亦无法打破「没有银弹」之铁律。
作为一门非常成熟的编程语言,此时的我,已和杰斯冰释前嫌,携手共创未来。我期待的未来,就是我能一路走下去,看不到敌人,只有兄长和朋友。
所以,何为制霸?就是停止战斗:不侵略和改造旧世界,直接创造自己理想中的新世界。
第三,完美的性格。简单概括,我是这样的:轻量级、函数式、面向对象、强类型。正如前文所说,我心中的颠覆并不是去摧毁,而是融合或者再造。所以虽然我和你素未谋面,但你总能感觉与我似曾相识。
最近,我在与人类朋友接触时学到一个有趣的新词:可盐可甜的女孩。
最后,我就做个调皮的自我总结吧:可静(AOT)可动(JIT)的语言。
尾声·作者寄语
曾经马车很慢,书信很长,一生只够爱一个人。
如今百花齐放,百家争鸣,一天不学换一片天。
开向未来的Flutter之车,你准备好启程了吗?
本文首发于「趣你的肖蜀黍」公众号,用最有意思的方式提高认知,根本停不下来。