プログラミングも様々ですので「何をするかで全く異なる」と思いますが、基本的には事務用途のPCよりハイペックにするはずです。
「古いPCでも何でもOK」という奇をてらった主張をする有名ブロガー(YouTuber)もいますが、こういう発言は閲覧数を伸ばすことが目的だと思いますので、安易に鵜呑みにできません。Web系の開発であればロースペックでも問題ない場合もありますが、そういう場面は限られると思います(この手の発言はWeb系のフリーランスに多い)。
なぜハイスペックなPCが良いのでしょうか?
初級者向けの少し細かい内容にはなりますが、「プログラミング用PCはなぜハイスペックが良いのか?」について書きたいと思います。
主に、Windowsでの使用を念頭に置いていますが、その点はご容赦下さい(Macでも同じだと思いますが)。
リソースを消費する処理が多い
リソースを日本語に訳すと「資源」ですが、PCの場合はCPU、メモリ、ディスクなどの実行に必要な要素を指します。
プログラミング用PCにハイスペックが良いとされるのは、基本、リソースを消費する作業が多いためです。
IDEを使用した開発は普通は重い
Windowsの.NET開発で使用するVisual Studio 2019のシステム要件としては、1.8 GHzのCPU(クアッドコア推奨)、2GBのRAM(8GB推奨)、パフォーマンス向上にはSSDとありますが、できれば推奨値かそれ以上にしたほうがストレスがありません。
XcodeについてはAppleのサイトに記載がありませんでした。
Visual Studio CodeはCPU 1.6 GHz以上、メモリ1GBと控えめには見えますが、拡張機能をインストールしたりデバッグ実行をしたりすると、システム要件で示された性能は不足がある場合も出てきます。
コンパイルにはディスクI/Oもそれなりに発生するし、CPU、メモリ、ディスク性能が低いとストレスを感じることが多いと思います。
ブラウザはメモリを消費する
プログラムを作る時は、オンラインドキュメントを見ながらコードを書くことが多いはずです。
今ではオンラインドキュメントは非常に充実しており、.NETならMicrosoftのサイトに詳細なドキュメントがあるし、PHP、Pythonも本家サイトによるドキュメントが充実しています。Bootstrap、React、Vue.jsなどのJavaScriptライブラリも本家オンラインドキュメントが充実していますし、情報としては正確であるはずです。
タスクマネージャー(macOSならアクティビティモニタ)を見れば分かりますが、ブラウザは結構メモリを消費します。複数タブを立ち上げて入れば、なおさらですね。
ですので、開発時はIDEが消費するリソースに加えて、ブラウザも結構なリソースを消費します。
仮想化ツールを使うとさらに重い
VMware Workstation Player(macOSならVMware Fusion)上でLinuxを動作させることも少なからずあると思います。Windows 10ではWSLで簡単に作成できるので、Windowsでも一般的でしょうか。また、今ではDocker(WindowsはDocker for Desktop)で開発環境を構築することも普通ですが、これも仮想化の仕組みを利用しています。
Docker for Desktopのシステム要件としては、64bitのCPUと4GBのRAMが挙げられていますが、IDEやブラウザ、さらにDockerや仮想OSを同時に使用すると、さらにリソースを消費しますね。
色んなアプリを同時に立ち上げる
BYODで職場に持ち込むPCであれば、最低限ウイルス対策ソフトはインストールするでしょうし、資産管理用のツールもインストールと思います。
OneDriveやGoogleドライブのようなクラウドドライブ用のツールを入れれば、その分のメモリも消費するし、テキストエディタ、メールクライアント、メッセージアプリ……などを同時起動させると、さらにリソースを消費します。メモリは特に食いますね。
このように、プログラム開発を本格的にやる場合、低スペックのPCでは大抵は不都合が出てきますので、性能面ではそれなりな水準が求められます。
逆に低スペックでもよい場合は?
低スペックの基準を具体的にどこに置くかはとりあえず置いておくとして、簡単なWebサイト作成、勉強程度でPythonを触る程度ではないでしょうか。とはいえ、メモリ2GBの環境ではPythonをデバッグ実行させるにも、動作がもたつくかもしれません(Windowsの場合は間違いなく)。
目的・用途別による考察
具体的にイメージしやすくするため、目的・用途別に、大雑把ではありますが何が必要になるかを列挙してみたいと思います。正直、千差万別だと思いますので、参考までにお願いします。そもそも、詳しい方であればご自身で考えることができると思いますので…。
レンタルサーバー上に自分のWordPressサイトを構築する
最低限必要なものと言えば、FTPクライアント、SSHが使用できるターミナルエミュレータ、テキストエディタ(Visual Studio Codeなどのソースコードエディタが便利ですが)くらいでしょうか。
レンタルサーバー(さくらインターネットやエックスサーバー)のプロバイダーは、WordPressインストールスクリプトを用意してくれたりと色々親切な機能を予め用意してくれています。はてなブログなどに比べて自由度が高いのが売りですが、サーバー上にファイルを配置する程度しかしないのであれば、正直、それほどPCのスペックは求められません。上に挙げたツールが動作する程度で十分なはずです。
画像を加工するならPhotoshopやGIMPのような編集ツールが必要ですが、メモリをかなり消費します。ディスクもSSDのほうが良いでしょう。ですが、WordPress構築という意味では特に必須ではありません。
ただ、いきなり本番のサーバー環境を更新するのが怖いので、テスト環境を用意しておきたい場合があると思います。テスト用の環境を新たに契約する方法でもよいですが、自分のPC上に仮想環境を作成することも可能です。その場合、メモリは多めに、ディスクはSSDにしたほうが無難です。
Webのサービスやアプリを構築する
レンタルサーバーに限定せず、VPS(Virtual Private Server:OS環境全体を使用できるもの)や専用サーバーを使用して、自前のWebサービスを構築し、本気で商用利用(アフィリエイトでも何でも)をするのであれば、予備の環境は必須でしょう。
いきなり本番環境を更新して復旧不可能になるとビジネスの損失ですので、普通は検証用の環境を用意しておきます。プログラムのアップデート、環境の更新(PHPとかWebサーバーとか)などは、まず検証用の環境で試してから問題ないと判断したら、本番環境に適用します。加えて、バックアップを取得しておき、万が一のために元に戻せるようにもしておく必要があります。
一概には言えませんが、個人でやるレベルであっても検証環境は必要ですので、仮想環境を構築できるくらいの性能のPCは用意しておいたほうが不自由しないでしょう(本当に一概には言えませんが)。
.NET (C#)、Javaでアプリを開発する
.NET自体のハードウェア要件はMicrosoftサイトにも記載がありませんが(古いほうの.NET Frameworkはあるが気にしなくていい)、上で書いた通り、Visual Studioはメモリ8GB以上が推奨などがありますので、一般的な事務用途よりは性能にお金を回したほうがストレスがありません。Javaも同様でしょう。
ASP.NETの開発ならIISなどのWebサーバーを構築することもあるでしょうし、JavaもWebシステムでの開発となると、やはり仮想環境は必要です。ですが、WindowsのGUIアプリ(Form、WPF、UWPなど)だけだとしても、事務処理程度の性能を想定したロースペックPCだと苦しいと考えられます。
経験則でしか書きにくいですが、.NETやJavaの開発においても、ミドルクラス以上の性能のPCが欲しいものです。
で、ロースペックとかミドルクラスと言われても具体的に想像しにくいとは思いますので、具体的なスペックとしてどの程度が良いかは、下のほうで書きます。
Pythonを勉強程度に触る
Pythonのサイトにはシステム要件は特に記載されていませんが、勉強用途だとしてもIDE(統合開発環境)もしくは、それに類似するツールも同時に使用すると思います。
有名なものだと、MicrosoftのVisual Studio Codeとか、PyCharmがあります(私はVS Codeを使用しています)。前者はCPU 1.6GHz・メモリ1GBが必要とされていて、後者(PyCharm)はメモリ8GB、SSDが推奨されています(System Requirements – PyCharm)。プログラムを実行したりデバッグ実行をしたりすると、CPUもディスクも忙しくなりますので、やはり事務処理程度のスペックよりは高い水準を求めたほうがストレスがありません。できあがったプログラムを実行するだけなら、そうではないかもしれませんが。
ちなみに、GoogleのColaboratoryではオンラインでPythonを使用することもできますので、クラウド上のサービスを利用するという手段もあります(当然、PCの性能は関係なくなる)。
PHPを勉強程度に触る
これもPythonと同様に考えてよいでしょう。
PHPは主にWeb系のシステムのサーバーサイド処理で使用されることが多いと思いますが、そのような用途を見据えるなら、仮想環境の構築も視野に入れておくと良いかもしれません(メモリ多めが良い?)。
システム要件は事前に確認しましょう
システム要件とは、そのソフトをインストールする前提として必要となるハードウェアの水準、必要なソフトウェアを示したものです。
PythonやXcodeのように記載がないものもありますが、サイトに掲載されている場合も多いので、事前に確認しておくと良いでしょう。日本語サイトに記載がなく英語で書かれている場合も多いですが、「System Requirements」という項目で記載されていると思います。
「ツールの名前 システム要件」とか「xxx system requirements」でググると、出てくるかもしれません。
結局、どの程度のスペックなら十分か?
正直、あらゆる事情全てを一緒くたにして「このスペックなら大丈夫」とは言えません。
- 個人的な開発用途
- .NET (C#)、WordPress構築、Node.js、PHP
- 仮想環境上でLinuxテスト環境構築
以上の想定で、個人的経験から「このスペックなら大丈夫かな?」という最低限の具体例を挙げてみたいと思います。ただ、あくまで記事執筆時点であることに留意して頂けたらと思います。
CPU:最低Core i5、Core i7が良い
性能が良いほうがベターなのは当然なのですが、Intel製CPUで言えば、Core i3は日常的なタスク用途を想定しているものなので、Core i5以上を選択するのが安心です。予算との関係なので、個人的な金銭面の事情もあるとは思いますが。
ちなみに、前職はSIerでSEとして働いていましたが、SE用のPCは全てCore i7でした。
メモリ:最低8GB、16GB以上が良い
環境構築にDockerは便利でよく使われると思いますが、8GB以上が推奨されています。既に説明しましたが、ウイルス対策ソフトを入れたりなどするとメモリは案外消費するので、仮想環境の構築を視野に入れるなら8GBは最低限欲しいです。16GBだと安心です(私はMacBookもWindowsデスクトップPCも16GB)。
ディスク:SSDが良い
理由は、読込がHDDに比べて非常に高速であることと、HDDより故障率が低いからです(部品数が少ないので)。読込がどれほど速いかは体感で明らかに分かる程です。SSDを知ってからはHDDには戻れなくなりました。それくらい速いです。動作が遅いとやる気もなくなりますからね…。SATA規格のものよりもM.2のSSDのほうが速いです(価格は高くなりますが)。
その他
GPU(グラフィック処理専用のハードウェア)は、ゲームなどをする場合は良いものを選びます(3D絡みのプログラムを作る時も)。GPUを使用して動画エンコードを高速化する…とかもツールによっては可能ですが、初心者の方はそういうマニアックなことは気にする必要はないでしょう…。
後は、新しいものを買ったほうが基本は良いように思います。
まとめ:絶対とは言えませんが基本はハイスペックを
「プログラミング」と一言で言っても中身は色々あります。なので、全てをひっくるめることはできませんが、本格的なアプリ開発やWebのシステムを作るのであれば、余裕を見てハイスペックなPCにするほうが良いと思います。
ノートPCについての話題に限定していますが、BTO製品(HPやDell)だと性能にお金を回して、かつ比較的低価格でPCを購入できます。下の記事でまとめていますので、ご興味があればどうぞ。
以上です。