本当にMacはWindowsより優れているのか?Mac→Windowsに乗り換えてみた感想


エンジニアを始めたときからMacだったがいろいろありWindowsに変えてみました。
諸々開発環境を整えて1ヶ月たったので諸々感想を。
WSL2でUbuntu20.04を使用

使用しているツールの移行

Docker

基本的には動いているが、WSL2が若干不安定なのが原因で問題が起きるときがあり。
ただ、若干不安定なのはDockerForMacも似たようなものかも.....

とはいえ環境によってはPermision問題がでるので注意

brew

Linuxでbrewが使えるlinuxbrewを使用しました。
linuxbrewの仕様上caskは使えませんがそれ以外は全く問題なく使えています。

開発環境

最も移行するときに問題になりました。
macOSではIntelliJ IDEAとvimそれぞれを使っていました。

まずIntelliJ IDEAはmacOSとWindowsでキーマップが全く異なります。
以下のプラグインで一応それっぽくはできますが、やはり完全に同じ動きにはできませんでした。

結局WindowsでIntelliJ IDEAを使うことは諦めてvim一本にすることにしました。

やはりWSL2は癖が強い

WindowsでLinuxOSが仮想的に動くWSL2ですが、DockerもWSL2上で動くし意外に問題なく動いています。
ただ以下の特有の問題もあります。

仮想環境なのでホームディレクトリがWSL2とWindowsで別になる

Windows側のホームディレクトリにWSL2からアクセスもできるけど、読み書きが遅くなったりパーミッションが謎挙動することがあり非推奨

WSL2側の時間設定がずれる

WindowsをスリープさせるとWSL2の世界では時が止まり、復帰してもそのままなのでたまにリセットをかけないと時間設定が過去にずれていきます。

ネットワーク系の動きが独特

WSL1ではWindows側と仮想環境で完全に別のIPが振られて、localhostでアクセスしてもWSL1に到達できない仕様だったようですが、WSL2ではホスト側にフォーワードされるようになりました。

これで問題なくアクセスできるかと思いきや、127.0.0.1やlocalhostでサーバーを立ち上げると外部接続とみなされてアクセス拒否されることがあります。
0.0.0.0で立ち上げれば良いのですがなかなか原因がわかりませんでした。

なぜ移行したか

今回の移行のそもそものモチベーションはMacBookProのCPUが遅くてきつかったことです。
IntelMacのMacBookPro13インチを全部盛りしていましたが、webpackやdocker buildが我慢できないくらい遅かったからです。
M1チップも検討しましたが、諸々のツールが安定するのはまだまだ先になると思ってWindowsに乗り換えてみました。

現状以下のRyzen5900hsが載ったゲーミングノートPCを使っていますが、3分の1ほどの時間でbuildが終わり非常に快適です。
https://kakaku.com/item/K0001335798/

まとめ

罠は多かったですが、結局乗り換えてみるとWindowsでも快適に開発できているので満足です。
しかし、WSL2の癖の強さを考えると最初はMacのほうが向いていそうですね。