為什麼說每個程式設計師都應該有臺Mac電腦
1979年,剛被踢出 Lisa 專案組的 史蒂夫·賈伯斯 從 傑夫·拉斯金(Jeff Ruskin) 手中奪走了新成立的 Mac 團隊,為了證明自己的天賦與實力,賈伯斯下定決心要傾盡全力建造出一臺完美的個人電腦。
基因
賈伯斯認為,『完美的藝術品只有天才才能造出來』,於是他找來了一群天才。
Mac 初始團隊成員從左至右:喬治·克羅、喬安娜·霍夫曼、伯勒爾·史密斯、安迪·赫茨菲爾德、比爾·阿特金森、傑裡·馬諾克
他們相信『過程就是獎勵』,他們『每週工作 90 小時』只為能做出最『酷斃了』(Insanely Great)的產品,他們像海盜一樣行事:既為自己的工作感到自豪,又願意去竊取別人的靈感。他們和賈伯斯一樣,都是充滿了朋克精神的天才極客。
Mac 初始團隊的海盜旗
多年後賈伯斯回憶到,『最初的Mac團隊讓我知道,最頂級的人才喜歡一起工作,而且他們是不能容忍平庸作品的』。到今天,Mac 的開發者與使用者或多或少地繼承了這種精英文化,他們是一群熱愛程式設計的人。
天才程式設計師王小波在他的《思維的樂趣》中對程式設計有著這樣的一番描述:『計算機程式設計和解幾何題有共通之處:對了馬上能知道對,錯了也馬上知道錯,乾乾脆脆。你用不著像孟夫子那樣,養吾浩然正氣,然後覺得自己事事都對。』
我竊以為,程式設計能力的提升有助於提升獨立思考與理性思維能力。而理性是一種科學的態度,它能讓我們和我們周遭的世界更加美好。
信仰
2008年我從大學畢業,加入了支付寶 UED。部門在白鴉和大老闆 James 的努力下,全都換上了 iMac 與 Macbook 。後來從 Felix Ding 那裡,我知道了更多關於 Mac 的歷史。
Mac 『1984』宣傳片,宣傳的不是他的產品,而是一種自由多元化信仰,它幫助我開啟了一扇通往人格獨立之門。從喬治·奧威爾到『邏輯思維』,從《烏合之眾》到《論美國的民主》,我逐漸成長為一名自由主義者。
『 Think Different 』廣告片中,Mac 被定義為敢於挑戰權威、富有創新精神的叛逆者。那些旗幟鮮明的人,願意買一臺 Mac 來標榜自己的 『非同凡響』。
ShiTiven 是我認識的第一個使用 Mac 的全棧工程師。他喜歡喝咖啡,喜歡 Python 和 CoffeeScript 。他有著極快的語速和編碼速度,他曾經在某個下午誤飲了一整瓶紹興黃酒後,完成了支付寶第一版『 AA 收款』元件的開發。他告訴我把 Mac 的預設語言設定為英文,這樣其他人會對我刮目相看。很多年沒聽到他吹牛了,只聽說阿里在美國上市後他把 Mini 換成了賓利。
dc 是我認識的第一個使用 Mac 的前端大神,他是《高效能 JavaScript 》的譯者,前端框架 Arale 1.0 的作者。2009年他留著一頭飄逸的長髮,是和張克軍一樣優雅的男人。從他那裡我知道了張國榮的『我就是我,是顏色不一樣的煙火』。他現在在北京經營著一家逼格很高的公司,喜歡跑步和滑雪。
電影《東邪西毒》中張國榮扮演的歐陽峰
2009年,我入手了自己的第一臺 MacBook Pro,希望能成長為一個牛逼的程式設計師。
完美
Mac 是第一款使用圖形使用者介面(GUI)和滑鼠的個人電腦,在使用 Mac 的過程中,我也開始慢慢感受到了那『God is in the details』的完美體驗。
Mac OS 的頂部選單欄設計遵循了『費茨定律』,這是為什麼 Windows 的選單功能難用的原因,因為它不敢抄得太像 Mac;
Applications、Downloads 等內建目錄規則和 Spotlight 檔案檢索,很好的平衡了檔案管理與定位的效率;
一致的鍵盤快捷鍵設計與 UI 規範,提升了應用程式的可用性與美觀度;
有趣的 Dock、精美的擬物化圖示以及大量優秀的無襯線字型,讓 Mac 時尚感和設計感十足;
開啟 Macbook 機身殼,你會看到那精美的電路板。賈伯斯從他父親身上學到,即使是隱藏的部分也要做得很漂亮。這點重要麼?想想中國各大城市的下水道建設吧:)
關於 Mac 與 Windows 的對比,《賈伯斯傳》中記錄了更多細節:
Mac 電腦的包裝重做了 50 次,目的是要讓 Mac 在效能和外觀上都給人驚豔的感覺;
2000 年上市的 Power Mac G4 Cube 進入了紐約現代藝術博物館;
Windows 抄襲 Mac 是合法的。1984年,為了不讓微軟停止開發 Mac 版的 Word、Excel 等應用,蘋果被迫簽署了一份合同,同意微軟有權在其即將推出的Windows系統中使用蘋果公司的部分圖形功能;
賈伯斯認為最好的產品是『一體的』,是端到端的,軟體是為硬體量身定做的,硬體也是為軟體度身定製的,Mac 上的作業系統只能在自己的硬體上執行。這也是為什麼大家會覺得蘋果的產品體驗更好、效能更好,而 Android 上的動畫不論如何優化都無法獲得 iOS 的流暢度的原因;
『微軟唯一的問題就是他們沒有品位,一點都沒有。並不是狹義上的沒有品位,而是廣義上的,他們沒有獨到的見解,也不會在產品中注入多少文化……因此,我想自己之所以感到難過並不是因為微軟成功了,我對他們的成功沒有異議,大部分都是他們應得的。我難過的是,他們做的確實只是三流產品。』當然這段話只是賈伯斯在 1996 年對微軟的看法:P
書中有幾個小故事,足以說明為什麼說 Mac 的締造者們是一群天才程式設計師:
Mac 在一開始就實現了桌面視窗效果,比爾·阿特金森(Bill Atkinson) 設計了重疊視窗『擷取』演算法(讓 CPU 只計算視窗中顯示的部分,略去對未顯示部分的計算,從而節省了處理器的運算時間,提高系統運算速度),這一特性 Windows 在十年後的 Windows 95 中才實現。
Mac 的桌面視窗一開始就被賈伯斯要求設計成圓角,而計算機畫圓形圖案涉及到平方根計算,當時的 CPU(摩托羅拉68000微處理器)並不支援平方根計算。為此,阿特金森研究出一個加法運算來代替平方根運算的演算法:一組奇數序列相加可以得到一組完全平方數序列(如,1+3=4,1+3+5=9,等等)。
蘇珊·卡雷(Susan Kare)主導設計了 Mac 上各種漂亮的字型,結合鐳射列印技術和強大的圖形功能,Mac 推動了桌面出版產業的誕生。字型技術不再只有印刷工人和其他與油墨打交道的人才能使用。
95年,阿維·泰瓦尼安(Avie Tevanian)領導改進了 Mac OS ,將 NEXTSTEP 作業系統核心技術整合其中。從此 Mac OS 成為了基於 Unix ,同時包含物件導向程式語言 Objective-C 和先進 GUI 的優秀作業系統。這也是為什麼使用 Mac 的程式設計師通常比使用 Windows 的程式設計師更熟悉Shell 操作與各種程式設計模式,對美的設計形式也更加敏感的原因,而這些是成為全棧工程師的一些基礎要求。
2005年,Mac OS 在幾個月的時間內完成了對 Intel CPU 的支援。這件事成為 比爾·蓋茨 親自承認真正欽佩蘋果的幾個壯舉之一。
我的 iMac 與 MacBook
所以說,每個程式設計師都應該有臺 Mac 電腦,每家有理想的網際網路公司都應該給他的程式設計師配上一臺 iMac 或 MBP。
當午後的陽光透過窗戶照在這些 iMac 精靈身上時,你能體會到當年賈伯斯與 Sir Jonathan Ive 漫步於花園之中,看到那一排排迎著太陽轉動的向日葵時的那份喜悅之情。
最後,讓我以『 Think Different 』宣傳片的廣告詞《致瘋狂的人》作為本文的結尾來勉勵自己和各位同學:
他們特立獨行。他們桀驁不馴。他們惹是生非。他們格格不入。他們用與眾不同的眼光看待事物。他們不喜歡墨守成規。他們也不願安於現狀。你可以認同他們,反對他們,頌揚或是詆譭他們。但唯獨不能漠視他們。因為他們改變了尋常事物。他們推動人類向前邁進。或許他們是別人眼裡的瘋子,但他們卻是我們眼中的天才。因為只有那些瘋狂到以為自己能夠改變世界的人,才能真正改變世界。
相關文章
- 為什麼程式設計師應該有一臺 Mac 個人電腦程式設計師Mac
- 為什麼程式設計師應該有一臺Mac個人電腦程式設計師Mac
- 每個程式設計師都應該參加一次 GDD程式設計師
- 為什麼每一個爬蟲工程師都應該學習 Kafka爬蟲工程師Kafka
- 每個程式設計師都應該知道的下一個程式語言——Kotlin程式設計師Kotlin
- 每個程式設計師都應該瞭解的硬體知識程式設計師
- web前端入門很容易,全棧卻很難,為什麼每個程式設計師都那麼說?Web前端全棧程式設計師
- 每個Python新手都應該知道的程式設計技巧Python程式設計
- 每個程式設計師都該閱讀的10本書程式設計師
- [譯] 為什麼每個 Android 開發者都應該嘗試 FlutterAndroidFlutter
- 為什麼說,整個SaaS行業都應該感謝“寒冬”?行業
- 關於Unicode,字符集,字元編碼,每個程式設計師都應該知道的事Unicode字元程式設計師
- 每個程式設計師都該有個自己的部落格,分享我的四種部落格搭建教程!程式設計師
- 程式設計師你應該勇敢說不程式設計師
- 為什麼說一個好的Java程式設計師,是無碼勝有碼?Java程式設計師
- 程式設計師都幹些什麼?程式設計師
- 每個程式設計師都會的 35 個 jQuery 小技巧程式設計師jQuery
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- 為什麼說程式設計師做外包沒前途?程式設計師
- 每一個程式設計師,都希望能成為分散式系統架構師程式設計師分散式架構
- 為什麼程式猿都應該學點linux命令?Linux
- 為什麼很多程式設計師工作時都戴耳機?程式設計師
- 電腦程式設計是什麼?程式設計
- 求職季 | 為什麼每個開發者都應該堅持經營一個部落格?求職
- 每個人都應該懂點攻防
- 為什麼程式設計師應該儘早投資於決策技能 - Reforge程式設計師
- 為什麼說 Java 程式設計師必須掌握 Spring Boot ?Java程式設計師Spring Boot
- Java 程式設計師都該懂的 HashMapJava程式設計師HashMap
- Android程式設計師為什麼要去學Java後臺Android程式設計師Java
- 每個高階前端工程師都應該知道的前端佈局前端工程師
- 每個前端工程師都應該瞭解的圖片知識前端工程師
- 每個綠帶都應該知道的事
- 女程式設計師,為什麼比男程式設計師少???程式設計師
- 每個程式設計師都需要知道的概念和術語 - codeburst程式設計師
- 程式設計師,為什麼如此迷茫?程式設計師
- 【轉發】為什麼說程式設計師是一個極度勞累的工作?程式設計師
- 每個 Linux 新手都應該知道的 10 個命令Linux
- 每個架構師都應該讀的八本經典書籍架構
- 為什麼說程式碼註釋是程式設計師必備的技能?程式設計師