前のページでは、MacとWindowsそれぞれのメリット・デメリットを解説しました。続いては、どちらを選ぶのが良いか、理由とともに解説します。
ITエンジニアはMac一択と言われる理由について
「ITエンジニアはMac一択」と言われる主な理由として、下記の様なものを良く見かけます。
①ITエンジニアはMacユーザーがほとんどなので、わからないこがあっても周りに聞きやすい。Web上でも、基本的にMacを前提として説明されていることがほとんどなので、問題を解決しやすい。
②MacはUnixベースのOSなのでターミナル(UNIXコマンド、シェル)が使える。また、Linuxベースのプログラミング言語やツールが最初から使える。
③Web開発は特にLinuxサーバーが主流なので、Linuxと同じ様に使えるMacだと開発がしやすい。また、Linuxの操作を覚えやすい。
④Mac 1台でWindowsも使用できる。
これらについて、間違ってはいませんがそれほど大きなメリットとは言い難いです。
①についてですが、Web系の企業やフリーランスのエンジニアの間では確かにMacの使用率が高いと思います(統計データがないので確かなことは言えませんが)。Web系のフロントエンドエンジニアを目指すのであれば、周りにあわせてMacを選んだ方が無難かもしれません。ただ、OSの違いはプログラミングの中身にはほとんど影響しません。Windowsを使い慣れている人が、あえてMacを使う必要はないと思います。むしろ、バックエンドやWeb系以外も含めて幅広くやりたいのであれば、Windowsの方が何かと便利です。
②については、PCの初心者がターミナルを使うこと自体、かなり抵抗があると思います。ターミナルはCUIと言って、文字だけでPCを操作するものです。映画などで、真っ黒い画面によくわからない文字が羅列されているシーンなどがありますが、まさにあのイメージです。また、デフォルトで使えるプログラミング言語やツールもバージョンが古いことが多いので、結局そのまま使うことはできません。
③については、LinuxベースのWebサーバーをMacの中で動かすことができて、Web開発環境の構築が簡単にできるのは確かです。ですが、特に初心者にとっては、これがかえってプログラムの理解を妨げると思います。自分が行っている操作がサーバーに対するものなのか、クライアントに対するものなのか、これを理解しないまま進めてしまうと後々困ります。また、一度サーバー環境を構築してしまえば、その後頻繁に操作することはないでしょうから、さほど大きなメリットにはなりません。
④については、先に「Macのメリット」でお話しした通り、M1チップを搭載した最新のモデルには該当しません。
①~③について更に詳しくお話しすると、これらはMacの特有の機能によるものではなく、Web系がLinuxを中心としているためのものです。現在、Windows 10 にはWSL2という、Windows上でLinuxを動かす機能が備わっています。Linuxを使えるということ点であれば、Macである必要はないのです。また、Windowsであれば、仮想環境としてLinuxを構築することも比較的簡単で、Webを検索すれば多くの情報があります。結局のところ、サーバーは仮想環境として作成した方が何かと便利です。MacでLinuxの様な操作ができることは、学習の初期段階の環境構築が少し簡単になるという程度のメリットしかありません。
仮想環境(仮想マシン)とは
ここで、仮想環境について知らない方向けに、簡単に説明します。ITエンジニアを目指すのであれば、絶対に知っていた方が良いことです。
仮想環境とはひとことで言えば「WindowsやMacなどのOSの上で、Linuxなど別のOSを動作させる環境」です。仮想マシンとも言います。Macのメリットで触れた、「Parallels Desktop」を使ってWindowsをインストールする場合、このWindowsはMac上で動く仮想マシンです。Windows 10の「WSL2」で動作するLinuxも仮想マシンです。物理的なマシンはPC1台ですが、仮想的に複数のマシン(コンピューター)があるかのように動作します。
PCで仮想マシンを作成するには、下記の仮想化ソフトを使えば比較的簡単にできます。
・Oracle VM VirtualBox
・VMware Workstation Player
どちらも個人で非商用利用なら無償ですが、M1 Macには対応していません。M1 Mac に対応しているものは「Parallels Desktop」のみで、有償となります。(2021.6.17時点)
PCのOS(Windows/Mac)をホストOS、仮想マシンのOSをゲストOSと言います。
また、Windows 10 ProではHyper-Vという機能が使え、より高度な仮想マシンの作成も可能です。上記の仮想化ソフトを使う場合に比べると、設定などで若干難しく感じる部分もありますが、Webで調べればすぐにわかる程度です。
仮想マシンは簡単に作成、削除ができます。複数作成することもできますし、不要な仮想マシンは停止しておくこともできます。また、Hyper-VやVirtualBoxではチェックポイント(またはスナップショット)という機能で、仮想マシンの状態をまるごと保存する機能があります。仮想マシンで何か大きな問題が発生した場合にも、保存してある状態にすぐに戻せます。
プログラム開発ではLinuxサーバーを用いることが多いですが、必要なサーバーソフトは開発するシステムにより異なります。Macに直接サーバーソフトをインストールしてしまうと、バージョンの違いや他のサーバーソフトとの競合などで問題が発生しやすいです。その点、仮想マシンとしてLinuxサーバーを作成すれば、開発するシステムごとにサーバーを別けることができるので、この様な問題は発生しません。また、インストールや設定のミスなどでサーバーに破壊的な問題が生じても、事前にチェックポイントを保存してあれば簡単に元に戻すことができます。また、サーバーとクライアントの関係を明確に意識できるので、プログラムの理解にもつながります。
この様に、仮想マシンの利用はメリットが多いですが、デメリットもあります。仮想マシンも当然、PCに搭載されたCPUやメモリーを使うので、仮想マシンを使う想定であれば通常より少し高性能なPCが必要です。
CPUはそこまで高性能でなくてもいいです。最近のものであればCore i5やRyzen 5でも問題ないですし、Core i7やRyzen 7であれば十分です。
メモリー容量は最低でも16GBは必要ですが、それ以上はほぼ必要ないと思います。デスクトップPCであれば後で増設もできるので、必要になってから32GBに増やせばいいでしょう。
※ハイパーバイザーやサーバー仮想化などの詳細は、本記事の趣旨から外れるため解説しません。ITエンジニアにはWindows 10 Proがおすすめ
Windows PCを購入する場合、通常はWindows 10 Homeがインストールされています。ですが、ITエンジニアであれば、Windows 10 Proをおすすめします。製品にもよりますが、購入時にProへ変更できるものや、デフォルトでProが選択されたものなどがあります。PC購入時にProにした方が、後でHomeからアップグレードするよりも安くすみます。
Windows 10 Homeでは使えない以下の様な機能がWindows 10 Proでは使えます。
・仮想環境の構築にHyper-V使える。
・リモートデスクトップ機能で、ネットワーク上の別のPCから操作ができる。
・ノートPCを外出先で紛失した場合などに備え、BitLockerでデバイスを暗号化してデータを保護できる。
他にも、企業に属している場合などに必要となる機能が多くありますので、テレワーク用としてもWindows 10 Pro の方が良いと思います。
結論:基本的にはWindowsがおすすめ。ただし、スマホアプリ開発にはMacが必要。
ここまでで、MacとWindows、自分がどちらを選べばいいのか見当はついたでしょうか。まとめると以下の様になります。
スマホアプリ開発以外ではWindowsがおすすめ
基本的には、幅広い用途に使えるWindowsがおすすめです。ただし、スマホアプリを開発したい場合はMacが必要です。
スマホアプリだけ開発するならMacがおすすめ
プログラム開発はスマホアプリのみと決めているならば、iOSに対応できるMacがおすすめです。
Web系のフロントエンドエンジニアを目指すならMacが無難
Web系ではMac使用率が高いので、まわりと合わせてMacを選ぶのが無難です。ただし、バックエンドも含めたエンジニアを目指すのであれば、WindowsのデスクトップPCをおすすめします。理由は、仮想環境の扱いやすさです。仮想環境構築はM1 MacよりWindowsの方が容易です。また、PCへの負荷が高いので、拡張性や冷却性能などが優れるデスクトップPCが向いています。
理想はWindowsのデスクトップPCとM1 MacBookの2台構成
スマホアプリ開発や外出先への携帯性を考えるとM1 MacBook Airなどが便利です。それ以外の幅広い作業や、高いPC性能が要求される場合は、WindowsのデスクトップPCが良いです。理想的には両方そろえたいところですが、現実的には優先度の高い方をまず購入し、必要に応じてもう1つを購入するのが良いと思います。
ちなみに、Windows 10 Pro であればM1 Macからリモートデスクトップで操作することも可能です。
この記事へのコメントはありません。