蘋果超強計算機App,23年前只是個練習作品

2016.01.15 by
愛范兒 ifanr
愛范兒 ifanr 查看更多文章

愛范兒連接全球創新者及消費者,跨界技術、文化、消費及創新,致力消費科技領域的產業評論、產品報導及社群連接,創造高品質的消費樂趣。

蘋果超強計算機App,23年前只是個練習作品
本文譯自 PCalc 開發者 James Thomson 的部落格中 Forty Two Minus Twenty 一文,略經編輯...

圖說明

本文譯自 PCalc 開發者 James Thomson 的部落格中 Forty Two Minus Twenty 一文,略經編輯。歷經 23 年,PCalc 由當年開發者一時興起的「練手」之作,成為了如今覆蓋蘋果四大系統的最具代表性的計算機應用程式。這篇文章便講述了 PCalc 背後的故事以及 James Thomson 在此期間的開發歷程。

如今很多人在他們的各種蘋果裝置上使用 PCalc,卻沒有意識到這個 app 的年齡比他們想像中要長得多。

圖說明

PCalc 於 1992 年誕生,但事實上,它最初只是一個中心加熱控制板的設計模型。

當時我在格拉斯哥大學的電腦科學系讀書,報名了一個人機互動課程,來學習如何打造優秀的使用者介面。這個課程的研究課題之一就是為中心加熱系統設計一個類比控制板,可以用來設置溫度,分別控制加熱和水量等等。

我認為使用者介面看上去必須要真實,所以自製了一套黑白的 1-bit 類比 LCD 數位和一些可以「按下去」的小按鈕,其實擬物風在那個時候就已經存在了。

大概在同一時期,我們開始用 THINK Pascal 來程式設計,我也在業餘時間踏上了 Macintosh 程式介面的探索之路。

漸漸我得出了一個結論:我並不會成為下一個 Jean Michel Jarre(著名法國作曲家、演奏家、音樂製作人), 不過與老舊的 Atari 電腦相比,我卻非常喜歡 Mac 的使用者介面。所以我賣掉所有的音樂合成器和 Atari ST 電腦,入手了最新款的 Mac Classics ——配備有 4 meg 的 RAM,40 meg 的硬碟 和 512*342 解析度的 1-bit 顯示幕。

於是我開始尋找一個小專案來學習如何在這台新的 Mac 上程式設計,那時我想到了之前為控制板設計的圖形介面:或許那作為一個計算機介面來說也同樣合適。

當時 Mac OS 自帶的計算機可以說相當簡陋,所以我決定做一個可以進行二進位和八進制運算的計算機來幫助我進行程式設計,而這也就是 PCalc 誕生的緣由。我買來 《Inside Macintosh》這本書的前三冊,開始仔細鑽研。

那時並沒有網路,所以這幾本書便是我所能依靠的全部。最終我明白了其中的內部原理,並以此為核心製作了一套使用者介面。由於第七代系統剛推出不久,所以我還是買了書的第四冊來瞭解系統上有哪些改變,開發期間這些外部資源對我來說便已然足夠了。

這個應用程式程式(當時還沒有 Apps 這個概念)還缺少一個名字,最後我選用了「PCalc」,也就是 Programmers’ Calculator 的縮寫。講真它也確實是給工程師的計算機,而那個工程師就是我,畢竟我也只是為了自己的需求而程式設計。

一開始我把 PCalc 分享給了課上的幾個朋友,而在六個月的反覆運算更新後,它變得更加強大,做到的事情也比僅僅「幫助程式設計」要多得多了。另外儘管我的 Mac 還不能顯示顏色,我依然為 PCalc 製作了一套彩色介面。
你可以點擊這裡來流覽更多初始版本的截圖,第一份說明文檔則可以在這裡查看

在 1992 年 12 月 23 日,我決定免費發佈 PCalc,作為送給這個美好世界的禮物。

圖說明

再說一遍,那是 1992 年,FTP 網站還是個新興的熱點。當時我們班發現的一個叫做 Fetch 的應用程式迅速傳播開來,只需要運行這樣一個應用程式,它就可以帶給你更多的應用程式。

我迅速想起來有一個叫做 Info-Mac Archive 的全球鏡像網站,我可以把我的應用程式發送給它,之後便能自動被傳播到世界各地供人們下載。所以我仔細讀了它的傳送指南並將 PCalc 打包上傳成功。

後來我收到了非常多不錯的回饋,這也驅使我在之後的一年裡不斷更新優化 PCalc,1993 年的 1.0.2 那一版中我在更新內容加上了這樣一段話:

圖說明

確實,我應該在 Inside Mac 絕版之前買下裡面處理顏色的那幾冊的。

至於上面說到的彩蛋,其中之一就是如果你輸入 42 到三個特定的記憶體寄存器,然後點擊螢幕,你就會聽到道格拉斯·亞當斯說的「Don’t Panic!」,螢幕上也會顯示一句出自我的最愛——《銀河便車指南》中的臺詞:

圖說明

多說一句,不久之後道格拉斯就成為了我另一個應用程式——Dragthing 的內測用戶,不過我從來沒問過他對於那個彩蛋的看法(如果他看到了的話)。

PCalc 的圖示上總有個 42,每次截圖時我也總試圖把 42 這個數位擺在螢幕上。在一次 WWDC 大會上,我有幸見到了道格拉斯並與他握了手,他也認出了我並示以微笑。

