35歳からの中二病エンジニア

社寺・鉄道・アニメを愛でるウェブ技術者の呟き

MacからWindowsへの移行を考えた背景

aikawame.hateblo.jp

MacからWindowsへの移行シリーズ第1回は、まず移行を考えた背景から。書いている人間のOS遍歴は移行検討の要素として大きいと思うので触れておくけれども、そんなのどうでも良いという方は飛ばしていただければと思う。

なお、シリーズの目次は上記リンクから辿ってほしい。

移行を考えた一般的な背景

今、Windowsが熱い。

20H1では待望のWSL2が正式リリースとなり、Windows Terminalや復活したPowerToysのような通好みのソフトウェアも開発が進んでいる。CEOがナデラに代わったあたりから、Microsoftが急速に開発者に向き合う姿勢を強めていることは論を俟たないだろう。

一方、「GUIのイケてるUnix」として開発者から支持されてきたMacの方は、ここ数年はiOSの傍らで放置プレイを食らっている感が強い。そのくせメジャーバージョンアップ毎にバグ祭りや後方互換消失で各所から悲鳴が上がっているのは気のせいだろうか。また、ARMチップ搭載Macの噂もいよいよ真実味を帯びてきて、PowerPCやIntelへの移行時のような過去の切り捨てがまた発生するのかという懸念も絶えない。

僕の周りだと、同年代以上は新卒時のPCがWindowsというのが当たり前だったので、一度Macに浮気しつつもWindowsに戻ってきたという声を聞くことが増えてきたのが印象深い。ただ、それより若いMacネイティブの人達はまだWindowsなど眼中に無いようではある。あとはアプリ開発に必要という理由でMacに縛られている人も多い。そういう状況なので、MacからWindowsへの移行というのは今の所大きなうねりではないように見受けられる。

移行を考えた個人的な背景

僕自身は、元々は生粋の窓っ子だ。3.1は親のPCで少し触ったくらいしか覚えがないけれども、中学の時から自分専用のPCを持ったことでWindows 95/98にどっぷりと浸かった。2012年から仕事でMacを使うようになるまでは、15年ほどの間メインのOSとして使い倒したことになる。

一方でMacの方は、1999年に5色のiMac Rev.Dがやって来たのかが最初。黎明期のOSXを無理矢理突っ込んで激重にしたのは今となっては笑い話だ。その後一時的に初期のIntel Macを所持するも、本格的に使い始めるのは2012年にgumiへ転職してから。メインOSとしては8年ほどで、ようやくWindowsの半分を越えた所だった。

そんなわけで、WindowsもMacもかなり使い込んでいるし、信者のような偏った考えも持ち合わせていないので、ある程度客観的に両者の良し悪しを判断できると思っている。

WindowsとmacOSのメリット・デメリット

僕が長年WindowsとmacOSを使い込んで感じた双方の特徴をまとめると以下の表のようになる。デザインだのブランドだのといった信仰心に左右される要素は考慮せず、あくまで実用性に重きを置いている。

項目 Windows macOS
ハードの選択肢 ×
アプリの豊富さ
動作安定性
後方互換性
UIの洗練度 ×
カスタマイズ性
Unixとの親和性

ハードの選択肢

これは言うまでもないが、macOSはApple製品しか選択肢が無いのが痛すぎる。バタフライキーボードのような問題が発生した時に別メーカーという選択肢が存在しないのは大きなリスクだ。

アプリの豊富さ

これは使用するアプリケーションの分野にもよる。開発者であれば今はむしろmacOSの方が有利かもしれない。一方で業務系アプリケーションやゲームは今でもWindowsが圧倒的に有利だ。ただ、今はクロスプラットフォーム化やウェブの発展により、そこまで意識しなくても良くなりつつある視点かもしれない。

動作安定性

最近はWindowsもmacOSもOS自体はかなり安定しているので、まともな環境でクラッシュするのを見るのは稀だと思われる。そこは甲乙付けがたいのだけれども、ただWindowsは何かインストールしたり設定したりする度にOSごと再起動を求められることが多いので、そこはマイナス点。

後方互換性

これはWindowsの強い所。20年前のWindows 2000やXP対応のソフトウェアやハードウェアでも平気で動いたりする。勿論動作保証が無ければ自己責任とはなるけれども…。一方のmacOSはメジャーバージョンアップ1回でもバッサバッサと互換性が切り捨てられるので、財布と過去資産には全く優しくない。

UIの洗練度

macOSの圧勝。ぐぅの音も出ない。Windowsは最近だと設定項目の散らばりっぷりが酷い。モダンなUIの設定を推しているようだけれども、後方互換性を意識してなのかコントロールパネルも併存していて、一方にしか無い項目も多いので混乱する。あとシステムフォントがバージョン毎に変わっていて、アプリケーションによってフォントが違っていたりする。この辺は一本筋の通ったmacOSのUI哲学を見習ってほしい。

カスタマイズ性

Windowsはレジストリーを操作することで結構危ないチューニングも含めてOSの深い部分を弄り倒せる。また、レジストリエディターが標準提供されているのもありがたい。macOSはそこまで柔軟ではないが、元が洗練されているので「機械を人間に合わせるWindowsか、機械に人間を合わせるmacOSか」の選択になるということだろうか。

Unixとの親和性

近年Windowsが頑張っている部分。WSLの登場によってCygwinのような中途半端な互換レイヤーは過去の物となった。とはいえmacOSはUnixそのものなので比べる相手が悪い。WSLもまだまだ制約が多いので、今後に期待というところ。

具体的になぜ移行しようと思ったか

さて、これらを踏まえて今回なぜまたWindowsに舞い戻ろうと思ったかだけれども、一番の問題はアプリケーションのパフォーマンスだ。

僕は普段の開発でMacBook Pro 13(2017・TB無)を使っている。CPUをCore i7に変更しているし、デュアルコアとはいえそこまで非力なマシンではない。ソフトウェア環境Dockerを常用していて、更にIDEにはIntelliJ IDEAを使用している。また、外部ディスプレイとして以前の記事でも紹介したEIZOの4K製品を繋げている。

で、この環境がめちゃくちゃ重い。死ぬほど重い。どのくらい重いって、IntelliJで2〜3文字打ち込むだけでCPU使用率が200%を超えるくらい重い。あと、Affinityとかのグラフィック系ソフトウェアについても同様で、カーソルが紙芝居になる。

IntelliJのパフォーマンスについては公式のIssueで5年も前から議論が続いていて、Macの画面描画の特性にも起因していたりと根は深そうである。そうするとAffinityも難しそうだし、Dockerについてもファイルシステム周りの問題で遅くなっているので一朝一夕に改善できるものではなさそうだ。

なお、Macで高解像度ディスプレイを繋いだ場合のレンダリング負荷については以下の記事が詳しい。

infornography.blue

どうやら重い原因はMacの根本的な仕組みにありそうで、13インチクラスのMacBook Proではマシン性能でカバーするのも当面は難しそうだ。

そして移行作業へ

そうするとWindowsに移行するしか無いか?と考えた時に、先述の通り、両OSの比較については僕自身はどっちもどっちという見解だった。

ハードはガジェット好きなので選択肢は多いに越したことは無いが、一方で開発環境としてはUnixとの親和性は重視したい。あとはUIの洗練度については目を瞑れば何とかなるので、最終的には近年特に開発者に寄り添っていると感じられるMicrosoftの方に期待してみようと考えた次第だ。

次の記事からは実際の移行作業でやったことについて触れていきたい。

aikawame.hateblo.jp

【新パッケージ】Windows 10 Home 日本語版/May 2019 Update適用/パッケージ版

【新パッケージ】Windows 10 Home 日本語版/May 2019 Update適用/パッケージ版

  • 発売日: 2019/09/13
  • メディア: USBメモリスティック