2011年10月20日 星期四

蘋果(五)


上文提到,Windows 95的推出時間比計劃遲了很多,究竟出了甚麼問題呢?

按江湖傳聞,這產品其實已按進度完成,但就是在推出前的最後測試,才發覺有很多Windows 3.1的軟件,在新系統上出現了問題。據說,當時負責有關項目的副總裁,駕了一部小型貨車到軟件店,購買流行軟件回去測試,結果載滿了整部貨車。

為甚麼會出這問題呢?這就要先認識一些基本概念,這就是所謂API(Application Program Interface),Windows 3.1和Windows 95是操作系統(Operating System),其任務就是負責操控硬件和提供系統服務,例如,應用程式要打印一個文件,就祗要叫用操作系統的相關服務,理論上,完全不用擔心實際硬件的操作,API便是一套標準接口,供應用程式去使用。

所有應用程式的開發者,理應嚴格按API的標準辦事,若現實真是這樣,祗要Windows 95提供和Windows 3.1完全相同的API,所有應用程式都可順利過渡。但現實並不是這樣,應用程式的開發者有太多誘因去繞過API,主要原因有兩個,第一個就是API的功能不足,這不難理解,若API沒有提供某個功能,而應用程式又想‘能人所不能’,唯一的方法便是繞過API,自行編寫有關功能。第二個理由就是效率問題,特別是一些運作速度便是成敗關鍵的軟件(例如遊戲),可能便要自行編寫比經API有效率的運作程序。

可是,當有不少流行軟件都‘不按本子辦事’,推出新系統的難度便會很高。各施各法,各顯神通,微軟完全控制不了這群大帝。

遇上這種情況,微軟的回應可有兩個方向,一是堅持新的操作系統祗支援標準的API,事實上,微軟和軟件生產商的合約責任亦如此。但是,應用軟件才是電腦的靈魂,一部沒有應用軟件的電腦,無論技術如何先進,都沒有任何意義,若祗是有少量軟件出現這問題,微軟當然可以‘企硬’,但若是大部份,其中更包括銷量高的軟件,那麼就是形勢比人強,微軟也不得不低頭。

結果,微軟的開發團隊便要細心研究,以至用逆工程(Reverse Engineering)的方法,去解拆這些軟件用了甚麼不標準的方法,然後,提供相應的服務,以令它們可以正常運作,結果,便多花了接近兩年時間!

充沛和廣泛的應用軟件庫,是微軟成功的主要因素,但這也成了發展新系統的最大阻力。在這方面,Apple便相對‘硬’,大部份Apple的軟件開發者,都知道若用了任何非標準的方法,在系統升級時,隨時都會不能運作,Apple是不會照顧你的!

實在Apple更加走向另一極端,若要在創新和兼容性間作出選擇,Apple經常就經常取創新而犠牲兼容性!

例如,Mac最新的操作系統Lion,就有嚴重的兼容性問題,不少舊軟件都不能運作,就算可以運作,都有很大重寫的壓力,因為Lion加進了很多新功能,這些都要重寫應用軟件才可發揮的!

另一例子就是硬件的支援,IBM PC使用的CPU是8088,後來一直演化成80286,80386,80486,80586,80686……以至今天的i5,i7,但基本上都是Intel或其兼容產品,Intel推出新的CPU時,兼容性是首要考慮的問題,這就是新的CPU可以完全執行舊軟件,不要以為這是件簡單的事情,箇中實有極高的難度。

反觀Apple,她就是不時作CPU的轉換,簡單來說,就是挑最好的來用,但這就常出兼容問題。例如,Steve Jobs回巢後,作了一個驚人的決定,就是要用Intel的CPU來取代當時沿用的IBM Power PC。

這個轉變,可謂驚天地,泣鬼神,要知道,這兩個系列的CPU,設計理念南轅北轍,沒有半點兼容性可言,當時,Apple便用模擬器的方法勉強令舊軟件可以運作,但速度強差人意,其實,這就是向開發商施壓。這仗Apple贏得非常漂亮,大部份應用軟件商都被迫要重寫他們的軟件,這個改變的背後意義,就是令Mac成功平民化。今天,你可能仍覺Apple昂貴,但與早年相比,Mac與PC的價格差距,經已大幅降低。事實上,現在不乏比Mac昂貴的高端PC,Steve Job就是兵行險著,進行了一次‘豪賭’。勝者為王,Steve Jobs就是成功帶領Apple登上了皇座!

但無論如何,純從硬件比較,PC的性價比都普遍高於Mac,為甚麼Mac仍這樣成功呢?有關問題,下文再討論。

沒有留言: