前陣子,The Information 發表了一篇非常有趣的報告,稱 Facebook 決定取消自家的虛擬與擴增實境作業系統(內部代號為「XROS」的專案),轉而支持「VROS」。後者是源自於 Android 的一套系統,他們的Oculus頭戴顯示器用的就是它。當我看到這篇文章時,不禁將 Facebook 的兩個內部作業系統專案與 蘋果iPhone 作業系統的起源拿來進行比較:
我在想這是不是有點像蘋果 iPhone 的早期努力。那時候蘋果內部有兩支相互競爭的作業系統團隊:一支是由 史考特·福斯托(Scott Forstall) / 伯特蘭·賽萊特(Bertrand Serlet)領導的團隊,他們試圖把 Mac OS X 精簡一下,移植到手機上運行。另一支是東尼·法戴爾(Tony Fadell) /喬恩·魯賓斯坦(Jon Rubinstein)/史蒂夫·薩科曼(Steve Sakoman)領導的團隊,他們打算將 iPod 的嵌入式 Linux 作業系統擴展為手機作業系統。也許 Facebook 那裡發生的事情與其說是「我們放棄了自己的新作業系統,就用 Android好了」,不如說是「我們在 Android 上開發自己的作業系統的努力效果更好,不如繼續用那個吧。」
不過,到了第二天,我意識到這不是一個好的,或者說公平的比較。我還意識到,把嵌入式 Linux 專案說成是「東尼·法戴爾 /喬恩·魯賓斯坦/史蒂夫·薩科曼的領導」是錯誤的——尤其是考慮到法戴爾在該專案所扮演的角色。
據我所知, 法戴爾支持該專案說法源自2011年《商業週刊》 一篇關於史考特·福斯托(Scott Forstall)(「蘋果的魔法師學徒」)的特寫文章,作者是Adam Satariano 、Peter Burrows 以及 Brad Stone:
領導另一支團隊的是法戴爾,他幫助開發出了 iPod。作為又一位神童, 2005 年,36 歲的法戴爾成為了蘋果有史以來最年輕的高級副總裁之一。據蘋果前員工稱,這場競爭開始變得白熱化, 法戴爾和福斯托在人才、資源、注意力以及名聲等問題上爭論不休。
我上個月連結並再次引用這篇文章時,我略掉那篇文章的結尾,其中包括了一段來自法戴爾的聲明,立場很堅定:
「 喬恩·魯賓斯坦與史蒂夫·薩科曼離開蘋果時,我接手了他們這項競爭激烈的 iPhone OS 專案。在評估了修改後的 Mac OS 是開發 iPhone 的合適平台之後,我迅速就停掉了這一項目。很顯然,要想做出最好的智慧型手機產品,我們需要利用數十年來在 Mac OS 上投入的技術、工具與資源,同時避免項目之間不必要的競爭。」
法戴爾本人在推特上插嘴說:
你看到的所有內容都不要信,尤其是 @ gruber的這篇文章。沒有比這更扯的了。我同意,他寫的東西一般都不錯。我試過聯絡他好幾次,但......
後來我確實與法戴爾取得了聯繫。但我意識到,在與他聯繫之前,我本該瞭解得多一些。蘋果一直是秘密的運作模式,但 iPhone 的起源故事已被多個來源多次講述過。長話短說:法戴爾的說法說得通; 《商業週刊》關於法戴爾領導的嵌入式 Linux 專案的說法說不通。 (不過, 《商業週刊》關於福斯托 與 法戴爾是政治對手的說法肯定說得過去。史蒂夫‧賈伯斯領導下的蘋果殘酷的內部政治——強烈個性,極其自負——各種紛爭(參見下面的時間線)儼然一出像《繼承之戰》(Succession)那樣的大戲。)
在蘋果工作的時候,肯尼斯·寇西恩達(Ken Kocienda)曾做出了當初 iPhone 觸控式螢幕鍵盤,他的那本《創意選擇》(Creative Selection) 既是一本引人入勝的讀物,又是極好的歷史資源——他提到了我關於 蘋果的那篇《iPhone OS專案的決鬥》,並在推特上寫道:
那篇文章說:「然而,賈伯斯並沒有馬上做出選擇,而是讓兩支團隊在『烘焙』大賽中相互競爭。」
當大家聽到「烘焙」這個詞的時候,他們可能會想像兩支團隊各自做出一款完整的OS供品鑒測試。但情況並非如此。
我記得iPhone手機作業系統的「烘焙」大賽只持續了幾個月(大概是2到4 個月?),而從寫出UIKit的第一行程式碼到史蒂夫‧賈伯斯在舞台上舉起 iPhone,整個iOS的開發週期大概只用了1年多。
我們對手機作業系統的探索更像是概念驗證的決鬥——所以我同意DF那篇文章的標題。考慮到像作業系統這樣重要專案的時間尺度,我們很快就做出了選擇,而且當我們對後來成為iOS開展後續工作時,我們並沒有回頭看。
一位長期在蘋果工作的工程師私下寫信給我,並附上了法戴爾twitter貼文的連結:
作業系統決鬥這樣的寫法是一種常見的比喻。實際情況並非如此。
史蒂夫‧賈伯斯以擅長早早選出獲勝的賽馬著稱。我聯繫過的一些消息來源還提到了大家不怎麼提到的果斷。賈伯斯的品味是出了名的,但他對直覺的信心也非同尋常。他決定支援福斯托,用 Mac OS X 作為 iPhone 作業系統基礎,這個決定顯然是正確的,但也是很快就做出了的。
多年來,Facebook對自家 AR/VR 作業系統戰略的態度總是模棱兩可,這完全有可能並不是馬克‧祖克伯本身優柔寡斷的跡象,而是整個行業趨勢的指標。是因為害怕斷了想法的後路。每一個想法都應該深入探索——還有這麼多錢可以花,為什麼不呢? FOMO(錯失恐懼症)嘛,又是大公司,手握數兆美元的股份。
但蘋果給 iPhone 作業系統舉辦的「烘焙」大賽只持續了幾個月,牽涉到的工程師和設計師最多幾十人。據 The Information 報導,Facebook 的 XROS 專案持續了四年多,到去年 11 月關閉時涉及的員工多達 300 多名。比較這兩次「烘焙」大賽會很有趣,但這種有趣僅限於比較它們舉辦的不同之處。
法戴爾曾經是——現在也依然是——一位硬體專家,從各方面來看,是他領導了 iPhone 的硬體專案。作為一款產品,初代的 iPhone 展現出蘋果硬體和軟體彼此成全的整體做法,但在工程的層面,iPhone 硬體和軟體團隊幾乎是完全孤立的,只有賈伯斯和他最信任(也很有才華的)的幾個高級管理人員知道整個故事。
另一個曾在 iPod 軟體團隊工作過幾年的消息來源,來自電子郵件的回復:
iPod 作業系統一直都是一團糟。這款作業系統是在 Portal Player、 Pixo以及我們編寫的程式碼基礎上做出來的,這些全都混在一起了。它沒有記憶體保護或獨立的進程,就是一大堆程式碼湊到一塊,跟經典的 Mac OS 一樣。一旦某個執行緒崩潰,整個系統就全部完蛋了。時間安排一直都很急迫,他們告訴我們,為了保證馬上交貨,一切必要的事情都得做,做了再說,以後再打掃殘局。只不過後來已經沒有後來了,而且程式碼也變得越來越難以維護。
蘋果拿得到了Pixo的程式碼,Pixo破產的時候蘋果買了後者的 IP。但是蘋果和Portal Player還在打。 Portal Player 的胃口更大,想要的不只是ARM元件與支撐軟體的批發商而已,它還想比這更成功些。 蘋果後來決定放棄 Portal Player,所以我們刪掉了Portal Player所有的程式碼,開始自己重寫。
這給 iPod Linux 愛好者提供了一個機會,他們提出了一個假設,如果我們完全拋棄掉笨拙的iPod 作業系統,然後用他們已經在跑的 Linux 取代如何?其實有這麼一群 Linux 愛好者,他們總覺得任何技術問題都可以在 Linux 裡面找到答案。有個專案就是要創建一套 Linux版的 iPod 作業系統,用來取代我們一直在跑的那個破舊的 iPod 作業系統。我覺得應該是 [史蒂夫] 薩科曼在負責這項工作。他們把專案推進到了展示階段,但是從很酷的技術演示走到發布作業系統有很長一段路要走,認真審視一下所涉及的工作量很令人沮喪。管理層決定還是堅持用他們已經瞭解的這頭惡魔,這個決定可能是正確的。
大約在同一時間,蘋果開始開發手機。 法戴爾負責硬體部分。在設計出可以大規模量產的硬體方面,他是真正的行家。 法戴爾設計初代的 iPod 的目標之一就是為了便於製造,iPod的產量在蘋果製造的所有硬體當中是最高的,而這個又轉化為高利潤。
透過把各種線索拼湊到一起(我已經盡力了),初代 iPhone 開發的時間表大概是這樣的:
- 2004 年初:蘋果致力於與摩托羅拉,以及最終的 Cingular 合作,開發命運多舛的Rokr手機。這款手機由摩托羅拉設計和開發,支援播放 iTunes Store 裡面的音樂。 (但不支持OTA下載或購買!)賈伯斯當時的想法是,他們不想自己做手機,因為他認為蘋果公司沒辦法按照自己的方式做這件事,沒法做他們自己想要的那種手機,因為電信商對與手機相關的每一個細節都可以完全控制。但是,蘋果又不想將快速增長的音樂業務拱手讓給能播放音樂的手機。於是他們做出了妥協:讓摩托羅拉設計和製造一部可以播放 iTunes 音樂的手機。 (賈伯斯在公開場合曾多次把無線運營商叫做「孔口」(orifices)。)
- 2005年上半年:在意識到Rokr這款手機實在是太糟糕之後,蘋果決定全速前進,打造一款真正的蘋果手機。 (參見 Brent Schlender 與 Rick Tetzeli 合著的《成為賈伯斯》第 12 章。)但對於這款手機會是什麼樣的他們並不確定。嵌入式 Linux 專案與精簡版MacOS項目之間曾進行過短暫的「烘焙」大賽。嵌入式 Linux 專案由Sakoman牽頭,但在內部得到了 Jon Rubinstein 的支持。
- 2005 年 6 月:蘋果令人吃驚地宣布 Mac將從 PowerPC 過渡到 Intel 的x86 架構。這個與手機項目沒有直接關係,但突出了此時蘋果內部正在發生的事情。當蘋果的高級管理人員正在硬體、軟體和設計方面同時發力,努力打造 iPhone 時,Mac 並沒有被忽視,同時 Mac 也進行了徹底的架構變革,最終推動這款PC實現了空前的普及與成功。
- 2005 年夏:蘋果開始做福斯托領導的精簡版MacOS iPhone 軟體專案,並開始攻關基於觸控式螢幕的硬體設計。沒有圓形觸摸轉盤,沒有硬體鍵盤,沒有手寫筆——只有一個觸控式螢幕和幾個硬體按鈕(Home鍵、電源、音量)。 Kocienda在《創意選擇》的第 6 章(「鍵盤德比」)記錄了這條時間線——蘋果全力以赴,開始為 iPhone 提供一種基於軟體的文字輸入法,但至於怎麼才能保證行得通,當時他們還沒開始想出什麼好的設計方法。他們賭自己能想出辦法——最終他們賭贏了。
- 2005 年 9 月 6 日:蘋果在舊金山的一次活動上推出了 iPod Nano、iTunes 5 以及 Motorola Rokr 。當時不管是公眾還是摩托羅拉, Cingular,他們對蘋果正在全力打造打造自己的手機毫不知情。拋開舞台展示的時候出問題不談,至少可以這麼說,難怪賈伯斯會對Rokr缺乏熱情。因為在Rokr發布的幾個月前,他就已經開始著手蘋果自己的手機專案了。
- 2005 年 10 月 14 日:蘋果宣布提拔提姆‧庫克(Tim Cook)為首席營運長,喬恩·魯賓斯坦退休了(2006 年 3 月 31 日生效),東尼·法戴爾則晉升為 iPod 部門高級副總裁,法戴爾在手機專案硬體工程的領導地位進一步得到加固。 (2007 年 10 月,魯賓斯坦加盟 Palm 擔任執行董事長,並於 2009 年成為首席執行長。)
- 2005 年 11 月:史蒂夫·薩科曼離開蘋果。
- 2006 年:專案各種緊鑼密鼓。
- 2006 年末:融合。假日季前不久,軟體團隊終於看到自己的工作在實際的 iPhone原型上面跑了。 (參見《創意選擇》, p. 208。)在此之前,他們一直是在大塊頭的「Wallaby」原型設備上面進行測試,那玩意兒跟實際的iPhone 幾乎沒有一點相似之處。據推測, iPhone 硬體工程團隊的大多數人,也是在大概在同一時間內才第一次看到了實際的 iPhone 軟體是怎麼樣的。
- 2007 年 1 月 9 日:史蒂夫‧賈伯斯在麥金塔世界博覽會(Macworld Expo)上發布 iPhone。
- 2007 年 6 月 29 日:iPhone 開始銷售。
2008 年 11 月,法戴爾離開蘋果,並於 2010 年創立了 Nest Labs。他與福斯托之間的私人恩怨在蘋果公司內部眾所周知。 很多人認為,法戴爾支持 iPhone OS走嵌入式 Linux OS路線,但這個看法是不正確的,其核心的起點和終點都是他們在蘋果內部的政治恩怨。福斯托的專業知識和經驗完全是在 Mac OS X 上面,這一點可以追溯到他作為 NeXT 早期員工的日子。如果嵌入式 Linux 項目獲勝的話,福斯托很可能不會參與手機專案,而且iPhone 的軟體很可能就落入到法戴爾的職權範圍。所以: 法戴爾和福斯托是競爭對手,為手機開發作業系統的兩個專案之間有了一場「烘焙」大賽, 福斯托率先推出了其中一個系統, 自負的法戴爾一定支援了另外一個。故事聽起來不錯。然後,在 2011 年《商業週刊》的一篇特寫文章裡,福斯托隨口說了這麼一段話,於是一個迷思就誕生了。
如果法戴爾支持了做嵌入式 Linux/iPod OS 的努力的話,鑒於 Mac OS X 版的 iPhone OS 的決定是如此的成功,事後他會淡化/追溯修訂自己所扮演的角色就說得過去了。但就算把法戴爾自己版本的這個故事放在一邊,事情也是說不通的。 薩科曼和魯賓斯坦是做嵌入式 Linux 作業系統的帶頭人,兩人分別於 2005 年底 / 2006 年初就離開了蘋果公司,而當時 iPhone 專案在公司內部才剛起步。與此同時, 法戴爾被提拔為公司極少數的高級副總裁之列,並負責 iPhone 的硬體工程。 法戴爾和福斯托也許都不喜歡對方,但他們是開發出 iPhone左膀右臂,一個管硬體,一個管軟體,陰陽結合——兩人都是贏家,但在蘋果都待不久。
有兩個故事可以說明他們之間的競爭。在初代 iPhone 推出期間,賈伯斯曾演示過給電話app的我的最愛清單添加和刪除連絡人的功能(這個功能至今仍基本保持不變)。當時他添加的號碼是菲利普·席勒(Phil Schiller)的。而刪除的號碼是東尼·法戴爾的。摘自Adam Fisher 2017 年為《連線》撰寫的法戴爾特寫文章:
賈伯斯在示範 iPhone 的通訊錄功能時,展示了他是怎麼一鍵刪除連絡人的——而他刪掉的連絡人是「東尼·法戴爾」。對於這個手勢公眾可能沒仔細想過第二次,但觀眾裡面的那些蘋果工程師完全清楚發生了什麼。 Grignon 說:「觀眾一笑置之,但我們每個人都知道怎麼回事。從很多方面來說賈伯斯是很殘酷,法戴爾跟他的關係已經越來越不穩定了。」 法戴爾堅稱他與賈伯斯的關係依然穩固,但他似乎被福斯托的花招打敗了。 法戴爾說:「那個示範腳本是史考特·福斯托做的。」 (不過一位熟悉演示的消息人士稱,賈伯斯當時是即興發揮。)
我沒法驗證演示腳本是不是福斯托做的(或者甚至只做了其中的一部分),但綜合多個來源,我的理解是,這場展示的任何內容都不是賈伯斯即興而為。 2007 年 1 月那時候,iPhone OS 還有很多的漏洞——而且還沒有完全做好——以至於展示必須保證四平八穩,不留漏洞。即便賈伯斯完全照著腳本做完了展示,大多數的 iPhone 的工程師依然感到驚訝,或者至少是大大鬆了一口氣,因為手機在展示的時候一次都沒有崩潰過。賈伯斯展示的時候刪除的連絡人是法戴爾,這可能不過是福斯托暗中想惡搞一下而已,但注意到這一點的可不只是觀眾裡面的蘋果工程師。列表裡面本可以放一個虛構的連絡人「Johnny Appleseed」供賈伯斯刪除,但他們並沒有這麼做。
關於iPhone 1 月 9 日那場發布會,與之形成鮮明對比的是 6 月 29 日的 iPhone 發布會,來自 Fred Vogelstein 2013 年的《纏鬥》(Dogfight):
蘋果製造了所有的噱頭,又充分利用了它們。在iPhone發售當日,蘋果公司把它的高級主管們派駐各大城市的各個商店,目睹這一盛況並協助激發大眾的熱情。全球行銷負責人菲利普·席勒去了芝加哥,強尼·艾夫(Jony Ive)和他的設計人員則去了舊金山。
史蒂夫‧賈伯斯去的商店自然是帕羅奧圖市中心的那家,那家店坐落在大學路和基卜林街的街角上。他家距離那裡1.5英里,只要他在家,就常常不告而來。在他抵達現場時,那裡已經聚集了與這一盛大場面相稱的一群高科技界名人。蘋果公司的聯合創始史蒂夫·沃茲尼克(Steve Wozniak)以及早期員工比爾·艾金森(Bill Atkinson)和安迪·赫茲菲爾德(Andy Hertzfeld)已悉數到場。但賈伯斯似乎自己內心裡也有一團怒火要發洩,跟Grignon等人一起(包括法戴爾和福斯托在內)為此專案工作的一位工程師說:「Mac電腦的原班人馬重聚一堂,這真是太棒了。然後賈伯斯走近東尼 [法戴爾],他們倆在商店的角落裡聊了一個小時,把福斯托晾在一邊,就是為了激怒他。
「直到那一天為止的此前6個月,其間所有的事情都是法戴爾的錯。任何硬體的問題、出貨延遲,或生產問題——全都是法戴爾的錯。福斯托絕不會犯錯。但那一天是媒體評論刊出的日子,iPhone的電子郵件工作不佳,但人人都愛硬體那部分。所以,現在福斯托是壞人了,法戴爾則成就非凡。這真有意思,因為賈伯斯故意背朝著福斯托,法戴爾在當時卻能看得見福斯托。我可沒開玩笑。福斯托臉上的表情真是太精彩了,就像是他親爹跟他說不再愛他了一樣。」
這又是一個故事,出自一本書,一位不知名的工程師寫的書,但是——怎麼說呢,賈伯斯就是這麼的反復無常。
最後一則軼事,來自我上面引用的同一來源,他在蘋果公司工作過幾年,擔任 iPod 軟體工程師:
Rubinstein對我這個等級的工程師非常友善,但我敢肯定他跟同級打交道肯定效率高得多了。我記得有一年,我們的 iPod 發貨晚了,出現了一個糟糕的快取記憶體控制錯誤,我們一直都找不到根源。那已經是星期六晚上的午夜,大樓裡擠滿了想追查出這個漏洞的工程師。 Rubinstein走過大廳,把頭探進辦公室,漫不經心地問我們進展如何。我相信賈伯斯一定給了他巨大的壓力,要趕時間讓iPod交貨,但是你在調試的時候,身後有位高級副總裁在盯住是幫不了忙的。他很聰明,意識到這一點之後就離開了。
但法戴爾就不一樣。他的野心表現得太明顯了。他對蠢人沒有耐心。如果你讓他失望過,不會再有機會讓他再次失望。 法戴爾和福斯托 正面交鋒的結果是, 福斯托贏了,法戴爾離開了蘋果。
加入電腦王Facebook粉絲團