コロナ環境下で完全リモートワークになったのを機に、開発環境を Macbook Pro から Windows の自作デスクトップに乗り換えました。仕事の開発環境は 8年くらい前に Mac へ変えて以降、ずっと Mac でした。Windows ではもう開発できないと思い込んでいましたが、ここ数年で状況がだいぶ変わりました。半年以上 Windows上で生活していますが、不満はありません。Windowsデスクトップは Mac よりも低コストに高パフォーマンスマシンを組めるので、在宅勤務とはとても相性が良いです。

16cores/32threads

この PC は 16コア、32スレッドの AMD Ryzen 9 3950X で組んだものの、何をしても、仕事中ずっと CPU はガラ空きです。GeForce RTX 2070 Super も入れたものの、役に立っていません。Deep Learning の学習とか走らせないともったいないです。

Windows Terminal + WSL2

Windows Terminal という Microsoft が開発しているオープンソースのターミナルソフトが、普通に不満なく使えます。デフォルトのシェルを WSL2 にすると、UNIX系OS のターミナルの使い心地を提供してくれます。必要に応じて Power Shell などもシームレスに使えます。めったに使わないけど。

VSCode dev container + Docker

Windows へ移行したとはいえ、たまには Mac も触ります。開発環境を Docker化して、Docker 環境へのアクセスを VSCode dev container にすると、Windows を使っても Mac を使っても、全く同じ UX になります。もう使っている OS は関係ありません。開発中は Windows Terminal も実はそんなに触っておらず、専ら VSCode の Terminal です。

実は Windows でも Mac でも困らないのは、日常的に触るアプリが Chrome と Slack と VSCode と Docker だけで、OS 非依存になっているせいだと思います。

ファイルの相互アクセス

Window の世界と WSL2 の世界は別のファイルシステムになっていますが、Windows から WSL2 はネットワークドライブ \\wsl$ として見えます。WSL2 から Windows は /mnt/c として見えます。

Windows から WSL2 へ WSL2 から Windows へ

困ること

  • iOSアプリの開発さえしなければ、特に困ることはありません。
  • これは私物PCです。社内ルールにより、本番運用の作業用とかデータ分析とかには使えないので、その点がやや残念です。

でもやっぱり

M1 の発表は衝撃でした。いま改めて在宅勤務 PC を買うとしたら M1 Mac mini になりそうです。コスパ良すぎです。頑張れ Microsoft、頑張れ Intel、頑張れ AMD。