學習Swift/SwiftUI程式設計的過程中,在原廠文件裡經常可看到舊有歷史痕跡,包括Swift之前的官方語言Objective-C,或SwiftUI之前的UI框架UIKit與AppKit,這些並不會被淘汰,仍有數百萬程式設計師在使用,甚至成為新框架的基礎。

最特別的一組物件,是以 NS 開頭,在 Foundation 與 AppKit 框架中就有不少,如NSString, NSDate, NSNumber, NSURL, NSAttributedString, NSBezierPath…等,是我們用到的 String, Date, Double, URLSession, AttributedString, Path 等物件的基礎,還有一個更基礎的物件 NSObject — 是Apple原廠所有40多萬個物件的老祖宗,可說是「萬物之母」。

Apple 的物件名稱,大都以框架名稱縮寫當做起頭,例如第4單元用到 Core Graphics 框架的物件,大都以 CG 開頭;UIKit 框架的物件,則以 UI 開頭;PhotoKit 以 PH 開頭…等,這樣的命名規則簡單明瞭。SwiftUI 是少數完全不用縮寫命名的框架(由此可見Apple給其特殊地位)。

那麼,NS 又是什麼的縮寫呢?為什麼做為所有框架的基礎(Foundation),卻以 NS 開頭呢?

這個答案與30多年前蘋果公司創辦人賈伯斯(Steve Jobs)一段慘痛經歷有關。1985年,一直擔任董事長的賈伯斯被解除職務並踢出董事會,隨後黯然離開蘋果。創辦人竟被踢出自己所創的公司,真是情何以堪!

為什麼會這樣?董事會認為當時30歲的賈伯斯年輕氣盛、個性偏執,不但跟其他高階主管意見相左,與研發團隊也無法和諧相處,更重要的是公司經營不善,尤其1984年Macintosh與前兩年Lisa電腦的研發,不計成本地投入,造成公司鉅額虧損。

簡單地說,當時的賈伯斯有點將蘋果公司當做個人實現理想的手段(這也是很多企業創辦人常見的毛病,例如Amazon的Jeff Bezos或Tesla的Elon Musk),而不是投資人所期望的,要優先為股東創造利潤。

賈伯斯離開蘋果之後,也相當不服氣,用賣掉蘋果股票的資金,另創一家公司,叫做 NeXT Inc.,目標要創造當初(1979年)他在Xerox PARC 所看到(參考第一單元「人生的變數」):完美的圖形介面、人人都會操作的電腦,用新公司名稱昭告世人,這就是我的下一步,所以 NeXT 電腦的作業系統,不叫 NeXT OS,而是稱為 NeXTSTEP。

可惜 NeXT 公司的經營同樣不理想,從1985年創立到1997年被蘋果公司併購,12年期間幾乎沒有實現過盈餘。但蘋果公司也不好過,沒有賈伯斯的蘋果,就像缺乏靈魂的軀體,雖然每年都有盈餘,但在風起雲湧的電腦市場上,一直被 IBM PC 與 Microsoft, Intel 打壓,市佔率不到一成。

不過,蘋果公司真正脫胎換骨的契機,就在賈伯斯重回蘋果後,決定將 NeXTSTEP 作業系統移植到Mac 電腦,經過兩年努力,終於在1999年推出 Mac OS X,成為當今 macOS, iOS, iPadOS 等作業系統的始祖。