[歷史] 關於全錄、蘋果的發展
關於全錄、蘋果的發展
Bruce在1996年寫了這篇短文,經過他的允許後我將之轉錄於此。
Bruce是麥金塔軟體的其中一名主要設計者,而他在這之前幾年曾在全錄工作,因此
他絕對有條件來談談關於蘋果與全錄的關係。
這裡是一切的開端
大約10多年前,我就聽過關於麥金塔的圖形使用者介面到底是打哪兒來的爭論。大
部分人都以為在賈伯斯參觀全錄位於Palo Alto的研究中心[譯註:以下簡稱PARC,
Palo Alto Research Center]後,麥金塔的使用者圖形介面就直接從全錄來。
這個所謂的“事實”一直被那些搞不清楚的人一而再的宣傳(事實上那些人也應該
要了解)。不幸的是,這不是真的 – 儘管蘋果的介面和許多全錄的介面上有相似之處,
但是兩者的差異卻是真實存在的。
賈伯斯在參觀PARC時的確看到了Smalltalk
[譯註:http://zh.wikipedia.org/wiki/Smalltalk]。他看到了Smalltalk整合了開發
環境,包含滑鼠選取文字、彈出式選單、視窗、…等等。蘋果開發Lisa的團隊整合了他
們所能記得在PARC看到的Smalltalk展示以及自己的想法打造出了另一個系統。使用麥
金塔和Smalltalk是有顯著的差異的。
Smalltalk沒有Finder,而且也真的不需要。拖放式檔案操作是從麥金塔團隊來的,
還伴隨很多獨特的概念:資源及dual-fork檔案可以儲存介面編排並將各國語言資訊抽
離程式碼[譯註:例如同一個程式包含各國語言,以這種方式寫多語言程式快很多]、定
義了“程序”、拖放式操作的系統層級設定及延伸、賦予檔案有類型及創造者、可以直
接更改文件,磁碟以及程式的名稱、剪貼簿的資料可以有各種格式、檔案系統有多樣的
檢視方式、桌面配件[譯註:desk accessories, 指桌面有各種小程式,例如計算機、
便利貼等]以及控制台[譯註:就是現在的系統偏好設定]等等。Lisa團隊也發明了很多
基礎的概念:下拉式選單、基於QuickDraw的視窗和圖形系統、剪貼簿以及易於國際化
的程式。
Smalltalk有三個按鍵的滑鼠和彈出式選單,相對於Mac有選單列和一個按鍵的滑鼠。
Smalltalk甚至沒有可以自我更新的視窗系統 – 你必須按一下視窗,然後它才會重新
畫一次,而且程式也無法在只有一部分可看見的視窗裡畫圖[譯註:例如被其他視窗擋
住的視窗]。Bill Atkinson並不知道這些[譯註:此人是QuickDraw的靈魂人物,在開發
出QuickDraw之後,寫了MacPaint這個在當時被視為是Mac上殺手級的應用程式],所以
他發明了以“區域”為繪畫基礎的QuickDraw和視窗管理程式,如此才能快速在被蓋住
的視窗中繪畫以及當視窗重新回到最上方時重畫視窗的其他部分。一個Mac和Smalltalk
相同的部份則是以選取為基礎的文字編輯和剪下貼上[譯註:Smalltalk雖然有剪下貼上
,但是當時沒有剪貼簿的概念],而這個功能是Larry Tesler[譯註:全錄的工程師]在
PARC為了他的Gypsy編輯器設計的。
所以你可以歸納出,全錄的架構和麥金塔的架構差異是相當大的,比Mac和Windows
的差異來得大的多。這不令人訝異,自從微軟在1981到1984年麥金塔研發期間看到一些
麥金塔的設計(API和一部分程式碼等等),這個目的使得微軟得以幫Mac設計應用程式,
也給了微軟工程師一個樣板去開發Windows。相反的是,Mac和Lisa工程師必須發明他們
自己的架構。當然,也有前全錄的員工在Mac和Lisa團隊中工作,但是設計的概念在這兩
家公司的機器上是很不同的,我們並沒有和外界以為的,用那麼多全錄研發的概念。
硬體本身也是一大躍進。Mac有一體成形機身、可發出四種聲音、程式佔用的記憶體
很少、時鐘、可自動彈出的磁碟機、串列埠、…等等。這個小巧、可攜帶、閃閃動人的
外殼和醜陋盒子堆砌起來的PC世界根本是相差很大。這要歸功於Jerry Manock和他的團
隊[譯註:Jerry及他的團隊是AppleI和Apple ][的外型設計者]。即使是包裝都看的出令
人驚訝的創意和熱情 – 你還記得幫128K Mac開箱的時候嗎?麥金塔、安裝指南、大量
插圖和精心設計的手冊、動畫教學程式和語音磁帶被高雅的安置在硬紙板做的箱子,側
邊還有畢卡索風格的圖畫。
回顧從前
在我看來,全錄為他的Smalltalk和Star系統設計的軟體架構比Mac或Windows任何一
方都來的先進。Star曾是個很驚人的成就,有些特性甚至目前的系統都沒有實作,儘管
我看OpenDoc甚至比全錄的系統先進的多[譯註:OpenDoc為蘋果研發的跨平台文件開發框
架]。我對那些PARC的科學家們很尊重,他們開創了一條我們都承認採用的創新道路,而
且我也從那裡學到了很多關於軟體設計的事。
蘋果其實可以發展更複雜、更精緻的系統來對抗全錄的架構,但是麥金塔是要拿來
賺錢的,所以價格必須要相對低一些 – 我們無法承受時間上或是設計到“盡可能完美”
所帶來的開銷。作為Lisa的兄弟,麥金塔甚至不能多工處理,也沒有程序保護機制 –
我們沒有多餘的空間來放置程式碼和堆疊。原始的麥金塔只有超小的記憶體和磁碟空間;
例如,資源管理程式在ROM中只佔了不到3000位元組,而Finder在磁碟中只佔了46KB。
我們很後悔在這個限制下所做設計上的取捨 – 甚至團隊中也有些人很失望因為硬體限
制而做的妥協 – 但是假如我們當時做不同的決定的話,那終究還賣的出去嗎?
過去與未來
在許多方面,電子運算的世界自從1976開始有了許多小的發展,而我們仍然持續創
新。Smalltalk早在Java之前就有很好的bytecode和虛擬機器了。物件導向程式語言現在
很熱門,而且也至少30年那麼久了(看看Simula-67語言)。開發環境也沒有前進多少。
我覺得Smalltalk開發環境是我用過自1970年代以來最舒服的、最整齊的、最快速的也最
流暢的環境。儘管CodeWarrior對C++來說也是很好的開發環境,但是我還沒看到可以和
我20年前用的Smalltalk開發環境可以比擬的東西。以我來說,今日的Smalltalk與早期
相比就不是那麼的清楚、易於使用和完善設計。
我們甚至和終極資訊運算通訊裝置還有不小的距離。我們在系統架構和使用者介面
還有很多工作要做。尤其是使用者介面的發展,一定要由深層的架構產生而非只有圖形
的外觀;介面是一種架構,而不是圖片。Copland[譯註:蘋果當時發展的作業系統]和
Windows95(或NT)也都不是作業系統發展的定論。不幸的是,市場力量阻礙了下一場革命
的發展。不過你仍然可以期望蘋果這家公司在下一世代的系統中帶來這些進步。
我可以確定某些在蘋果中原創的設計其實在其他地方也獨立發展過。
但是,Mac把他們帶進了這個世界。
原作者:
Bruce Horn
http://ppt.cc/f(fQ
譯者:
Jerrynet@PTT
(禁止轉錄、轉貼,因為我翻的很爛,用自己的話詮釋了一些內容,有翻錯的可以指出,
我會修改。另外想知道原文的可以到上面那個網址看)
來源:
Folklore.org
(這個網站是Andy Hertzfeld所創,Andy是蘋果麥金塔開發團隊元老,目前在Google工作
開發Google+)
後記:關於蘋果和微軟的官司,以及全錄和蘋果的官司,有空再翻...好累Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.184.16.39
推
10/23 21:55, , 1F
10/23 21:55, 1F
→
10/23 22:04, , 2F
10/23 22:04, 2F
→
10/23 22:05, , 3F
10/23 22:05, 3F
→
10/23 22:05, , 4F
10/23 22:05, 4F
→
10/23 22:37, , 5F
10/23 22:37, 5F
→
10/23 22:38, , 6F
10/23 22:38, 6F
→
10/23 22:39, , 7F
10/23 22:39, 7F
推
10/24 09:50, , 8F
10/24 09:50, 8F
→
10/24 09:51, , 9F
10/24 09:51, 9F
→
10/24 09:51, , 10F
10/24 09:51, 10F
→
10/24 09:53, , 11F
10/24 09:53, 11F
→
10/24 09:54, , 12F
10/24 09:54, 12F
→
10/24 09:56, , 13F
10/24 09:56, 13F
→
10/24 09:56, , 14F
10/24 09:56, 14F
→
10/24 09:59, , 15F
10/24 09:59, 15F
→
10/24 10:01, , 16F
10/24 10:01, 16F
→
10/24 10:01, , 17F
10/24 10:01, 17F
→
10/24 10:04, , 18F
10/24 10:04, 18F
推
10/24 10:05, , 19F
10/24 10:05, 19F
推
10/25 00:25, , 20F
10/25 00:25, 20F
→
10/25 00:26, , 21F
10/25 00:26, 21F
→
10/25 00:27, , 22F
10/25 00:27, 22F
→
10/25 00:28, , 23F
10/25 00:28, 23F
→
10/25 00:28, , 24F
10/25 00:28, 24F
→
10/25 00:29, , 25F
10/25 00:29, 25F
→
10/25 00:29, , 26F
10/25 00:29, 26F