孫悟空和Web爭霸
小李飛刀李尋歡的孫子叫李壞,世間絕頂高手。但在一個夜晚,他癡癡地看著一把飛刀像一道美妙的月光插進自己的左胸?!?《飛刀又見飛刀》
上篇我們聊鴻蒙(鏈接)的時候,花了很大篇幅說方舟。那么這個思路到底對不對呢?做過學術(shù)的人都知道,什么想法都是你第一個那是很難的。我們看看業(yè)界有沒有類似的嘗試。
有個叫FireMonkey的東東實現(xiàn)過類似方舟的理念,而且Win/Mac/iOS/Android統(tǒng)統(tǒng)支持。這個可以翻譯成“孫悟空”的玩意兒,正是現(xiàn)在Delphi的一部分。
從Windows 11看,微軟除了支持傳統(tǒng)的Win32、.NET程序外,還支持Web程序PWA和安卓App 。再看最新發(fā)布的Windows365,整個操作系統(tǒng)都可以作為SaaS在瀏覽器里跑。
各種平臺的邊界開始變得模糊,硬件架構(gòu)的鴻溝逐漸被各種編譯器翻譯器填平。
本文按慣例扯亂一點,順便續(xù)寫一下《程序員之神》(鏈接),即Anders Hejlsberg以外的那些諸神故事。閱讀下去的前提,是知道Anders是誰,那個代碼飛刀例不虛發(fā)的神?!皩O悟空”的事兒,我們在文章后面再聊。
一、Delphi從崛起到衰落
很多人說Anders離開是Borland衰落的原因,但這絕對是夸大了。重量級的Delphi3研發(fā),Anders并未主要參與。Anders在Delphi發(fā)布一年后的1996年就去微軟了,Delphi由其最重要的戰(zhàn)友Chuck Jazdzewski領(lǐng)導到2004年,所以Chuck應(yīng)該算第一功臣。
從1995年以后的七八年時間,Delphi一直給微軟Visual Studio強大的壓力。張小龍也在那期間用Delphi開發(fā)Foxmail一戰(zhàn)揚名,后來他用Web技術(shù)做了郵箱、微信、還有小程序和諸神匯合,我們暫且不表。有個小八卦的是,據(jù)說“Fox”是致敬令狐沖。
微軟Windows的新版本總是給Borland沉重打擊。如同OLE導致Borland C++敗北,.NET使得Delphi跟不上腳步,畢竟Borland沒有那么多資源做復雜的升級。
尤其在那時,Java的重要性已經(jīng)明顯超過了Windows原生程序開發(fā),Delphi在Borland內(nèi)部逐漸失寵。
二、Blake、Chuck和Danny(BCD)
上世紀末,Borland集中火力在JBuilder上,立Java奇才Blake Stone為CTO,據(jù)說這導致了Chuck離職去微軟。Danny Thorpe接管了Delphi任總架構(gòu)師。
Danny本身是個勵志故事。他加入Borland時只是個助理測試員而且做了5年測試,但很幸運他是給Anders和Chuck做測試。
這告訴我們崗位不重要,和誰在一起更重要。
喜歡自己燒瓷碗的Danny說自己在Delphi 5的時候才開始去看編譯器,傳說那時沒人敢動Anders的代碼。而Chuck的早期主要工作是VCL組件,“組件”正是Delphi震動天下的殺器,也引發(fā)了后來Java、C#等后來開發(fā)工具的模仿。
三、從JBuilder到VS Code
得益于Blake Stone的勇氣,JBuilder相當于是用Java重寫的Delphi,這使Java程序更純正兼容。在微軟Visual J++提前出局的情況下,Borland JBuilder不負所望擊敗了幾乎所有對手,包括IBM VisualAge for Java。
在2001年IBM接受了失敗,把VisualAge for Java轉(zhuǎn)給開源的Eclipse。一位遠在瑞士的軟件工程神級人物Erich Gamma加入了Eclipse團隊,隨后翻盤戰(zhàn)勝了JBuilder。
聰明的微軟挖走了Blake Stone,無心戀戰(zhàn)的Borland隨后賣掉了IDE產(chǎn)品線。
遠在捷克的IntelliJ趁機靠著專注于不斷優(yōu)化IDEA等產(chǎn)品走出商業(yè)IDE的成功之路。IntelliJ(現(xiàn)在叫JetBrains)是三個俄羅斯程序員在互聯(lián)網(wǎng)泡沫破滅時創(chuàng)建的。厲害的是,這幾位創(chuàng)始人一直拒絕外部投資和上市,這使他們避免了Borland的覆轍。
財大氣粗的微軟再從IBM把Erich Gamma挖走(湊齊了ABCDE五顆龍珠?),而且許諾Erich仍在瑞士工作而且自建團隊。Erich則再次完成了自我顛覆,用Web技術(shù)(Electron)為基礎(chǔ)打造出另一神作VS Code。
我們以前提到過貝索斯允許Chris Pinkham在南非工作做出AWS EC2,Anders遠在丹麥給Philippe Kahn工作,加上張小龍保持和Pony Ma的距離。這些故事告訴我們:如果你真心牛,可以勇敢要求老板讓你夏天在麗江、冬天在三亞工作。
四、Web再聚首
VS Code的設(shè)計思想完全和Visual Studio不同,Web技術(shù)驅(qū)動是其核心,我們也能看到Web技術(shù)成為開發(fā)工具大神們再次碰撞的競技場。
Chuck和Danny加入微軟后在Windows Live團隊合作過,但微軟社交產(chǎn)品并不成功,兩人后來又離開了。
Chuck目前在Google工作,在轉(zhuǎn)到安卓前端做Jetpack Compose之前,Chuck參與的工作居然是和Anders的TypeScript配合打造Angular 2。
Angular反過來也促進了TypeScript的發(fā)展。
Angular的競爭對手是Facebook陣營的React和后來以中國陣營為主的Vue。加上VS Code,程序員的大神們再次聚首。
Vue的作者尤雨溪也出身Google。他是一個閃耀的例子,顯示了中國強大以后,在新一代衣食無憂的情況下,也會像歐洲那樣產(chǎn)生因愛好而在編程界封神的情況。
五、Borland為什么失敗
Borland的ABCD四位大神都被微軟挖走,Delphi也最終被賣掉。
Danny在Quora上曾經(jīng)回答B(yǎng)orland為什么會失?。核J為Borland的管理層想從百萬量級的程序員客戶轉(zhuǎn)到少數(shù)量高收入的企業(yè)級客戶,方向上出了問題。而Borland被董事會踢出局的傳奇創(chuàng)始人Philippe Kahn點了贊,Kahn認為Borland應(yīng)該把目標放到億萬用戶的桌面應(yīng)用上。
Kahn出身是逃到法國的猶太家庭,他到美國淘金時沒綠卡也沒工作(相當于半非法移民),就自己開了公司雇了自己。Kahn在瑞士ETH上大學時老師是Pascal語言的發(fā)明人Niklaus Wirth,這使他對Anders的Pascal編譯器慧眼識珠。
Kahn是最早采用高質(zhì)量軟件定價很便宜策略的企業(yè)家,Borland的產(chǎn)品大都是迅速搶占了市場。在Delphi誕生前,Borland曾在多個戰(zhàn)線和巨頭們開戰(zhàn)。
Borland的dBase數(shù)據(jù)庫直接挑戰(zhàn)微軟的Access和ForPro。Borland的Quattro Pro和Lotus 1-2-3的法律大戰(zhàn)直打到聯(lián)邦最高法院并罕見地4:4戰(zhàn)平,結(jié)果微軟的Excel漁翁得利。
作為曾經(jīng)單挑比爾蓋茨的一代梟雄,Kahn此后仍執(zhí)著于觸達最終用戶的應(yīng)用而與Web漸行漸遠,乃至流于平庸。
六、孫悟空和Xamarin
Borland把Delphi等開發(fā)工具賣給Embarcadero以后,新主人在隨后十三年居然做到了一年一更新。
十年前的Delphi XE2中開始出現(xiàn)了FireMonkey(孫悟空),它實現(xiàn)原生代碼的跨平臺,就是用一套Pascal代碼編譯就可以在蘋果和安卓甚至Windows上跑。但每一個App都要內(nèi)嵌一套FireMonkey runtime。
FireMonkey和方舟一樣證明了靜態(tài)編譯在技術(shù)上是可行的。但是FireMonkey是否能靈活對付不同的屏幕尺寸和各種兼容性問題,甚至靜態(tài)編譯是否有意義,仍是充滿爭議的。方舟倒是有個FireMonkey無法具備的優(yōu)勢,就是可以提前把runtime內(nèi)置到鴻蒙里,這樣啟動App速度能快很多。
微軟為了讓.NET可以侵入安卓、iOS包括Linux等,有個有點像FireMonkey的東西叫Xamarin。用這個東西不需要會Java,只要會C#也能編安卓App。Xamarin和FireMonkey或者方舟的區(qū)別在于,它更像個即時語言翻譯器。
Xamarin由Nat Friedman和一個墨西哥兄弟Miguel de Icaza搞的,之前叫Mono。這倆老兄也不是一般人,Nat Friedman目前是GitHub的CEO;Miguel是大名鼎鼎的GNOME的創(chuàng)始人之一,而在2014年Anders宣布.NET Core開源時,Miguel就站在旁邊,并受任.NET基金會第一任董事。
七、融合
天下大勢合久必分,分久必合。在多種語言多種平臺百花齊放后,Web技術(shù)逐漸眾神匯聚的地方,也給我們帶來更多的細分領(lǐng)域:PWA、AMP、SPA、WebAssembly...
尤其WebAssembly,由于實現(xiàn)速度在數(shù)量級上的提升,逐步侵入原本認為不可能的領(lǐng)域,讓瀏覽器成為一切的中心成為可能。
Web技術(shù)在手機App的使用也是現(xiàn)在的很多人爭論的話題。Web技術(shù)天生是開放的,但原生App性能好,更重要是可以很流氓,更容易控制權(quán)限和流量。
現(xiàn)階段原生和Web App誰也殺不死誰,很多Web App套上原生的殼,互相融合互相欺騙。
八、小結(jié)
在這篇文章里,我們提到了丹麥人、瑞士人、法國人、南非人、墨西哥人、俄羅斯人、當然還有中國人。對軟件史沒有興趣的朋友,估計對這些名字已經(jīng)痛苦不堪。
碼農(nóng)的生活有點像多神教:學不完的經(jīng)書,拜不完的眾神。
Delphi像中了飛刀的李壞,他沒有死,但江湖里再沒人提他的名字。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。