MacからWindowsへの開発機移行から2年
開発機をMacからWindowsに移行して2年ほど経った時点での振り返り。
年表
- 2009年07月 MacBook Pro 1を購入、プログラミング開始
- 2014年07月 MacBook Pro 2を購入
- 2016年12月 Windows機1を入手、PCゲーム開始
- 2017年07月 MacBook Pro 3を購入
- 2018年06月 Windows機2を購入
- 2020年09月 MacからWindowsへ開発機を移行
- 2021年01月 Windows機3を購入
- 2022年10月 現在
過去記事
開発機を移行してすぐの頃の感想は、次の記事に書いた。
Macからの移行という観点だと、次の記事も幾らか関連があるかもしれない。
感想
この二年で特に後悔することも無く、自分の状況により適した方に移行できて良かったと感じている。自分の移行理由は、趣味嗜好の問題は少なく、環境の変化への対応という側面が大きかった。ここ数年で情勢や働き方が比較的大きく変わってきており、この変化により取りたい選択が変わったとも言える。
移行すべきか他人に聞かれることがあるものの、個々人の置かれている状況を理解する必要があるので、咄嗟に答えるのは難しい。とはいえ、自分もそこまで変わった状況にいる方ではないと思うし、自分と似た状況でかつ選択の自由があるという人は幾らかいるはずで、そういう人達に対しておすすめしていきたい選択肢ではある。
悪かった点
- 開発環境が整備されていないことが多い。Macと比べてWSLだとファイルシステムの遅さの問題を受けにくく、Dockerを使いやすいが、MacBook Proを社用PCとして配る組織の開発環境だと、LinuxやDockerコンテナで開発することはほぼ考慮されておらず、自分で整地していく必要がある。変更自体は簡単だが、Docker環境の管理が所謂インフラと呼ばれるチームに一任されていたりすることが多く、開発環境向けの変更であってもアプリケーション開発者の権限のみでそれを通せなかったり、マイノリティ側からの変更要望なので優先度を低く見積もられがち
- 場合によって何かを諦めないといけない場合がある。Macの利用を前提としている社内環境や開発環境への要求を満たせなかったり、そもそも仕組み的に無理だったり。非開発者はWindowsを使っていることも多いので、これは主に開発環境周りで起こる。顕著な例だと、iOSやMac向けの開発はできないとか、組織内規定がMacを前提としているためにそこでは働けないとか
- 開発環境と非開発環境の部分が競合する場合がある。WSLで動かすLinuxを開発環境専用と割り切っているつもりでも、その基盤となる低レイヤーな部分で問題が起こりやすい。例えば、WSLを利用するためにはHyper-Vを有効化する必要があるが、これが『Escape from Tarkov』のアンチチートシステムに誤検知される。良く言えばこの作品でしか誤検知されたことはないのでマシかも
- MacBook Proと比べると、Windows機は購入額に対する買取額が低い傾向にある。金銭的には、パーツ交換や増設のしやすさと対になっていそう
良かった点
- 金銭効率が良い。同じ計算資源や周辺機器をゲームや動画編集や開発のすべてに充てられるため。大きなPCを隣に据えながら、薄くて小さいノートPCで開発するという非合理さが無い。人間側は基本的にシングルタスクで生活しており、ゲームをしながら開発作業をしたりすることがほぼ無いので、上手くいっている
- パーツを後から変更しやすい。趣味や用途が変わってくるとどうしても不足する部分が出てくるが、自分の用途で足りない部分だけ簡単に補えるのは嬉しいし、自分で使うものを自分で変更できるというのも単純に楽しい
- WindowsとMacを併用するのと比べ、コンテキストスイッチによるオーバーヘッドが少ない。人間側の認知負荷もそうだが、入出力デバイスをマシンによって使い分けたり、同じデバイスを共用するための苦労をしなくて済む
- WSLやその周辺ツールが想定以上によく出来ている。もっと大量の問題を踏み抜くことだろうと思っていたが、そんなことも無かった。想定が誤っていたとも言える。特定のハードウェアに依存する開発から距離を取るなど、問題が起きづらい方向を好んで舵を取ったという側面もあるのかもしれない
- Macだけを開発に使っているのと比べ、WindowsやLinuxへの理解をより深められる。良い点として、例えば本番環境がLinuxで動いている場合、よりそれに近い環境での知識を持っておくと役に立つことが多い。また利用者としてのWindowsに対する感覚も、ソフトウェア開発の文脈上で持っておくと助かることが多い
- M1 Macへの移行時によく起こる問題に自分の環境が影響を受けない。とはいえ、自分の開発環境が影響を受けないにせよ、他の開発者の問題も解決できた方が良いので、個人的な深刻度が変わるだけで、結局組織や社会の構成員としてこの問題には取り組むことになる
- Dockerをまともに利用でき、その辺りの利用や改善が捗る。MacのDockerが採用しているファイルシステムが遅くて現実的に使い物にならないという問題を避けられるため
- どちらかと言うと世間一般の人とPCについての話が通じやすくなった。自分も含めて周囲のほとんどの人がMacを使っているような環境に身をおいていると、たまにPCやデバイスの話をするときにWindowsの利用者の事情を汲み取れないことがあったが、それらが幾らか軽減された