Objective-C之父Brad J. Cox去世他推動了今天蘋果的軟件生態
組過樂隊,創建過編程語言,Brad J. Cox 的一生精彩而圓滿。近日,訃告網站Legacy.com 發布消息:Objective-C 之父Brad J. Cox 博士於2021 年1 月2 日在自己的家中逝世,享年77 歲。
如果你是蘋果生態的一位開發者,那你對Objective-C 一定不會陌生。這門語言成就了蘋果強大的軟件生態,也因為蘋果硬件的暢銷而一路高歌猛進,挺進各大編程語言排行榜的前幾名。作為一位計算機科學家,Brad Cox 的主要成就是和Tom Love 一起創建了Objective–C。此外,他還以在軟件工程(特別是軟件重用)和軟件組件方面的工作而聞名。
在Brad J. Cox 去世的消息發布之後,很多人在Hacker News 上發帖悼念,緬懷他對編程語言演進做出的貢獻。其中一位網友寫道:
我喜歡Objective-C,它是一門優美的語言。學習這門語言讓我重新發現了自己對於編程的熱愛。
當時我還在Java 的世界裡,想要利用業餘時間寫一個Objective-C 的無人機程序。雖然後來我放棄了這個想法,但我還是把代碼發到了GitHub 上。用Objective-C 寫東西讓我覺得很愉悅,這也是我最有意思的一個業餘項目。
最近,我的工作/ 業餘愛好主要集中於Python 和Go,但我依然慶幸自己曾花時間鑽研Objective-C。回想起來,如果當時沒這麼做,我今天可能不會成為一名程序員。
感謝Brad Cox 的工作及其產生的積極影響。
還有人表示,Brad Cox 為自己職業生涯的黃金20 年開闢了道路,甚至還幫一些人創建了自己的公司。
在悼念的帖子裡,也有人曾經有機會和Brad Cox 共事,ta 表示:“Brad Cox 從不宣揚自己是一個舉世聞名的計算機科學家,而是和我們這些普通碼農一起肩並肩敲代碼。他是一個正直、受人尊敬的人(Mensch)。”
奶牛場長大的程序員
Brad Cox 於1944 年5 月2 日出生於美國佐治亞州的班寧堡。他在一家奶牛場長大,漸漸地他發現自己對科學最感興趣。求學期間,他拿到了弗曼大學理學學士學位和芝加哥大學數學生物系的博士學位,還從事過神經網絡早期形式的研究。
很快,他發現自己對計算機更感興趣,並在國際電話和電報公司(ITT)獲得了一份工作。後來,他加入了Schlumbeger – Doll Research Labs,並最終組建了自己在康涅狄格州的初創公司,即Productivity Products International(PPI),後來命名為Stepstone。在Brad Cox 的第一個知名軟件項目中,他編寫了PDP-8 程序來模擬神經元簇。在進入軟件行業之前,他曾在美國國立衛生研究院和伍茲霍爾海洋研究所工作。
Brad Cox 的在線課程“Taming the Electronic Frontier”曾獲得1998 年的Paul Allen Distance Education 獎。1991 年,Brad Cox 出版了他的書《Object Oriented Programming: an Evolutionary Approach》,1996 年出版了《Superdistribution: Objects as Property on the Electronic Frontier》,這本書被翻譯成十種不同的語言。
Brad Cox 曾加入喬治梅森大學的社會與機構學習計劃,致力於通過互聯網開發早期的線上課程。離開學術界之後,Brad Cox 從事過政府諮詢工作,包括與波音公司和五角大樓相關的業務。最終,Brad Cox 回到了神經網絡領域,致力於將機器學習和數據科學應用於網絡安全。
Cox 博士有很多粉絲,他曾在歐洲開展講座,在演講中他演示瞭如何對軟件進行編程。他和他的妻子Etta 喜歡休閒旅行和潛水,經常一起去加勒比海,伯利茲有他們美好的回憶。在一次潛水之旅的午餐中,Brad 與一對德國夫婦進行了交談。Brad 問同行旅行者的職業,發現他是一名程序員,旅行者同樣詢問了Brad 的工作,他說我也是程序員。於是他們展開了一段有趣的對話:
旅行者問Brad:“你是做什麼的?”
“我寫了Objective-C。”
對方驚訝地說:“不,那是Brad Cox 寫的。”
Brad 回應道:“Brad Cox 正是在下。”
當然,這次潛水之旅後他們又討論了更多事情。在Brad 的人生中,這樣有趣的事發生過無數次。
Brad 喜歡音樂,會彈鋼琴和吉他。早些年,他還是一支樂隊的成員,主要演奏藍草音樂(鄉村音樂的一個分支)。他喜歡長時間在林子裡散步。此外,他也是一個有幽默感的人。
2017年,Brad曾接受過“Computer History Museum”的採訪,感興趣的同學可以點擊以下鏈接觀看:https://www.youtube.com/watch?v=1xrL2d5omuA
Objective-C 的歷史使命
Objective-C 是一種通用、高級、面向對象的編程語言,顧名思義,Objective-C 的原意就是在C 語言主體上加入面向對象的特性。任何C 語言程序不經修改就可以直接通過Objective-C 編譯器,在Objective-C 中使用C 語言代碼也是完全合法的。它擴展了標準的ANSI C 編程語言,將Smalltalk 式的消息傳遞機制加入到ANSI C 中。目前主要支持的編譯器有GCC 和Clang(採用LLVM 作為後端)。
它的兩位共同發明者是Brad Cox 和Tom Love,二人在ITT 公司任職期間,對SmallTalk 語言產生了濃厚的興趣。但當時ITT 公司更加重視C 語言,因此Brad Cox 撰寫了一個C 語言的預處理器,打算使C 語言具備些許Smalltalk 的本領。很快,一個可用的C 語言擴展誕生了,這就是Objective-C 語言的前身。
TomLove
1983 年,Cox 與Love 合夥成立了Productivity Products International(PPI)公司,將Objective-C 及其相關庫商品化販售,並在之後將公司改名為StepStone。
1986 年,Cox 出版了一本關於Objective-C 的重要著作《Object-Oriented Programming, An Evolutionary Approach》,詳細闡述了Objective-C 的設計理念。
目前,Objective-C 的商標權屬於蘋果公司,蘋果公司也是這個編程語言的主要開發者。1988 年,喬布斯被趕出蘋果公司後,其創辦的NeXT Computer 公司買下了Objective-C 語言的授權。隨後在1996 年,蘋果收購了NeXT 公司,旗下的操作系統NeXTSTEP 被重命名為Cocoa,WebObjects 則集成到Mac OS Server 和Xcode 中。Objective-C 自然而然成為Mac 平台的首選開發語言,並受到Macintosh 編程人員的廣泛認可;Cocoa 成為蘋果免費提供的開發工具,提供Mac 平台應用開發的環境。
蘋果在開發NeXTSTEP操作系統時使用了Objective-C,之後被OS X和iOS繼承下來。現在Objective-C與Swift是OS X和iOS操作系統、及與其相關的API、Cocoa和Cocoa Touch的主要編程語言。Objective-C的流行也要歸功於iPhone的成功。
Objective-C 用一個很小的、用C 寫成的運行庫,使得應用程序的大小增加很少,與此相比,大部分OO 系統需要極大的運行時虛擬機來執行。Objective-C 是講究實用和效率的語言,使用過C++ 或者Java 的開發者會驚嘆於Objective-C 的程序如此簡短,尤其是,Objective-C 寫成的程序通常不會比其源代碼和庫(通常無需包含在軟件發行版本中)大太多。它可以在現存C 編譯器基礎上實現,而不需要編寫一個全新的編譯器,使得Objective-C 能利用大量現存的C 代碼、庫、工具和編程思想等資源。這些特性都大幅降低了Objective-C 的進入門檻。
但隨著編程語言的不斷演進,Objective-C 的缺點也逐漸暴露出來,比如不支持命名空間;不支持運算符重載;不支持多重繼承;使用動態運行時類型,所有的方法都是函數點用,很多編譯時的優化方法都用不到等。因此,近年來,蘋果一直想讓開發者放棄Objective-C,轉向Swift。在開發語言排行榜TIOBE 榜單中,Objective-C 的流行程度指數一路下滑,替代者Swift 的位次逐漸上升。
早在2015 年,就有人預言Objective-C 將在五年內被Swift 取代。在這五年的時間裡,我們的確見證了Swift 的崛起和Objective-C 的沒落,但由於代碼規模依然龐大,前者徹底取代後者還有很長一段距離。
去年,海外知名自由職業平台Upwork 調查顯示,在眾多編程語言中,Objective-C 成為該網站時薪最高的語言(加鏈接:這門“沒落”語言時薪451 元,自由職業平台Upwork 公佈兼職語言薪資排行),掌握該語言的程序員每小時可以賺66 美元(約合451 元人民幣)。
有人曾評價說,與Windows平台下的應用開發技術和編程語言的繁盛景象相比,Objective-C更像是孤獨盛開在Mac平台上的技術奇葩。