WindowsかMacか、どちらを購入するかはプログラミング用PCに限らず、多くの方が興味を持つことだと思います。一番の解決策は両方買うことだと思いますが(私は両方所有している)、予算の面からそうはいかない方も多いかもしれません。
WindowsとMacどちらを選択するか、この問題の結論を先に書くと、
- 両方に得意・不得意がある
- Macは高くつく
- 好み
に集約されるように思います。
本記事はこの問題について整理し、プログラミング用PCとしてWindowsとMacどちらを買えば良いか?という疑問を解決するにあたっての参考情報として提供したもの、のつもりです。
ネットには「プログラミングにはMacがおすすめ」と解説するサイトが多いですが、大抵、根拠が不明確です。例えば、「MacBookはWindowsよりバッテリーが長持ちして起動が速いからおすすめ」と解説しているサイトが実際にありますが、確かに最新版MacBookはバッテリーの持ちが良いですが、そもそも長時間電源に接続しない状況は稀ですし、起動の速さは開発用PC選定の重要なポイントにはなり得ません。
これは、Macがおしゃれでウケやすいことを狙ったものか、考察不足のどちらかでしょう。あまり鵜呑みにしないほうがよいです。
Macを推奨するサイト(ブログ)が多いが…
数量的にきちんと把握したものではないですが、「プログラミングに向くPCはMac」(特にMacBook)という解説のサイトは多く見つかりますが、大抵はプログラミングスクールが制作した集客用ページ、フリーランス(ブロガー)による広告収益目的のページで、制作の意図には商業的な目的がありそうです。
「エンジニアはMacを使用している」という主張もありますが、実はこれは根拠がありません。
ITエンジニアがWindowsとMacどちらをよく使用しているかを調査した統計は見つかりませんが、エンジニアに限らず、一般的にどちらが使用されているかを示すデータならあります。情報処理推進機構がインターネット利用者の使用OSを調査したものですが、圧倒的にWindowsです。macOSはたった4.3%です。数年前とは言え、状況は劇的には変化していないでしょう。
Windows10 (58.2%)
情報処理推進機構『2018年度 情報セキュリティの脅威に対する意識調査 ー 調査報告書 ー』2018
Windows7 (21.9%)
Windows8/8.1 (10.6%)
macOS (4.3%)
明確な根拠がない以上、主観の域を出ませんので、安易に信用はできません。
私見ですが、MacBookを推奨するサイトが多い理由の1つは「おしゃれでウケが良いから」です。twitter上の駆け出しエンジニア(もしくはエンジニア志望)の方々を見ると、大抵、見た目がきらびやかなものに飛びつく傾向があるので、その点、MacBookはウケやすそうです。まぁ、スタバに座ってMacBookで仕事をすれば確かにおしゃれです。
Google AdSenseを収益源にするサイトは閲覧数が重要なため「どのような記事なら見られるか」から逆算して考えます。なので、必然的に見た目の格好良さが重視されます。これは、SEOとかWebライティングと呼ばれる技術の悪い側面ですね。
ちなみに、私もMac(MacBook Pro)を1台所有していますが、購入のきっかけは勉強のためでした(色んな機械を触ってみたいから)。Macは特にメイン機ではありません。開発環境がWindowsにもあるので、両方を使用しています。
「Macはプログラミングに向いている」は本当か?
複数のプログラミングスクールのサイトで「MacはRuby、Python、PHPは特に開発効率が良い」という解説も見つかりますが、理由が説明されておらず根拠がありません。
WindowsだとVisual Studio Codeという非常に強力なエディタが無料で使用できるし、テキストエディタのAtomもプラグインを入れれば、それなりに開発はできます(ちなみに両者はMac版もある)。後で解説しますが、Web系がメインのエンジニアであればmacOSは親和性は高いのは事実ですが、だからと言ってWindowsの開発効率が悪いことはないです。
それに、Python、Rubyは今後はデフォルトではmacOSには含まれなくなりますね。
将来的にPython, Rubyはデフォルトで含まれなくなる
「PythonやRubyなどのプログラミング言語が最初からインストールされているから、Macだとプログラミングや始めやすい」という解説がネットでよく見つかりますが、これも注意が必要です。
これ自体は間違いではないのですが、「今後はmacOSにPython, Rubyはデフォルトでは含まれなくなる」と公式に発表されています(いつかは未定のようですが)。以下、Catalinaのリリースノートに書かれている文章からの引用です。
Scripting language runtimes such as Python, Ruby, and Perl are included in macOS for compatibility with legacy software. Future versions of macOS won’t include scripting language runtimes by default, and might require you to install additional packages.
(訳:Python、Ruby、Perlのようなスクリプト言語のランタイムは旧来のソフトウェアとの互換性維持のため、macOSに含まれています。将来のmacOSのバージョンでは、スクリプト言語のランタイムはデフォルトでは含まない予定で、追加パッケージのインストールが必要となります)
Apple『OS Catalina 10.15 Release Notes』
今は、Python, Rubyが含まれていますが、今後はWindowsと同様、自力でインストールしなければいけません。最新版macOSのBig Surには今のところ含まれているようですが、バージョンは古いです※1。
あと、PHPのバージョンはBig Surでも7.3ですが、これは古いバージョンです。7.3のサポート終了は2021年ですが、今からわざわざ古い仕様のバージョンを勉強する必要もありません。
デフォルトインストールされている言語のバージョンが古い
CatalinaもBig SurもPythonのバージョンは2.7ですが、サポートが終了したバージョン(2020/1/1終了)です。言語仕様も違う上に、わざわざ古いバージョンで勉強する必要はないし、新しい書籍は普通は新バージョンを対象にします。
新旧両方を共存させるようにインストールすることも可能だと思いますが、初心者にとっては面倒の種になる可能性があるし、そもそも「最初からインストールされている」アドバンテージにはなりません。将来的には自力でインストールすることになるので(難しくはないですが)、デフォルトインストールはメリットとは言いにくいです。
正直、Pythonのインストールは難しくありません。書籍やネットの情報でも丁寧に解説されているし、設定作業も複雑ではないです。MacはWindowsと違って最初からプログラミング環境が揃っているという認識は間違いとは言えないものの、あまり鵜呑みにしないほうがよい情報です。
Windowsにも強力で無料の開発環境がある
XcodeはAppleの無料の開発環境で、Swift、Objective Cのどちらかの言語でiOSやmacOSアプリを作れるものですが、Windows環境にも無料で強力な開発環境であるVisual Studio Communiryがあります(個人の使用でのみ無料)。また、Visual Studio Codeは完全に無料(OSS)かつ広く使用されているソースコードエディタです。私はPython開発には後者を使用しています。
ちなみに、Xcodeは画面が全部英語です。英語が苦手な人にはハードルが高めです。
企業案件だと企業でVisual Studioを購入するのが普通ですので、個人で金銭面の心配をする必要もないでしょう。Visual Studioは面倒なことを自動化する仕組みがよくできているので、非常に開発効率のよいIDEだと思うのですけどね…。
ですので「Macのほうがプログラミングの環境が良い」という意見は眉唾と私は思います。
ちなみに、macOS版のVisual Studio for Macもありますが、Windows版に比べると機能的な制限があります。基本はWindows環境のほうが便利ですね。ですが、macOSでも.NETアプリは作成可能です。反面、WindowsではXcoceは使用できません。
↓はWindowsのVisual Studio Communityです。ちゃんと日本語ですね。
Macがプログラミングに向いているとは安易には言えない、のが正確な言い方ではないでしょうか。
※1 Apple、macOS 11 Big SurにmacOS 10.15 Catalinaと同じPython 2.7.16やRuby 2.6.3p62などを同梱してリリース。
Unix系OSはプログラミングに向いているのか?
この意見も、ネットではよく見ます(これもプログラミングスクールの宣伝ページ)。
macOSはUnix系OS(Darwin)がベースで、コマンド体系や使用できるアプリが同じだからプログラミングに向いているというもの。間違いとまでは言いませんが、Webという限定された領域しか念頭に置いていない認識によるものなので、正確な情報とは言えません。
Unix系が強いのはWeb系システム
レンタルサーバーやVPSのOSとしてはUnix系が多く、インターネット上に公開されるWebサーバーも、Red Hat Ennterprize Linux、CentOS、Ubuntuが多くを占めます。Web系の開発にはUnix系(特にLinux)の理解が欠かせません。WebサイトをホストしているOSに関する調査は、Q-Successが公開しているものがあります。
見ての通りUnix系が7割を超えます。「プログラミングならUnix系OS」というより「Web系システムならUnix系OSが選ばれる」というのが正確でしょう。ちなみにmacOSは0.1%未満です。
macOSはLinuxと親和性が高い
macOSはBSD(Linuxとは別系統のUnix系OS)がベースです。コマンド体系はLinuxと同等なので、Windowsと比較すれば操作性の差で悩むことが少ないとは思います。
改行コードの差異による問題も、macOSとLinuxの間だと無視できるのは利点です。LinuxとmacOSではLFですが、WindowsではCR + LF。
ファイルパスの指定方法(/etc/httpd
のような)もmacOSとLinuxでは同じですが、Windowsは違います(C:\Windows
という表記)。
確かに、Web系システムをメインにしているエンジニアからすれば、macOSは違和感がありません。
WindowsでもWeb開発・Linux環境構築は簡単なのだが
Windows 10で搭載されたWSLでLinux環境は簡単に構築できますし、スナップショット機能がほしければProfessionalエディションが必要だけどHyper-Vが標準で使用できます(仮想化やスナップショット機能はmacOSには標準では存在しない)。インストール手順はググれば出てきます(このサイトでも↓で公開しています)。
Pythonは人気の言語のですが別にUnix系に特化しているわけでもなく、Windowsへのインストールも簡単ですね。Javaも、PHPも、Rubyも同様。クロスプラットフォーム開発環境に人気なNode.js + ElectronもWindows環境で開発可能です。
ネットでよく見る「macOSはプログラミングに向く」「Unix系だからプログラミングに向く」という意見はWeb開発だけを念頭に置いている印象ですので、視野がやや狭い情報だと考えたほうが良いです。上で説明した通り、Windowsが開発環境で劣っているとうことは全くありません。Linux系ツールのWindowsへの移植版も多いですね。
Macを勧めているのは大抵はスクールとWeb系のフリーランス
Google検索で「プログラミング windows mac」で検索すると分かりますが、Macを推奨しているのは、多くがプログラミングスクールによる集客用ページと、Web系フリーランスのサイトです。
Webサイト(サービス)制作の仕事は小規模な案件が多く、実務未経験のプログラミングスクール卒業生でも送り込みやすいのと、Web系フリーランスに対する需要を反映したものかもしれません。
そういう層にMacはウケやすいと思いますし、Web制作の領域はMac使用率が高いのが実際ですので、その反映かなと思います。
でも、上でも書きましたが、Web開発は「プログラミング」の1つの領域にしか過ぎません。まぁ、実際の業務になるとプログラミング以外にもエンジニアの業務は沢山あるのですが…。
MacとWindowsの得意・不得意を整理する
完全に網羅することは難しいので、把握している範囲です。
Macにしかできないこと
- macOS、iOS開発
要はMac製品のアプリ開発ならMacは必須でしょう。ちなみに、SwiftはWindowsでも使用できるようになりました(2020年9月アナウンス)。ただ、macOSでのアプリがそのままビルド・実行可能であるかは未確認です(怪しそうですが…)。
Windowsにしかできないこと
- WindowsのGUIアプリ(Form、WPF、UWP)開発
- .NETのWindowsの機能に特化した開発
- .NET開発はWindowsが不自由しない
実は.NETはクロスプラットフォーム対応が進められていて、macOS版もあります(Linux版もある)。ただ、同じコードでGUIアプリの開発ができません。Xamarin(.NETでクロスプラットフォーム開発をするための開発基盤のようなもの)でも、全てのコードは共有できません。UI部分は各プラットフォーム毎に作成する必要があります。
「.NET開発はWindowsが不自由しない」というのは、Visual StudioはWindows版のほうが機能面で充実しているという意味です(macOS版は機能が若干簡素)。
Windows、Mac両方でできること
挙げればきりがありませんが、
- 軽量プログラミング言語(Python、PHP、Rubyなど)
- Webサイト制作は当然(HTML、CSS、JavaScript)
- Node.js(JavaScriptの実行環境)
- .NET(Windows機能依存は除く)
- Swift(基本はmacOSがメイン)
勉強目的や、簡単なスクリプトを使用したデータ集計、処理、業務効率化なら上記で十分できそうです。
Macを選択した場合のデメリット
- Windowsの同等スペックと比べ高価
- 拡張性がない
- ハードウェアの選択肢が少ない
Windows機だとHPやDellのようなBTOメーカーで購入すれば高性能のPCでも比較的安価に購入できますが、Macはそうはできません。ここが一番悩むところではないかと思います。
Boot Campと仮想化でmacOS上でWindowsを動かせる
WindowsのPCではMacが使用できませんが、MacではWindowが使用できますので、これは確かにmacOSの利点です。Windowsを実行させるには、以下の方法を使用します。
- 仮想化ソフトを使う
- Boot Campを使う
仮想化ソフトというのはVMware FusionやParallels Desktopのことですが、macOSを起動しながら、その上でWindowsが起動できるというものです(上の画像)。ただ、仮想化とWindowsの費用が必要になります。
Boot CampはmacOSの機能で、WindowsとmacOSを切り替えて起動するもの。当然、Windowsのライセンスが必要です。
動作しないソフトもあるので注意
注意点としては、仮想環境上のWindowsで全てのソフトウェアが動作するとは限りません。ゲームのようにハードウェアが絡むものは特に注意が必要です(仮想化は一般的にこの問題に直面する)。ちなみに、私のMacBook ProのVMware FusionにWindows 10を入れていますが、Minecraft 統合版がまともに動作しませんでした。その問題があるので、Windows専用PCの使用が無難ではあります(Boot Campで動作させた場合も同様です)。
M1搭載MacだとARM版Windowsになると思いますが(M1はARMベースなので)、WindowsのアプリもIntel版の全てが動作するとは限りません。
それに、使うと分かりますが、わざわざmacOSとWindowsの環境を切り替えて使用するのは手間ですね。WindowsがMacで使えるからと言って、メリットばかりだとは限りません。その点も注意が必要です。
結局、WindowsとMacどちらを選ぶべきか?
既にある程度の判断材料が提供できたと思うので、後は、
- 何をしたいか
- 好み
の問題です。
もし悩むのであれば、私のおすすめは「両方買うこと」だと思います(予算が許せばですが)。仮想化ソフトのゲストOSとしてWindowsを動かす場合でもBoot Campを使う場合でもハードウェアに起因する問題は起こりうるので、専用のハードウェアを購入するのが一番安心です。
私の場合、デスクトップはハイスペックなWindows、ノートPCはMacBookという構成です。Windows機なら同等のCPU、メモリ、SSDでも安価にできますからね。その上でMacも手元に欲しいので、ノートはMacBookにしています(実はHPのノートPCもありますが)。
なお、補足ですが、仮想上でWindowsを構築する場合、注意点としてメモリは余裕をみて下さい。8GB以上、できれば16GBあると安心です。
上の画像は、Windows 10 Professional(64bit)をメモリ2GBの割当で使用し、現在ブログを書いている時のメモリ使用量です(macOS Catalina)。8GBでも恐らくは大丈夫でしょうがスワップが発生すると思うので、16GB以上が安心ですね。
ちなみに、プログラミング用ノートPCはBTO製品(HPやDell)だと安価に購入できるので、別記事に詳細をまとめています。ご興味があれば、どうぞ。
以上です。