我本來計畫在下一次的 WWDC 中再次與他見面,但他卻在這之前便匆匆離世了。而就在他去世的幾周前,我們還互發過郵件,這件事帶給了我深深的震撼。

總而言之,這就是 PCalc 現在還在圖示上保留 42 的原因——作為對他的致敬。儘管我與他並不算深交,但他卻一直熱心支持我的工作,而這對於他的一個忠實粉絲來說,可謂意義非凡。

不管怎麼說,在我攻讀學位入世未深的時候,PCalc 就已經在世界範圍內取得了不小的成功,不過在這之後我卻有些分心了。首先是編寫 Dragthing,之後我又在 Apple 找到了一份工作,負責 OS X 的 Finder 和 Dock 部分,這又是另外一個故事了。

2000 年辭職再次回到格拉斯哥之後,我又開始尋找另一個小專案來學習新的 Metrowerks CodeWarrior 開發環境以及 PowerPlant 應用程式框架。儘管 PCalc 已經七年未曾更新,但我仍然會收到 PCalc 的回饋郵件,並且舊版 PCalc 的大小對於快速打造一個有用之物來說堪稱完美。

所以,PCalc 2 就此誕生。我將核心的 Pascal 運算程式碼手動翻譯成 C 語言,新的使用者介面則是用 C++ 寫成。老 68K 裝置上仍然能運行 PCalc 2,而它不僅能在 PowerPC 電腦上運行,更同時支持 Mac OS 以及最新的 OS X,它的使用者介面對於二者也都頗為合適。

圖說明

鑒於 Dragthing 的備受好評,我決定或許也該為 PCalc 收點費用了,我之所以在過去整整七年裡都未曾更新過它 ,原因之一就是 PCalc 初始版本的免費性質,採取收費策略也將是對我不斷更新 PCalc 的激勵吧。

在 2001 年的 WWDC 上,我把名片遞給了當時的一個新面孔——Phil Schiller,並跟他談了談 PCalc。在這之後,我記得他的秘書向我發郵件為 Phil 要一個 PCalc 的序號,我當然很高興地發給了她。之後我才聽說 Steve Jobs 也在用 PCalc 並據稱「沒有徹頭徹尾地討厭它」,而 Steve Wozniak 當年也購買了很多份 PCalc。

直到 2002 一月,Apple 還是沒有在 OS X 配備一個像樣的計算機(有些人可能會說直到現在也是如此),而在新的 iMac G4 發佈之際,Apple 聯繫到了我並徵求將 PCalc 內置於一些發往美國的 iMac 中。雖然最後同意每賣出一台我只能獲得一小筆費用,但是哪怕再小的數目乘以近百萬份也是非常可觀的!

圖說明

傷感的是,合作並未持續下去。隨著 Mac OS 10.2 的發佈,Apple 在其中加入了自己開發的科學計算機。關於此事我也聽到了種種傳言,但不管怎樣,PCalc 不再捆綁在 Mac 中,這件事也就告一段落了。

2005 年我再一次用全新的 Carbon HIToolbox API 重寫了 PCalc。PCalc 3 採用了精緻有愛的金屬質感的介面,不過這一改變也激起了不少民憤。此外全新的 Dashboard Widget 部件也隨之發佈,雖然程式碼核心相同,不過它的使用者介面則是用 HTML 和 javascript 寫成。Widget 在那個年代可是代表著未來。

圖說明

對於這次更新我並沒有重複收費,因為這麼多年來都沒能完成過一次更新還是讓我有些心存愧疚的。

2006 年 ,PCalc 的大小能使其完美移植到 Intel 機型中,你要知道當時我擁有一台搭載 Intel 的 Mac 原型機以及在一月中旬準備推出的通用二進位碼。在這之後 Mac 版 PCalc 開始更新得愈發頻繁,也加入了越來越多的新特性。

而隨著 2007 年 iPhone 的誕生,2008 年 App Store 的來臨,我也在思索對於移植到這個全新平臺上的應用程式而言,到底怎樣才算是理想呢?

我取出了 PCalc Dashboard Widget 版的程式碼,花了一兩天的時間使其在 iPhone 上運行。以此為起點,這一次我又用 Cocoa 編寫了一套全新的介面。

PCalc 對於觸控裝置來說無疑是完美的,它也從螢幕上用滑鼠點擊按鈕來操作的類比計算機,變成了在你手中的一台近乎真實的計算機。

圖說明

PCalc 在 App Store 上架的第一天就同其他 400 餘應用程式存在於此,而它也確實幹得漂亮。最終我們的大多數收入都來自 PCalc 而不是 Dragthing,並且來自 PCalc 的 iOS 版而不是 Mac 版,我也將大多數的精力率先投入於 iOS 版,之後才將所得的成果轉移至 Mac 版中。

我甚至在 iPhone 版的 PCalc 中加入了 Dragthing 的主題引擎,可以讓 Mac Pro 中一個相當複雜的繪圖引擎在一個手掌大小的裝置上運行,這在當時似乎是一件不可思議的事情。

後來又有 iPad 和 Retina display 面世,再後來又湧現出更多的 iPad,更高的 iPhone……而即便是保險起見,我也會說:只要我還在程式設計,我就會一遍又一遍地重寫 PCalc。我也希望你會像我一樣享受於使用它的過程,在今後的又幾個十年裡。

本文授權轉載自:愛范兒

每日精選科技圈重要消息