前言
我最近試用了 Linux Mint 和 Ubuntu,幾年前我也試過一些 Linux 發行版。當時我還沒踏入程式設計,只是喜歡東摸西摸,身邊總是帶著一支 Puppy Linux USB 隨身碟。我真的很努力嘗試,即使現在我的程式設計能力更強了,又再給它一次機會——我發現自己最後總是回到 Mac 或 Windows。
2025 年 5 月 6 日更新:
第一部分是寫給程式設計初學者的。如果你已經熟悉程式設計,請跳到這個章節閱讀一位同行的程式設計師的意見。
從零開始學習程式設計
結論
用 Mac——我會用我的經驗告訴你為什麼。
為什麼不選 Linux
- 難度
Mac 是消費級作業系統,這代表它的許多功能和介面都非常使用者友善。大多數應用程式都有安裝檔讓你下載、點一下、安裝,然後就能用了。
反觀 Linux,如果你想用電腦做任何事,基本上都得以文字為主。別相信那些說 Linux Mint 非常像 Windows 的人。某種程度上確實如此,但如果你想要安裝任何非內建、或軟體管理員裡沒有的東西(你一定會遇到),你就得自己搞清楚所有眉眉角角,搜尋並嘗試別人說對他們有效、但對你可能無效的指令——只為了安裝一個在 macOS 和 Windows 上點一下就能裝好的簡單程式。
- 耗時
延續上一點,如果你試著安裝某個東西,你會花很多時間東摸西摸。尤其是要尋找你在 Windows 或 Mac 上熟悉、但 Linux 上沒有的替代方案。這聽起來很棒,畢竟你大部分時間都在用終端機寫程式,但問題是,你可以把那些時間拿去用程式碼打造東西,例如 JavaScript、React、SQL、Python 等等。那些你在工作上、或拿來架網站、做應用程式時會用到的程式碼。我不是說你不會用到 bash,只是它並非必要。
- 作業系統的小毛病
如果你買的裝置出廠就搭載 Linux,那很棒。如果你是在原本跑 Windows 或 Mac 的裝置上安裝 Linux 發行版,你很可能會遇到一些作業系統運作上的小毛病。作業系統有可能運作得很順,但總會有一些這裡那裡需要修的東西。舉幾個例子——也許 Zoom 偶爾會卡住,也許筆電的鍵盤背光無法運作,Wi-Fi 變慢等等。因為 Linux 核心和驅動程式大多由社群貢獻,這很棒,但也代表他們對你的筆電不負任何責任,你得自己用程式碼搞清楚原因和解決方法。很多時候,這些問題是硬體與 Linux 發行版不相容造成的。
- 社群
Ubuntu 和 Linux Mint 這類主流 Linux 發行版擁有最大的使用者群。如果你才剛開始用 Linux,強烈建議你從這兩者中挑一個,因為使用者越多,問題的解決方案就越多。不過,Mac 能獲得的支援遠多於 Linux。不論是在 Apple 官網上,或是針對你的 MacBook 機型,你都能更輕鬆地找到精確的解決方案。
- 學習程式設計
許多程式設計教學都是為 Mac 和 Windows 設計的,即使我們大部分時間都在 VSCode 裡工作,你仍然需要和作業系統的終端機互動來做一些調整,而 Linux 的運作方式就是有點不一樣。你總能找到問題的解決方案和替代做法,但話說回來,如果你只是想當個前端開發者,這些東西並不是非懂不可。
- 個人電腦
對我來說,Mac 是個人電腦,Linux 不是。Mac 的許多內建功能都非常易用且備受好評,尤其是如果你有 iPhone,你可以在 Apple 裝置之間複製貼上、AirDrop 等等。
- 全方位
你在 Linux 上能做的事,在 Mac 上都能做,但反過來則不然。舉例來說,如果你想為 iOS 打造行動應用程式,有 Xcode 可以用。如果你想用 VSCode,當然兩者都支援。如果你偏好命令列,Mac 也有終端機。
給初學者的總結
Mac 可說是更穩健、更全方位、值得信賴且無需東摸西摸,無論是你的程式設計需求還是個人需求都能直接了當滿足。我只能建議你,如果你就是不喜歡 Apple 或覺得裝置太貴,才去用 Linux。但話說回來,你隨時可以買一台二手 MacBook。光是為了不用 Linux 而買一台 MacBook,就很值得了。哈哈,我知道我有偏見。
儘管如此,祝你成功。
繼續寫程式吧。
給老練程式設計師的補充段落
我上面寫的內容是給那些沒有程式設計經驗、或經驗很少的人看的。我的重點是,macOS 能更直接了當地幫助任何正在學程式設計的人起步,同時 Mac 也能照顧你的個人需求。如果路上有太多障礙,可能會讓學習者感到挫折,進而放棄。
不過,如果你已經對程式設計得心應手,情況可能就不一樣了。
以下部分會更偏技術性……
那麼,你熟悉程式設計也習慣 Linux,到底該選哪一個?
就我個人而言,我仍然偏好 M 系列的 MacBook 勝過其他機器,過去幾年我在這台 M2 MacBook Air 上完成了非常多事。
硬體方面,它是一台快速又穩定的裝置,電池續航力極佳、觸控板超棒、鍵盤安靜、螢幕不錯、運作安靜,還有內建喇叭。
軟體方面,它一直都很省心、運作順暢,我可以在 Mac 上輕鬆取得任何軟體,不論是直接下載或用 brew 都行。
我承認我一開始是用一台舊的 2015 年 MacBook Air 學程式設計,之後就一路沿用 MacBook。但這主要是為了開發 iOS 應用程式。如果你不想做原生 Apple 應用程式,你並不需要買 Mac。這就帶到接下來的第一點。
你做的是哪種程式設計?
行動應用程式;Apple 應用程式
你想為 Apple 裝置打造原生應用程式嗎?如果想,就買一台 Mac。這裡「原生」這個詞很關鍵,因為技術上你可以用 React Native 搭配 Expo 為 Apple 裝置寫應用程式,他們有雲端編譯器幫你執行 Xcode 編譯。所以,你可以用 Linux 或 Windows 機器來寫程式,再提交到 Expo 雲端幫你編譯。不過實際上,直接買一台 Mac 總是更好,即使是舊的也一樣。在本機建置能讓你全程掌握程式碼,因此修改起來會輕鬆直接得多。
如果你主要做網站或後端伺服器,你可以買任何想要的電腦,甚至 Windows 也行。這類程式設計工作沒有繪圖方面的需求,所以一台舊的 Lenovo ThinkPad 就能勝任。
你不需要擔心 Android 應用程式。反正你在任何平台上都能開發。
遊戲
不過,如果你做的是遊戲程式設計,或有執行、建置語言模型/機器學習模型的需求,建議你買一台效能強大的 Windows/Linux 電腦,而不是 Mac。這樣你的錢會花得更值得。更別提我上次確認時,Unreal Engine 5 的效能與 Windows 電腦相比並不理想,這是因為它還沒針對 Apple Silicon 最佳化。
除非你用的是 Godot 或 Unity 寫程式。對這些輕量級遊戲引擎來說,一台 MacBook 也已經很夠用了。
軟體
Docker
使用 Docker 很簡單,macOS 有提供 .dmg 格式的 Docker Desktop。雙擊安裝就能用了。
本機 Postgres
Postgres.app 也一樣,輕鬆簡單。
模擬器
不論你用哪種程式設計框架,都能在 MacBook 上取得 iPhone 或 iPad 模擬器。Flutter、React Native、SwiftUI 等等,你說得出來的都能在 MacBook 上運作。你也可以在 UTM 裡安裝 Linux,讓 Ubuntu 跑在你的 Mac 上,但反過來則不然。
程式碼編輯器
嗯,現在每個 IDE 在每個平台上都有了。
最終總結
所以,你該問自己的關鍵問題是:你想不想為 Apple 裝置開發行動應用程式?
即使你用的是跨平台框架,你也得買一台 MacBook,才能獲得完整的 Apple 應用程式開發體驗。這會讓一切輕鬆得多。
我不喜歡 Apple 封閉的花園生態,也不喜歡額外儲存空間的不必要加價,但他們確實做出了很棒的產品。
我的建議是,如果你現在只有一台 Windows 電腦,就安裝 Ubuntu 甚至 Linux Mint 看看你喜不喜歡。如果喜歡,就繼續用,直到你真的需要 Mac 為止。
我也主張買你真正想要的電腦。光是裝置本身用起來愉快,就能讓你想工作。
附註
更多關於 Apple 應用程式
在你做決定之前,有幾件事要記住:
- 只有執行最新作業系統的 MacBook 才能用最新的 Apple API 開發
- 例如 AI 之類的功能,只能在 Apple Silicon Mac 上開發。
- Vision OS 只能在 Apple Silicon Mac 上開發。
- 機器學習只能在實體裝置上執行,不能在模擬器上執行。- 如果你實作了裝置端的機器學習模型,你需要一台 iPhone/iPad 來測試你的應用程式。如果你試著在 iPhone 模擬器上執行,它只會當掉。