WindowsとMac、プログラミングをするならどちらを選ぶべき?
はじめに
まだプログラミングは未経験だけれども本格的にプログラミングを始めてみたい、プログラミングを始めたばかりだが今後も続けてみたい、という人なら必ず一度は考えることになるであろう悩み。
それは、「使用するOSはWindowsにするべきか、Macにするべきか」という点でしょう。
どのOSを選択するかによって、プログラミングの効率や環境が大きく変化したり、場合によってはプログラミング自体が行えないという自体にも発展することがあります。そのためWindowsか、Macか、OS1つ選択するこの最初の段階はとても重要になるわけです。
結論を先に言ってしまうと、「プログラミングの目的に合わせてOSを選ぶ」ことが最適解です。
ですが、「プログラミングの目的」がわからなかったり、「目的があること」と「OSを選ぶこと」の因果関係が不明という人もいると思います。
現在進行形でWindowsにするかMacにするか迷っている人、今使用しているパソコンをそのままプログラミング用に使い続けるべきかOSを変えるためだけに買い換えるべきか迷っている人、そんなことは今まで考えたことがなかった、という人もこの機会にぜひ考えてみましょう。
WindowsとMacの違い
WindowsとMacを選択する前に、両方のOSがそれぞれどういう特徴を持ち、どう違っているのかを確認しましょう。
Windowsとは
Windows(Microsoft Windows)とは、マイクロソフト社が開発したOSです。国内外の様々なメーカーが開発したパソコンに標準搭載されるなど、非常に普及率が高く、まさにデファクトスタンダードと言えるOSです。
世界中で使われているためハードウェアの種類が豊富であり、ユーザーの好みに合わせて自由にカスタマイズすることが可能です。
またWindows用のソフトウェアも数多く存在しています。選択肢の多さが武器となるOSです。
一般企業ではさることながら、IT系においてもSIer系ではWindowsを用いるケースも多く、Windowsに慣れているという点は不利に働くことはないため、利用しておいて損はないでしょう。
Macとは
Mac(Macintosh)とは、Apple社が開発したパソコンの総称であり、その動作OSのことを「MacOS」と呼びます。非常にシンプルなデザインに加え、ユーザー目線での操作性が良くなるよう設計されています。
MacOSはUNIXをベースとして開発されているため、UNIX系のサーバOSを使用することが可能です(Linuxなど)。標準で「ターミナル」が搭載されているのも特徴です。
アプリケーション開発でよく使われる「Homebrew」に代表されるパッケージマネージャなど、MacOSでのみ動作するシステムも存在しているため、本格的にプログラミングを行う環境を整える場合はMacOSを選択することが非常に多くなっています。
また、Mac内に仮想環境としてWindowsをインストールできます。馴染みのない人にとっては違和感を持つでしょうが、こういった手法も可能です。
性能面の違い
性能面やコストパフォーマンスに関しては、OSの問題ではなくそのパソコンのスペックに依存します。そのためWindowsだから遅い、Macだから遅いというような違いはほとんどありません。
しかしながら、作業効率や環境を用意する手間という点を考えると、ターミナルが標準搭載されているMacを使う方が何かと有利でしょう。
サポートの違い
Windowsを用いた開発を行う割合が多いのはSierです。Sierでスキルアップする道を既に決められている方は、Windowsを選択しておいた方が無難と言えるでしょう。
逆にMacの場合、エンジニアに絞るとシェアはこちらの方が多くなります。ゆえに、環境構築や技術トラブルに関する解決案などが豊富であり、Macを前提とした記述記事も多く見受けられます。開発において問題が発生したときにもMac環境での解決方法のみが記載されているケースも多いため、Windowsを使うよりも調査に要する時間を短くすることができるという点が強みだと言えるでしょう。Windows環境のトラブル解決方法などはMacと比較すると数で劣ってしまうため、何か問題が起きた時は時間をかけて調査する必要があると言えます。
VR
VRを中心に、ゲーム開発を行う上ではWindowsを使った方が都合が良い場合が多いです。
MacはVRの対応が遅れ気味であり、StreamVRがMacOSの対応サポートを終了するというニュースもありました。
VRに限らずとも、ユーザーがゲーミングPCとしてパソコンを購入する場合、Windowsを選択するケースが大多数です。
こうなると、開発側もWindowsを使い、ユーザーに合わせていく他ありません。
特にVR環境についてはWindowsに軍配が上がります。
コミュニティもWindowsの方が活発ですので、VRやゲーム開発に興味がある方はWindowsを選択することが必然的になっていると言えるでしょう。
対応言語の違い
プログラミング言語の中には、OSに依存するものもあります。
噛み砕いて言えば、Windowsを使用するのが一般的なもの、Macでなければ動作しない言語と分かれています。
Windowsの使用が推奨されているプログラミング言語
Macでも使えるが、Windowsとの相性が良くこちらを使用した方が良い言語です。
- .NET系言語(VB.NETなど)
- VBA
- C#
- Visual Studio
Windows系の開発を行う場合に用いられる.NET系の言語を扱う場合は、開発環境もWindowsである方が都合が良いです。
マイクロソフトが開発したプログラミング言語は、同じマイクロソフト製OSであるWindowsと相性が良く、逆にMacで使うとなると不都合も起きる可能性が高いため非推奨になります。
Macの使用が推奨されているプログラミング言語
上記とは逆に、Macでなければ使用できないプログラミング言語もあります。
- Swift
- Objective-C
Appleによって開発されたSwift・Objective-Cは、当然ながらMacと相性が非常に良く、開発環境を用意するのも容易です。
特にSwiftはiOSアプリケーション開発に用いられる言語であり、需要も大きいです。Objective-Cとも混在して使用することができる点も評価が高いです。
一方で、Windowsを使ったSwift開発は、環境構築に非常に難があるため現実的ではないのが現状です。
Swiftの開発では”XCode”というIDEを用いますが、これはMacでしか動作しません。無理に動かすにしてもLinuxやBashの知識がなければ手を出すことは難しいでしょうし、環境を用意できたとしても効率面でMacとは大きく遅れを取ることになるでしょう。
Appleでは、Swift言語をWindows10でもサポートするための計画は立てています。ただ、GUIについては実現の見込みはないとのことです。
未経験者や、プログラミングを始めたばかりであるという人の中には、iOSアプリの開発に興味があって学習を始めたという人もいるでしょう。もしiOSアプリ開発の道に本格的に進みたいと考えるならば、可能な限り早期段階でMacを使用したSwift学習を進めるべきです。
まとめ
目的があるならばそれに適合したOS、こだわりがなければMac
特に使いたい技術やプログラミング言語がない場合はどちらでも良いが、基本的にはMacを選択するのが有利と言えるでしょう。
前述のとおりMacは非常に高価であるためすぐに手を出すことができない点もあります。
Windowsでもプログラミングは可能であるため、現在使用しているOSをそのまま使い、必要な段階になったらMacに乗り換えるという選択肢も十分ありえます。
また、Macを使用した開発であっても、Webサービスなどを公開する前には、ユーザー使用を想定したWindowsによる本番テストを行うことも一般的です。そのため、一概にMacだけ、Winsdowsだけというわけにはいきません。Macの中にWindowsをインストールして使用するケースもあります。
ただし、使いたいプログラミング言語や技術がどちらかのOS推奨言語である場合は、素直にそのOSを購入し開発を行うべきです。
前述の通り、VR環境やゲーム開発を行う場合、MacよりはWindowsが秀でています。
逆に、iOS開発はMacでなければほぼ不可能という状態です。無理にWindowsに特殊な環境を用意しようとして、開発を行う前から挫折してしまってはどうしようもありません。
目的があるのならば、環境を迅速に整えるためにOSを選択するのが得策です。
なお、筆者はプログラミング未経験時から学習開始3ヶ月間は元々所持していたWindowsを、それ以降はMacに切り替えました。学習を進めていくにつれて実際にWindows環境での難しさを痛感し、環境構築や効率改善を目的として買い替えに至りました。
プログラミングに興味を持った人は、目標や興味の原点があると思いますので、それを1度振り返ることで選択するべきOSが見えてくるでしょう。