週末就是我的一個小小紀念日了。在 2000 年 1 月 5 日,Steve Jobs 在 Macworld Expo 展覽會上向全世界揭開了 Mac OS X 全新的 Aqua 使用者介面。

《水瓶座時代》

在簡報接近尾聲時,他展示了 Dock。大家都認識 Dock,它一直都在 Mac 螢幕的底部(當然,如果你把它放在正確的位置的話),彷彿已經存在很久很久了。

「現在我要向各位展示 Mac OS X 最酷的功能之一......」

他所展示的版本與最終發行的版本有很大的不同,圖示周圍有方形邊框,使用者的個人資料夾中還有一個實際的「Dock」資料夾,裡面存放著各種捷徑。

我很清楚這一切——因為在之前的一年半時間裡,我一直是負責開發它的主要工程師。就在那一刻,我正在愛爾蘭 Apple Cork 的一個小隔間裡觀看這場發表會。這是我在 Apple 短暫的職業生涯中第二次默默向展示之神祈禱,希望一切順利。補充說明,當時的我才二十幾歲,緊張得要命。

Dock 並不是我設計的——這是 Steve 親自延攬的一位才華洋溢的年輕 UI 設計師 Bas Ording 的作品。我的工作是將他用 Macromind Director 製作的原型轉換成可運作的程式碼,這是 Finder 團隊工作的一部分。

在加入 Apple 之前,我就已經開發過另一個 dock——DragThing,這也幫助我成功獲得了這份工作。1996 年底,我和未來的妻子從蘇格蘭搬到愛爾蘭,我們倆都加入了當地的小型軟體團隊。那裡主要是一個製造工廠,但在周邊也進行一些軟體和硬體的測試與工程開發工作。

在早期我參與了許多專案。我在 Copland 安裝程式專案只做了兩週就被取消了。接著我開發了幾款隨 Performa 電腦出貨的 Disney Print Studio CD。我很喜歡做使用者介面的工作,但不知怎麼的最後卻在為 At Ease 開發 Mac OS X Server 的命令列認證元件,這是要用在一系列無硬碟網路開機電腦上的功能,但這些電腦當時根本還沒人見過。後來才發現我其實一直都在做 iMac 專案,而且最後這些電腦都裝了硬碟。

在這一切進行的同時,當我人在 Cupertino 時,有人問我是否想參與一個代號「Überbar」的秘密專案。他們向我展示了一些原型,並且明確告訴我目前只有六個人看過這個專案,如果消息走漏,他們就會知道是我說出去的。我想,如果終究有人要幹掉 DragThing,那不如就由我來做。

當時新版的 Finder(代號「Millennium」)是在 Mac OS 9 上開發的,因為 Mac OS X 還不太穩定。檔案系統運作得不是很理想,這對於要在其上開發使用者介面來說相當不利。Dock 當時是 Finder 的一部分,可以依賴其他團隊正在開發的高階 C++ 介面來處理磁碟和檔案。因此,我先在 Mac OS 9 上用 Metrowerks Codewarrior 開始開發。Finder 是一個 Carbon 應用程式,所以在作業系統準備就緒之前,我們實際上可以在 OS 9 上取得不少進展。我清楚記得第一次在 Mac OS X 上執行程式碼的情景。

由於 Dock 和其他 Aqua 使用者介面一樣都是高度機密,因此只在少數幾台機器上啟用。在我開始進行 Dock 的開發工作後很長一段時間,都還沒能看到 Aqua 那些亮麗誘人的按鈕。當時有傳言說,任何 Aqua 的螢幕截圖都會被嵌入該機器的硬體 MAC 位址,這樣就能追查洩密的來源。

在我親眼見到這個新介面之前,有一次不知怎麼的——我真的不記得為什麼會這樣——被指派設計作業系統開機畫面的預留位置。我按照 iMac 的風格,製作了一個帶有條紋的藍色亮面蘋果標誌。

隱藏的條紋被壓抑

這個功能只存活了一個版本就被迅速移除。我想是因為某人對它與 Aqua 外觀的相似度感到不滿,儘管這完全只是巧合。

但我仍然繼續努力,在遵循原始設計的前提下,盡可能打造最好的 Dock。同時我也經常往返美國,一開始都住在 Infinite Loop 對面的 Cupertino Inn。

你可能之前聽過我說這個故事,如果是這樣我先道歉。但時間過去這麼久,現在的人們只知道我開發的 PCalc,甚至不記得 DragThing 了,更別說這些發生在你們某些人出生之前的事了。

有一次我去美國時,Steve 正在和 Bas 談話,問到 Dock 的開發進度如何。Bas 回答說:「進展順利,工程師現在從愛爾蘭過來了」之類的話。Steve 離開後,直接去找我的主管的主管的主管,說了那句決定性的話(這是當時在場的人後來轉述給我的)。

「我剛得知負責 Dock 開發的工程師他媽的在愛爾蘭」。

他們告訴我必須立刻搬到 Cupertino。不然就沒得商量。

我不想搬到美國去,我喜歡待在歐洲。經過深思熟慮,和妻子進行了多次深夜長談,甚至買了一本移民指南後,我最終還是說了不。

他們說好吧,那我們就跟 Steve 說你已經搬過來了。

就這樣,在接下來的一年裡,我在科克和 Cupertino 之間來回飛,盡可能在法規允許的範圍內待在美國。我在 Finder 團隊的走廊上有間辦公室。我只能想像 Steve 經過時在找我,而他們會說我剛好不在,其實那時我正在另一端被趕著登機。每當有 Dock 的展示時我就必須過去,但我不能和 Steve 待在同一個房間,以免露出馬腳。那個裝了遮光窗的展示室有兩扇門,我必須在他進來之前從另一扇門溜走。

最終,Macworld 2000 如期而至,所有的秘密終於揭曉於世。我希望在這個時候,我身在何處已經不再重要,我終於可以放鬆了。但不到一個月後,就在我生日那天(我記得很清楚),我又接到一通電話。

我必須搬到 Cupertino,否則就要面臨其他後果。這次的「其他後果」就是我將被調離 Dock 和 Finder 的開發工作,而且公司不能保證我以後還能接手任何有趣的專案。

於是我婉拒了這個要求,並提出辭呈。大約三週後,Cork 分部剩下的所有軟體開發團隊成員都被解雇了。很明顯,公司原本就計劃要裁掉所有人,只是當時不能告訴我。早知道我應該再等等,至少還能拿到遣散費...

我開發的 Dock 版本只發布過一次給開發者,就是在 Mac OS X 的開發者預覽版 3。John Siracusa 對它恨之入骨。不過我們依然是朋友。

之後,接手的工程師完全重寫了 Dock,最後我的程式碼一行都沒有在正式版本中出現。十八個月的辛勤工作就這樣付諸東流,唉,也罷。

但我學到了很多,結交了許多朋友,這段經歷也激勵我重新開發 Mac OS X 版的 DragThing,這個軟體後來相當受歡迎。PCalc 也在那時重獲新生,而且至今仍在持續發展!

最後要提的是,當我最後一次離開 Apple,清空抽屜時,在最後一個抽屜的最底層發現了那份從未簽署的保密協議

作者:James Thomson

獨立 iOS / Mac 開發者,PCalc 與 DragThing 的開發者。偶爾寫寫文章、在研討會演講,也會在 podcast 擔任評論員。