我的名字叫鏢,是飛鏢的鏢,不是肥膘的膘
八年前,我帶著改變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之車,你準備好啟程了嗎?
本文首發於「趣你的肖蜀黍」公眾號,用最有意思的方式提高認知,根本停不下來。