入手M1 MacBook當主力開發機:程式設計師使用半個月後如是說

MacBook換成ARM晶片後,它還是程式設計師的開發利器嗎?

經過國外程式設計師半個多月來的嘗試,一些常見開發工具的兼容狀況也得到披露。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

Xcode、VS Code、Homebrew……等常用工具能夠完美運行嗎?如果你還在因為這些問題猶豫要不要買,那麼看了這篇文章或許能得到答案。

程式碼編輯器

Vim是通用二進位文件,因此它已經能在M1上直接運行。

VS Code可以通過Rosetta 2轉換來運行,而insider版已經原生支援ARM平台的MacBook,相信正式版也不會太遙遠。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

Xcode

蘋果第一方開發工具Xcode自然不必擔心兼容性,而且它在M1晶片上的運行效率很高。

編譯PSPDFKit PDF SDK,在2019年16英寸MacBook Pro上耗時7分31秒,在M1版MacBook Air上則耗時8分49秒,而後者是無風扇的。

不過Xcode在測試低於iOS 14版的應用程式時,會出現一些問題。WebKit會在記憶體分配器中崩潰,Xcode有時會定期卡死。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

因此如果你要測試較低iOS版本程式,還是在Intel版的MacBook上運行,或者希望下一次Xcode更新時,蘋果能解決這個問題。

Docker

現在Docker無法在M1晶片上運行,也無法通過Rosetta 2轉換的方式使用Docker Desktop。

但是同樣使用ARM晶片的樹莓派卻能做到。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

所以在MacBook上運行Docker最好的方法是:運行ARM版Linux虛擬機,在虛擬機中運行Docker。

具體操作方法請參照這篇教程

至於Docker官方何時將提供支援,可以註冊Docker ID來獲取最新進展。

Homebrew

Homebrew可以通過Rosetta 2轉換的方式進行安裝,方法也很簡單,只需在過去的安裝命令前加上arch -x86_64即可。

這種通過轉制的Homebrew在某些軟體上可能有一些兼容性問題,因此建議安裝另一個手動編譯版。

第一種方式安裝的Homebrew在/usr/local/bin目錄下,而第二種方式安裝的在/opt/homebrew目錄下,後者不會自動添加到PATH環境變數中,因此需要手動設置。

這樣,你的Mac里就有了兩個Homebrew:一個是Rosetta轉換的,一個是原生的。原生的目錄在前面,那麼brew命令將默認運行這個版本。

如果想運行Rosetta轉換版怎麼辦?我們可以單獨設置一個ibrew命令:

目前,Homebrew尚未提供用於ARM Mac的預編譯軟體包,因此最好使用brew install -s 命令進行安裝。

具體有哪些軟體包不兼容,可以到GitHub項目頁的issue中查詢:

其他常用軟體

說到編程必備,怎麼能少得了Chrome,現在Chrome 87版已經開始支援M1版的MacBook。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

還有微軟的Office三件套,若使用Rosetta 2轉譯,啟動時間可能需要20秒。官方建議安裝針對macOS Big Sur優化的16.43版。

微軟官方表示,已經開始將Mac應用程式遷移到通用二進位文件,未來Office三件套的兼容性不成問題。

如果是基於Electron的應用程式,經過Rosetta 2轉譯後速度會變得很慢。原因可能是V8 JavaScript編譯器似乎阻止了提前翻譯。

現在最新版的Electron(Version 11)已經支援了M1晶片,還需要等其他開發者更新軟體。

由於Rosetta 2轉譯的程式會變成只讀文件,因此自動更新將被禁止,此類程式需要用戶手動更新。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

虛擬機和Windows

雖然VMware和Parallels可以在M1晶片的MacBook上使用,但是所有Mac虛擬化解決方案均不支援Apple Silicon。免費開源的虛擬機Virtualbox更是無法運行。

現在ARM版Windows可以模擬x86應用程式,而微軟正在研究x64模擬。

最近模擬器軟體CrossOver展示了在Mac上運行Windows軟體的能力,但這只是運行單個程式,而非運行虛擬機和整個系統。

而且M1最高只支援16GB記憶體,對虛擬機來說顯得有些捉襟見肘。

入手M1 MacBook当主力开发机:程序员使用半个月后如是说

在運行並行測試時,Mac開始大量在硬碟和記憶體之間進行數據交換,性能確實下降了。對於運行的虛擬機,這會帶來更多的問題。

結論

新款搭載M1晶片的MacBook速度快、運行安靜,但是在軟體方面還需要做很多工作,才能趕上搭載Intel晶片的MacBook。

你可以拿它作為第二台開發電腦使用,如果作為主力開發機,可能會遇到這樣那樣的問題。想要更好的兼容性需要等到明年軟體廠商更新,或者是M2發布。

另外,最高16GB的記憶體對程式設計師來說可能還是不夠,希望未來的Mac有32GB記憶體可選。