如何定位 macOS 操作系統,它的優勢是什麼?
知乎上已經有很多縱向比較的回答了,他對開發者們有哪些友好的方面?
OS X 的「定位」是 laptop - workstation 的操作系統。所謂「定位」,我理解為「設計者主力想做,而且做得很好的目標」。OS X 也能裝在高端 Mac Pro 上當 server,各種 Linux distro (注意,Android, Chromium OS 都不是一般意義的 Linux distro) 也能做 laptop 操作系統,但是那叫「兼顧」(或者叫硬弩勁),不叫「定位」。
Laptop - workstation 的特點是同一時間只主要服務一個用戶(但是今天的操作系統都是多用戶系統)。
OS X 的優勢就是它的定位。因為在這個定位領域中,沒有其它的 Unix vendor。
現在我們來看 Unix 的定位。廣義的 Unix 是一種操作系統流派,主要由 POSIX 標準來制定(system call,主要命令行工具,進程/線程行為,文件系統,等等)。Unix 流派是 Unix vendor 來設計完整的操作系統的基石。所以 Unix 的「定位」是「通用的(從嵌入式系統到分散式集群和大型機)操作系統基礎」。
從歷史來看,Unix 的定位是成功的,也就是說,我們的世界裡就不應該有非 Unix 的系統存在(除非嚴格的實時操作系統,比如火星車降落控制級別,但是經過調整的 Unix 可以滿足絕大多數比火星車稍寬鬆的實時需求)!在 Windows 里除了 GUI 系統之外最成功的部分也是借鑒 Unix 最徹底的部分。當然,窗口系統並不是 Unix 流派強行規定的部分。
所以,很可惜,在 OS X 之前,Unix 這麼一個從理論上到實踐上都被不斷的獨立證明適合一切領域的系統,偏偏在 laptop - workstation 中沒有一個真正完整的系統(當然,在 workstation 還是大實驗室設備的時候,各大 Unix vendor 還是短暫的競爭過一段時間)。mac的鍵盤特別難用, 可以幫程序員養成多想少打字的好習慣.
Programming is not about typing, it"s about thinking - Rich Hickey
瀉藥。
你既然這麼問,肯定不會是用來開發windows程序。
既然是mac或者unix開發的,那os x還是有很多優勢的:
- os x基於unix的操作系統(freebsd),這樣就天生適合程序開發,使用gcc、gdb、python、perl、ruby等開發環境很方便
- 命令行下可以使用強大的shell和標準的unix工具
- 內建ssh,遠程登錄伺服器很方便
- mac雖然沒有命令行軟體包管理軟體,但是可以按照homebrew、macport、fink等優秀的可選方案
- 合理地使用虛擬桌面可以極大提高工作和開發效率
- xcode也是個很強大的IDE,雖然我從來不用,我只在terminal下使用vim
這問題很有意思
AAPL 代表的是傳統電腦公司最後的法統,Macintosh 那一套的思路完全是 1970 年代電腦公司的做派。
Wintel 是 1990 年代的做法,通過標準化來壓低成本,實現「天下大同」。這種在大尺度結構的不同可以是兩者的根本差異。
讓我感到唏噓,畢竟有人曾經在更大的尺度做過類似的嘗試——人類歷史上最大規模的社會實驗——然後他們失敗了。
我換osx的最大兩個理由是第一不用再裝cygwin了,第二是不用再裝mactype了。
我就用過短短几天的黑蘋果,然後硬碟數據損壞,fsck 救不回來,無奈用回了 Windows。
首先,OS X 是一個 Unix 操作系統,這意味著我熟悉的 Linux 命令行都可以直接用。我並不是不喜歡 Windows 下的 cmd,只不過功能實在是弱了點。(隨便舉個例子,df、free、dd 就完全沒有實現。)而且第三方包管理器裝了以後和 Linux 一樣方便。(據說 Windows 下有 winbrew,沒用過不做評論。)
其次,OS X 的設計就是為了高效完成工作。非常多的快捷鍵,我一般用的時候一手滑鼠一手鍵盤,有當年學 AutoCAD 的那種感覺。Dock 上面放置的文件夾(「下載」等)直接打開,對於我這台開個 Finder 窗口很慢的破電腦來說簡直就是人民的大救星。(何況系統還提供了 API 讓應用能夠統一顯示下載文件的進度,尤為方便。)Spotlight 搜索也是如此,我第一次進系統的時候找不到終端,於是打開 Spotlight 輸入 「Term」,看到結果以後直接回車,完全不需要任何指導。預覽.app 是我用過最舒服的一個軟體,搞定一切文件。還有和 iCloud 的深度整合,備忘錄和提醒事項什麼的終於不需要再訪問速度慢到要死的 http://icloud.com 。還有軟體安裝,無論是從 App Store 下載還是直接複製 .app,都不是 Windows 能比的。全屏模式,多桌面,Mission Control,都很實用。至於觸控板,很遺憾沒有機會使用,看了官網上面的演示覺得超級好用。(這 TM 才是觸控板嘛!Windows 下面的觸控板就是個帶有巨大滾輪的平面滑鼠好不好!)
第三,作為一個(很不稱職的)開發者,Xcode 和系統的整合度之高讓我很感動。預裝 Python 讓我很感動。Command Line Tools 安裝後可以用 gcc 什麼的也非常方便。還有 Xcode 內建對 VCS 的支持。另外,由於軟體發行環境相對較好,沒有 Windows 上面那麼多問題(各種找不到控制項啊)。
第四,OS X 的界面設計很漂亮,感覺很華麗。但是我並不是對界面很苛求的人,就不詳細說了。
第五,設計小細節。比如說設置的自動保存,比如說默認滾輪方向和觸摸屏設備相同,比如說在插入觸控滑鼠或觸控板的時候所有滾動條隱藏而插入滾輪滑鼠的時候滾動條顯示出來,比如說 Dock 上面圖標跳起和應用程序圖標標記(比 Windows 那個淡淡的黃色好不知多少),比如說非當前應用仍然可以接收到滾動事件(你知道一邊看教程一邊操作軟體的時候這功能多好用么),比如說……數不勝數。OS X 的定位其實是非常明確的,否則這麼多年他無法在 windows 的巨大陰影中生存下去。
第一個目標人群就是沒怎麼接觸過(windows)電腦的小白用戶。這些用戶沒有被 windows 所毒害,不會有事沒事的右鍵點擊屏幕搞什麼無聊的「刷新」。也不會糾結左下角到底有沒有關機時必須點擊的「開始」菜單。他們不知道 setup.exe 的作用,也不關心我的數據在到底在哪個分區等等。但是由於 windows 巨大的市場佔有量,這一種類的用戶在數量上不多。
第二個目標人群就是小白專業用戶。就是各種專業軟體的使用者,比如視頻剪輯,照片編輯等專業軟體的使用者。這些用戶對於電腦完全是小白。他們不懂一般的防病毒知識,也對電腦的內部運作沒有太多經驗。他們的目的就是能夠順暢的使用這些專業軟體而沒有必要受到電腦的干擾。由於 OS X 的努力,這一類用戶數量不少。
第三個目標人群就是不喜歡 windows,對開源系統也不怎麼感冒的人群。這些人認為 windows 太傻瓜了,無法滿足自己的需求。而開源系統爛泥扶不上牆壁,也無法滿足自己的某些需求。而 OS X 雖然看起來傻瓜,但漂亮絢麗的大衣下面卻是鋥亮簇新的盔甲,很適合這一類用戶。不過由於開源系統的努力,有不少這樣的用戶還沉浸在折騰的泥坑中,他們只要抬頭看看遠方,就會發現 OS X 在向他們招手。
最後,有人肯定會反駁,OS X 機器太貴了,我買不起。其實,算上在 windows 和開源系統上折騰的時間成本,OS X 應該是最便宜的。對我來說,OSX的唯二優勢是
- 內置中文字體非常美觀
- 支持Retina屏
除此之外,我更情願用Linux/Windows系統。不過這兩點的優勢太大了,所以我80%的時間還是用OSX,包括現在
能涵蓋互聯網99%相關領域開發的環境。
安靜安分安全讓人安心稱心舒心的工具。
不是開發者,說說作為一般用戶的使用感受(用的是air)
1.穩定。程序的切換很少卡頓,雖然現在Windows很少死機了,但是程序的卡死很常見,但OS X下這種現象很少,給人的感覺是用起來很流暢,不會讓你因程序卡頓而抓狂。
2.漂亮。也許是因為Windows審美疲勞了,也許一直喜歡蘋果的品位,感覺OS X在各方面幾乎都比Windows漂亮。具體哪些方面這個就不說了,見仁見智。
3.省心。雖然自己也很喜歡鼓搗電腦,但OS X用起來確實省心,不用經常清理插件、系統垃圾,卸載軟體直接拖垃圾桶,或者用appdelete也很方便。
沒有那麼多遊戲玩 - 效率提升一倍。
沒有 MS Office - 效率提升十倍。
收費軟體多,軟體選擇少 - 節省大量時間。
iOS 開發沒有別的選擇, MBA 開發速度竟然還可以 - 節省大量時間。
Android 開發竟然比 Windows 下快速穩定 - 媽的和 iOS 比較想殺了負責 Android 開發環境的人。
Ruby, Node 的大量開發者也用這個系統。很多教程都基於 Mac OS - 不用為了 win 下面的罕見問題 debug 。
。。。
最重要的:
用久了 Windows ,會讓你自己開發的東西染上 MS 的品位 - 那你又何必浪費生命?
首先它是一個賞心銳目的系統
對於一般用戶來說,當然是手勢
對於開發者來說,必須首先是terminal
對於設計師來說,是字體、顏色
非 Mac 使用者隨便說一下。
最大的優點是專業級字體多,字重全面,貌似軟體對字體的支持更好。。。
其次是可以開發 iOS.
再其次是一些專業設計軟體只有 Mac 版。
當作一個GUI風格精奇的小眾Linux發行版用就是了
當你在win下長時間做著PS圖的時候,即時你養成了每隔五分鐘保存的習慣,但有時候還是會忘記,突然PS崩潰,做了幾個消失的圖就這麼沒了,此時的心情就是,我日!
還有就是同時開著幾個大型軟體在工作中,突然必須得切換到另一個程序,這個時候,過了幾十秒切換過來了,假死狀態中,然後,然後就是等吧,等了好幾分鐘發現這是真死的狀態,於是你只能調出任務管理器強行關閉進程,我日!
講道理開始接觸linux的時候是,
哇好牛逼,哇不會,好想學,哇又出問題了,又發現了新的折騰點好想學,然後無限循環,最後發現做完隨便一件事都饒了好多路,學了好多新東西感覺好充實,然後覺得這就是學習該有的樣子。
mmp的,現在的我真覺得這tm就是蠢。
知識不可能學得完,利用有限的時間去學自己感興趣的知識即可。
所以unbuntu這樣一個半成品的圖形界面讓開發者過於關注從根源底層的實現,是好事也是壞事,好事是精工細作便於開發最優的產品,壞處是,哪有那麼多時間精工細作,你真當我們都北歐戶口能跟托瓦斯一樣浪?不用關心生計?
mac最大的好處是屏蔽了開發環境冗餘且無營養的搭建和國外學術交流的屏障。
比如國外某段代碼的教學版本,往往是先出mac版,很簡單也是因為mac版搭建環境的時候糟心事最少,留下的學習代碼或者學習本質內容的時間最多。
比如你是個小白,打開了linux打算學gl,於是你使用了apt-get xxxxx 然後這些依賴的版本,國內的網路等等傻逼事情你先日一遍,打開vim,快捷命令用一用,幾個文件明晰得很,多了又要bash 正則玩得溜,MAKEFILE,cmake老套路先過一遍,這也就算了,在linux上這些的依賴最缺乏檢驗,都是大神誰有功夫保證每個download都有品質,你這麼牛批這點小事做不好?然後你只能一臉淡定地找庫,語言版本編譯錯,鏈接錯,等等這些中間的錯,或者因為你少看了一篇排版都不是很清楚的開源英文文檔。最後你終於勉強弄出了東西,這時候1天時間過去了,你開始打開垃圾的office,排版總覺得不舒服,然後還是換去網頁編輯器。沒辦法弄好了要寫文檔啊,領導還得看你的態度呢。
mac 安裝macPort brew,然後敲了兩個命令行,然後出去喝了杯咖啡找領導聊聊天,配完了,下午用自帶的office軟體寫完文檔,郵件客戶端直接發了。剩下的時間你看了些程序的基本框架,用軟體可視化了類圖,找了設計點,提煉了些業務邏輯順便向上面反應了可能的坑,之後試了外國大學的深度學習課程,跑了下mac下的程序,調試了裡面的代碼,嘗試自己搭了些流程。iterm,dash等等軟體商業品質在那裡,好用沒話說。就連git的圖形界面tower也美觀優質了好幾個量級,人活著不圖個舒心非得糟心么?
不是能做好某件事就是好,在國內,要能更快的做好某件事就是好。
我想起了那個高中輟學研究遊戲贏擎的小夥子,大家都攻擊他唯獨molip鼓勵他,我突然覺得我也應該鼓勵,其實核心部分除去了前輩們那些陳舊但優質的設計,留下的能夠自定義的營養也沒那麼多,無非就是怎麼把那些冗餘的東西復用,把思考留給關鍵的地方,僅此而已。
扯得有點多了,它的優勢就是能夠讓你專心做想做的事本身。
信仰!
沒有軟體的iPhone。。。。。。
個人覺得有如下優勢
1 長得好看 ui漂亮 字體好看 寫代碼眼不累
2 貴 高逼格 除了黑蘋果 想用osx必須買apple的產品 然後就是貴 貴了就有b格
3 操作 可以簡單 點點點 也可以複雜 -命令行
4 想開發ios 必須是他 但是估計以後ios也可以開發ios了 看ipad pro 目測以後要出ios版本的xcode
5 有命令行 這個對於開發者而言確實好用 比如git啊 或者是安裝一些組件啊 跟linux很像 比linux好看 又沒有驅動問題
推薦閱讀: