プログラマーはWindowsとMacどっちを使うべきか?
ITエンジニアのブログを読んでいるとMacを使っている人が多い印象ですよね。
おおまかには会社の系統によって、Windows派、Mac派が分けられます。
私は、
- 業務システム開発
- Webサービス開発
- ゲーム開発
をやったことがあります。
それぞれの業界でどんなPCが使われたかと、それを踏まえて個人として何を選択すべきかを紹介します。
業務システム開発のPC
業務システム開発だとほぼ100% WindowsPCでした。
PCがWindowsでプログラミング言語がJava、IDEがEclipseって感じでした。
Web系企業のPC
Webサービス開発ではJavaを使ってる会社とPHPの会社に参加しましたが、どちらもWindowsPCでした。
イメージ的にWeb系はMacをつかってる印象がありますよね。
なぜでしょうか?Macのほうがおしゃれだから?違います。ちゃんと理由があります。
JavaはどのOSでも同じように動くよう作られていますが、PHPやRuby、PythonなどはUnix/Linuxで動かすことをメインに想定しているので、WindowsとUnix系で動作が異なることがあります。
だから、Unix系OSであるMacを使っている人が多いんです。
とはいえWindowsでWeb開発することは十分可能です。
Windows PCに仮想化したLinux OSを入れればいいんです。
Virtual Boxっていう仮想化ソフトウェアをインストールするとWindows PCでLinuxを動かすことができます。
Windowsの上にLinuxが乗るんでパソコンのスペックが結構いります。特にメモリーがいります。
メモリーを4GBだときついので、倍ぐらい(8GB以上)積んでおくといいんじゃないかと思います。
特にデスクトップLinuxの場合、メモリーが多く必要です。
コンソールだけのLinuxだったら4GBでも十分動きます。
Macを使う場合でも、本番環境のLinuxと合わせるために、仮想化したLinuxをインストールする場合もあります。
「どうせ仮想化するんだから、どっちでもいいじゃん」って考えもできます。
ハードウェアのスペックが同じならばWindows PCの方が安く買える場合が多いので、そういった経済的コストで選択するのもありです。
ゲーム業界のPC
ゲーム業界はどうだったかって言うと、私が仕事した会社は2種類あります。
- Webサービスからスタートしてスマホゲーム開発に参入したネット系ベンチャーの会社
- コンソールゲームからスタートしてスマホゲームに参入した会社
PCは、
- ネットベンチャー → Mac
- コンソールゲーム系の会社 → Windows
でした。
コンソール系の方の会社はWindows PCというかワークステーションみたいなマシンでCPUがCore-i7とかじゃなくてXeonっていうすごいCPUを積んでいました。
Unityを使う仕事だったんですけど起動するのとかすごく速くて、すごいマシンだなと思いました。
ゲーム系の昔っからある会社はWindowsを特別チューニングしたマシンを使ってる感じなのかなと思います。
rebuild.fmではくろうさん(hak)もゲーム系の会社はWindowsが多いって言ってたので、たぶん私の見立てで大体合ってるんだと思います。
マックをどうしても使わなきゃいけないケースってある?
iOS用のアプリを開発する時です。厳密に言うとiOSアプリをビルドする時です。
コンソール系ゲームの会社ではスマホゲームの開発はWindowsPCで行って、ビルド用のMac PCが1台あって、そのマシン上でJenkinsが動いて自動ビルドを繰り返す、そんな体制でした。
なので、結論としては、どっちでも好きな方を使えばいいと思います。
基本は入ったプロジェクトで配布されたものを使うわけですしね。
使うPCを選べる会社もたまにありますが、その場合、私はチームのメンバーがどちらを使ってる人が多いか聞いてそれに合わせています。
PCの開発環境を構築するときにうまくセットアップできなかった時に同じマシンを使ってるほうが質問しやすいですからね。
Windows使いがMacすぐ使える?
私は長年Windowsを使ってきたタイプですが、Macはすんなり使えるようになりました。
MacにはWindowsにはないcmdキーがありますが、キー配置を変えればWindowsでブラインドタッチするのとほぼ同じ感覚で使えます。
なので、基本は
- 入った会社で使ってる主流の方を使う
- 家で使うPCは好きなのを使えばいい
って感じでいいと思います。