こんにちは、 @yucao24hours です。ことし 3 月ごろから本格的にボディメイクにハマっていて、3 ヶ月間で筋肉量をほぼ変えず体脂肪率を 24% から 19% まで減らせました!今は筋肉量を増やすべく、もりもり食べてがんがんトレーニングしているところです。
さて、タイトルの件。
2013 年の入社以来ずっと Mac を使っていた私が Windows マシンに変えて 9 ヶ月が経過しましたので、ここに至るまでに私が実際に感じてきたことなどをまとめてみようと思います。(以下、特筆しない限り "Mac" は "macOS のマシン" を指します。)
過去の私がそうだったように、「今は Mac を使っているし、どれくらい影響があるかわからないので、なかなかふんぎりがつかないな...」と思われている方もいらっしゃるのではと思います。そのような方々の判断材料のひとつとしてお役に立てれば嬉しいです。
※ 対象読者としては、現在 Mac を使っていてお悩みのかたを想定しています。現在 Linux を使っている方は、Windows を消して Arch Linux なぞを入れれば問題ないでしょう。(ジョークだよ!)1
前提1: PC を移行する時点での私の開発環境
私がふだんのお仕事でどんなツールを使って何をしているか、ここ最近で参加した数プロジェクトの実績から代表的なものをまとめておきます。
- コードを書くのは Vim
- ターミナルの管理は Tmux
- シェルは Zsh
- 開発環境は Docker (on WSL2)
- メインのブラウザは Chrome
- 資料の確認のために Microsoft Excel, PowerPoint
- チーム内、社内での連絡には Slack, Idobata
- プロジェクト管理は Pivotal Tracker, Trello, Notion
- ドキュメント管理は DocBase, esa, Notion, Google Docs
- ソースコード管理は GitHub(Git の操作は CLI で)
前提2: 購入したマシン
参考までに、購入したマシンとスペックについても記載しておきます。
当時、社内の複数の先輩が既に業務で使っていたこと、私自身も某プロジェクトの検証機として使った経験があったことから、Dell XPS 13 を選びました。
- マシン: Dell XPS 13 (9300)
- OS: Windows 10 Pro (64ビット)
- メモリ: 32GB
- CPU: 第10世代 インテル® Core™ i7
で、どうだった?ファーストインプレッション
改めてこのことについて書いてみようと思ってここ一年弱の業務体験を思い返してみると、「Mac のころからあまり変わらない」というのが最初の印象です。
前述した、頻繁に利用するツールのリストをご覧いただいてもわかるとおり圧倒的にブラウザベースのツールが多いですし、ネイティブアプリがしっかり用意されているサービスばかりだというのが大きな要因かもしれません。
また、開発で使っているツールについては、WSL2 の Ubuntu 上で使っているというのもあって "このマシンは Windows である" ということを殊更意識するような場面はあまりなかったように思います。(私が VSCode 使いとかだったら、もしかしたらもう少しなにか違ったのかな...いや、そうでもないか...?)
なお、WSL2 のセットアップについては当ブログの以下の記事でも解説しています!が、最新の情報ではないので今からトライする方は必ず公式情報もあたってみてください。 blog.agile.esm.co.jp
WSL2 に関しての留意事項
私が作業している中においては、以下の WSL2 特有のふるまいに遭遇し影響を受けました。WSL2 を使っているシステム開発者はほぼみな関係してくることだと思うので、予め知っておいて損はないんじゃないかなぁと思います。
systemd がデフォルトでは動いていない
timedatectl
を使おうとしたら動かなかったため「はて?」と思い、調べたところで知りました。
こちらの現象に対する対応は https://github.com/arkane-systems/genie というライブラリを導入するのが定石になっているようです。
VPN に接続するとネットワークが切断され、インターネットにアクセスできなくなる
私が関わる業務ではセキュリティ上の理由から VPN に接続した状態でないとアクセスできないように制限されている操作などがあるため、よく VPN に接続するのですが、そのたびになぜか git pull
や cap deploy
ができなくなるという現象が起きていて大変困っていました。上記に書いたとおり、VPN に接続するときというのはたいてい「失敗するとちょっとこわい」操作なので、原因がわかっていない頃に接続できなかったときは焦ったものです。。
こちらは Microsoft のページで対応方法が解説されています。他にも現実的に運用しやすいワークアラウンドを考案している方もいるようなので、参考にしてみるとよいかもしれません。
Windows にしてよかったこと
さて、それではそろそろ「Windows にしてよかった!」と思ったことについてもふれておきましょう... それは、他でもなく「(WSL2 上で)Docker を使った開発が快適にできるようになったこと」です。実際、これを一番の目当てにしてマシンを変えたので、期待通りのメリットを享受できた点にはとても満足しています。
ここ数年で参画したプロジェクトの中で、開発環境に Docker を使っていないというプロジェクトはひとつもありませんでした(本番環境でもコンテナを使う、というプロジェクトも珍しくなくなりましたね)。
それくらい Docker 上で開発することが普通になった今、Mac の Docker for Mac の処理のスローぶりは私にとって致命的でした。
私は TDD が大好きなので、コードを書くときにはまずテストを書いて作業にエンジンをかけ、そこからドライヴしていくのがお決まりのスタイルです。ところが、Mac の Docker においてはそれを満足にできず、長いこと「なんとかしたいなぁ... 」と感じていました。
しかし、Windows (WSL2)に変えてからというもの、そういったストレスは一切なくなったのです!これは本当に感動的で、当時の日報にも
Docker 上でテストを流したり、ブラウザ操作をするたびに、お笑い芸人並のオーバーリアクションで「いや処理はやっ!!!!」と声が出るくらいである。
と書いていました。
これだけでも、フォントが Mac に比べて好みじゃないなどといった微妙なネガティブポイントを補って余りある利点だと感じています。WSL2 さまさまです。
気に留めておいたほうがいいこと
最後に、乗り換えるにあたって認識しておくと後悔が少ないであろうことを挙げてみます。(当たり前のことだと思われるかもしれませんが、そう思えた方はこちらを気にせず迷わず WSL に乗り換えてしまいましょう!)
(日本語の)情報が少ない
まず、WSL2 については利用者は徐々に増えているものの、Mac に比べたら圧倒的にマイナー側なので公に出ている情報は少ないです。
何かあったときには発生事象から自力で原因を突き止めたり、WSL の公式 repo の issues 等を見て状況を把握したりできる必要はあると思います...当ブログのような技術専門リソースにご興味のあるような方ならそんなの当たり前だと思われるでしょうが。
あ、あるいは弊社のように、なにかあったときにすぐに聞ける人たちが近くにいてくれるような環境だとよりよいですね!(宣伝)
気にすることが多くなる
学習をはじめて間もない方にとっては、WSL2 というものに加えて、ホスト OS / WSL2 上の OS / Docker 等とさまざまな要素が絡み合っている状態はトラブルシューティングに苦慮するところかもしれません。
なにかあったときの問題の切り分け作業が多岐に渡る可能性が高くなるため、これらの要素に不慣れな方は解決までの道のりがちょっとハードかもしれないということは認識しておくとよいでしょう。もしも Linux( や Docker )にまったくさわったことがないという方なら、それらについてを学びたいというのが作業の主眼でない限りはまずは Mac をお使いになったほうが、やりたいことにフォーカスし続けられてよいのではと思います。
以上、気がついたことをまとめてみました。
他にもご意見などがあればぜひ聞かせてもらえると嬉しいです!それでは、ごきげんよう~。
-
最近の弊社では Arch Linux を入れている人が多いようなのです。↩