【現役プログラマが教える】プログラミングにおすすめのパソコン
プログラミングに適したパソコンといっても、扱うプログラミング言語、記述するコードが大規模なものか、データ量は多いかなどによって異なり一概には言えない。
しかし最低限のスペック、コードを見る領域を広くとれるモニターなど、行うプログラミングの種類によらず話せることも多い。
そこでWeb系、AI学習、ゲームなどプログラミングの種類ごとに適切なパソコンの特徴を述べ、その後プログラミングを行う上で共通して必要な最低限のスペックや、プログラミングにおすすめのパソコンを紹介をしていく。
読み終えると、自分のやりたいことや予算に応じたパソコンを選べるようになるはずである。それでは始めていきたい。
- プログラミングの種類による最適なOSとGPUの選択
- Web系プログラミング
- iOSプログラミング
- 科学技術計算
- AIプログラミング
- ゲームプログラミング
- プログラミングに必要な最低限のスペック
- メモリは16GB
- ストレージはSSD
- CPUはPassMarkで10000点
- 高度な3Dゲーム開発をする場合は高性能なGPUを搭載
- その他プログラミングに適したパソコンでプラスとなる要素
- CPUはIntelだけでなくRyzenもおすすめである
- 縦長ディスプレイ
- Thunderbolt対応
- ノングレア液晶
- デスクトップかノートのどちらがおすすめか?
- プログラミングにおすすめのパソコン
- Dynabook RZ | 最強14インチモバイルノート
- Lenovo Ryzen 5モデル | 神コスパノートPC
- Macbook Air | モバイル開発の定番
- ASUS LOG Zephyrus G14 | 全方位対応の最強ノートパソコン
- パソコン工房 デスクトップPC | 圧倒的パフォーマンスを実現
プログラミングの種類による最適なOSとGPUの選択
プログラミングで何を作りたいか?あるいは何の解析を行いたいのかなどの目的により、使用するOSとGPU搭載をすべきか否かが異なってくる。
プログラミングの種類をパソコンの構成に影響を及ぼす観点から分別するとWebプログラミング、iOSプログラミング、科学技術計算、AIプログラミング、(高度な)3Dゲームプログラミングの5つに分けることができ、それは下記のようになる。
OS | Windows | Mac | |
---|---|---|---|
GPUの有無 | GPU無 | GPU有 | N/A |
Webプログラミング | ◎ | ◎ | ◎ |
iOSプログラミング | × | × | ◎ |
科学技術計算 | 〇 | ◎ | △ |
AIプログラミング | 〇 | ◎ | 〇 |
3Dゲームプログラミング | △ | ◎ | △ |
GPUはグラフィックボード、グラボとも言われ、3Dの描画を高速にする目的で発展してきたが、本質的には並列に大量の演算を可能とするプロセッサーであり、行列演算が多いAIの学習や、科学技術の計算を桁違いで高速化することが可能である。
次の節では、プログラミングの種類を具体例を踏まえてもう少し詳細に解説する他、何が適しているのか、何が厳しいのかなど表の理由を説明していく。
Web系プログラミング
WindowsとMacどちらで行っても大して差は無く、いずれも快適に開発できる。
WebプログラミングはJavaScript/HTML/CSSなどWebブラウザで動作可能な言語の他、PHP、Ruby、Python、Java、Nodejsなどサーバーサイドで動作する言語も含む。Webサービスを提供するためのプログラミング全般である。
2018年頃まではWindowsで作成したプログラムをLinuxのレンタルサーバーに置くと、互換性の問題で動かないことが多かったので、その煩わしさを回避する目的でMac一択であった。
しかし今はWindowsでWSL(Windows SubSystem Linux)というLinuxを動かす仕組みがサポートされ、WSL2ではLinuxの根幹に当たるLinux KernelをWindowsに取り込むことで、それまで課題であった動作速度も改善された。
これによりWindowsとMacどちらでも慣れた方を使えば良いという状況が今である。
個人的な見解で言うと、Macはノートパッドでの操作が優れており、ページの切り替えがスムーズかつ滑らかに行えるため、マウスの場所も惜しいなど、外出先で使うことが多い場合はMacをおすすめする。感覚としては7割以上は外で使う人はMacが良いと思われる。
カフェマックはプログラミングに適しているが、カフェWindowsを行おうとは特に私は思わない。プログラマーがカフェでMacを使っているのは別にイキっている訳ではなく、マウスの代わりにコーヒーカップを置くことができるからである。
Windowsはマウスを使えば扱いやすく、ファイル操作は簡単でFinderというMacの使いにくいファイルエクスプローラーを使う必要は無い。特にデュアルディプレイにするとMacは操作がやりづらい。
という事で、強いて言うならば外での使用が大部分で、のまど的なパソコンの使い方をするならばMac、基本的に作業スペースが確保できるようならばWindowsが良いとは個人的には思う。
iOSプログラミング
AppleのApp Storeへ向けてiOSのアプリケーションを開発するにはMacが必要となり、アップルの公式サポートでも極めて重要であると書かれている。
iOSアプリ開発用に開発されたプログラミング言語SwiftではもちろんMacが必要であるが、WebアプリケーションフレームワークのReactをBaseとしたReactNativeや、ゲームに特化したUnityなどクロスプラットフォーム環境で開発した場合でも最終的にアプリをリリースするためにはMacが必須となってくる。
クロスプラットフォーム開発のため、開発はWindowsでしたいが、リリースはMacという場合にはAmazon EC2 Macのインスタンスを用いてクラウド上で作業するという技もある。
ただ、価格が1時間当たり1.3ドル程度であったため、慣れないマックで作業してリリースのために3日かかったとすると1日8時間で39ドル、4300円程度掛かるということになる。まあ慣れないうちはあまりおすすめはしない。
科学技術計算
分野にもよると思うが、プログラミング言語としてはC、C++、Fortran、Matlab当たりが良く使われている。
おおよそCPUだけで問題は無いが、流体力学で波の動きをシミュレーション、分子モデリング、災害予測など、3D表現や大量のデータを取り扱う場合には並列に多くの計算をこなす事ができるGPUの力を借りる機会も多い。
CPUからGPUを呼び出す言語としてはCUDAというNvidiaのプログラミング言語が用いられるが、AppleはNvidiaと決別しているため、CUDAを扱うことはできない。
また、科学技術計算に関して便利な機能を提供するフリーアプリがWindowsには複数存在するのに対してMacには存在しないことも多いため、これから使うソフトが何か分からない理工系の人はWindowsが無難である。
MacからWindowsを起動する方法もあるが、M1チップ搭載のMacでは互換性問題もあり、またOSが異なることで動作が遅くなるためおすすめはできない。
AIプログラミング
AIの基本は正解付きの大量のデータをコンピュータに学習させることで、未知のデータが来た時の予測を可能とするものである。
高い精度を得るためには、学習時にデータセットを少しずつ変更しながら何回も学習のループを繰り返す必要があるため、AIの学習はデータ数が大して多くない場合でも数分程度は普通にかかってくる。
精度の高い学習済のモデルを作成するためには、学習のループを一定数回すこと以外、様々なアルゴリズムの選択や学習係数などパラメータをチューニング(ハイパーパラメータチューニングという)していく必要があるため、これらの計算を如何に速くできるかが効率化には重要となる。
ここでGPUの力を借りると、桁違いで学習時間を短縮できるため、無くても問題はないものの本格的にAIの開発を行いたい場合にはGPUは必須である。
やや余談ではあるが、AIの学習過程で計算精度はあまり要求されないことから、精度が悪い代わりに高速に計算できるTensorCoreというプロセッサがAI専用のGPUでは多く搭載される。
個人でもNvidia TitanなどAI専用のGPUは入手は可能であるが、値段が高いのであまり現実的ではない。研究室で予算が出るなら購入を検討するというぐらいだろう。
更に余談だが、このページのいくつかの画像はAIで作成した。
ゲームプログラミング
簡単な2Dゲームを作る程度であれば、どのような統合開発環境やプログラミングを使っても可能であるが、現在市場に出ているような複雑で高度なグラフィックのゲームを一から作るには膨大な時間が掛かる。
このため様々な場面で共通して使用できる処理を再利用可能な形に整えたゲームエンジンを用いて効率的な開発が行われる。UnityとUnrealが多くのゲームで採用されており、両方ともクロスプラットフォーム開発が可能である。
Unityは2005年にMac OS向けに制作されたゲームエンジンであり、スマホの2Dゲームから比較的高度なゲームを簡単に作成できることから人気を得ており、パズドラ、FGO、ウマ娘など日本のスマホ向けゲームの多くはUnityで作られている。
一方でUnreal Engineはフォートナイトで有名なEpic Gamesが開発しているゲームエンジンであり、FF VIIのリメイク、テイルズの最新作等はUnreal Engineを採用しているほかドラクエXIIでも採用される。
PCスペックとしては、スマホ向けゲームをUnityで作成したいというのならばGPU無でも問題は無いが、PCやPlayStation/Xboxなどのコンソールに向けて高度な描画を行いたいならば、ゲーミングパソコンに搭載されるような相応のGPUを搭載することが求められる。
また、WindowsかMacでは、Windowsをおすすめする。NvidiaのGPUが安価で調達できる他、Windowsが業界標準となっているため情報量も豊富であり、エディタもVisualStudioが使いやすい。iOS向けのアプリケーションを作りたい以外はWindowsが良いだろう。
プログラミングに必要な最低限のスペック
プログラミングの初学者が、C言語を勉強しようとGCCコンパイラをWindowsパソコンに入れて、Hello World!と出力するプログラミングを作成する。これならば数世代前のCeleronで問題ない。
同様に大学の初学者向けプログラミング授業、あるいは基本情報技術者試験などを目指し基本のプログラミングをを学ぶというのならばどのようなパソコンでも問題は無い。純粋にこれらのプログラミングだけを行うためにパソコンを購入するならば4万円のパソコンでも十分である。
しかし、実際にWebの開発であれ、WindowsやiOSアプリの開発であれプロダクトレベルの開発を行っていこうとするとフレームワークを使用しての開発がメインとなるので、ある程度パソコンのスペックが求められるようになる。まずはこの最低限のスペックを定義したい。
メモリは16GB
プログラミングはエディタでの編集を行い、結果をコンソールやブラウザなどで確認する。また分からない箇所があればグーグルで検索をして調査を行う必要がある。すなわち3画面、4画面は当たり前のように開いている状態となるのが普通である。
これらの状態を保持するためには多くのメモリを必要とする。メモリが足りていないとメモリの代わりにストレージを使用するスラッシングが多発して低速化するか、メモリ不足のエラー(Out of Memory Error)が表示されてアプリケーションが終了するかのいずれかである。
ということで最低8GBは快適なプログラミングのためには必要であろう。4GBだと不要なWindowをちまちまと消して、メモリ状態を常に意識しながらコードを書いていく必要があるため面倒である。
ただ、特にWebプログラミング環境でWSLやDockerといった仮想環境を作る機会が多いことからやはり16GBが望ましい。
例えば下記はWSL2の消費メモリのキャプチャであるが、特に何もしていない状態で4GB程度を確保されてしまっている。仮想環境に渡すメモリ量は制限可能であるが、パフォーマンスの低下を招くため、メモリの余裕を持たせることも重要である。
その他大量のデータを扱う場合はOut of Memory(メモリー不足)のエラーが発生しやすいため、ビッグデータの解析や数千件以上データがあるデータベースを操作する場合には16GB積んでも良いだろう。
ストレージはSSD
ストレージは高速で高価なSSDと低速で大容量のHDDの2つがパソコン用として使われている。SSDでないとアプリケーションの起動やファイルの読み取り速度が若干遅くなるので、快適に操作をするならばSSD搭載の機種を選ぶべきである。
もっとも最近のノートパソコンもデスクトップパソコンもSSDが主流となっているので知らずに選んでもSSDが搭載されている可能性の方が高いだろう。
容量は256GBあれば十分だと思うが、ゲーム開発を考えている人と、余裕を持ちたい人は512GB以上がおすすめである。
ただ、プログラミングだけのためにパソコンを買うわけではないと思うので、下記の記事を参考にして欲しい。
CPUはPassMarkで10000点
Webのアプリケーションであれ、C++のWindowsアプリケーションであれ、書いたプログラミングコードはビルドされて最終的なアプリケーションで実行可能な形式となる。 (※ビルドは最終成果物を生成するための一連の作業、プログラムコードをCPUが理解できる機械語に置き換えるコンパイルもビルドプロセスの一つ。)
WebサイトならばHTMLファイルをブラウザで読み込めば終わりではないか?と思うかもしれないがそうではない。ECMA6以上のJavaScriptで書かれた文法をBabelというトランスコンパイラでECMA5相当に変換し、JSやCSSファイルの結合、Minify化を行い、などと多くのことをWebサイトとして配信する前に行う。
これにはそれなりにCPUパワーが必要となってきて、特にマルチスレッド能力が高いものがビルド時間が短くなる。このビルド時間の短縮がプログラミング作業の生産性に大きな影響を与える。
上記は当サイトをビルドしている様子であり、13秒ほどかかっているが、遅いCPUを積むと1分程度は掛かってしまう。一方でより高速なCPUを使うと5秒程で終了できるだろう。
またJava言語ならばEclipse、C++の開発ならばVisualStudio、Webの開発ならばVS Codeなど幾つかスタンダードとなるエディタはそれなりに重厚な作りをしており、CPUが低速だと起動時や操作時にもっさりとしてしまう。
これらの理由から目安として、総合的なCPUの性能を計るベンチマークテストであるPassMarkで10000点程度は欲しい所である。PassMarkの得点は下記を参考にして欲しい。
高度な3Dゲーム開発をする場合は高性能なGPUを搭載
上記の8GB、256GB、PassMark 10000点以上のCPUでほぼ困ることは無いが、高度な3Dゲームの開発をする時はメモリ16GB、数万円のミドルレンジグラフィックボードの搭載は必須と考えた方が良いだろう。
また、AI、科学技術計算にはCPUだけで事足りる場合も多いが、規模が大きい計算となるとGPUで並列演算を行い計算の高速化しないと待ち時間が多くなり試行錯誤を繰り返す余裕が無くなってしまう。研究や仕事で使うような場合は特にGPUは搭載した方が良いだろう。
その他プログラミングに適したパソコンでプラスとなる要素
以上で基本は抑えたが、プログラミングに適したパソコンとして加点となる要素を述べていく。かなりマニアックな部分とはなるので、いいモデルが無ければ別に無視してくれても構わない。
CPUはIntelだけでなくRyzenもおすすめである
プログラミングで待ちが発生する時間はBuildを待つ時間であり、この時間を縮めていくことは生産性の改善につながる。
Buildにはマルチコアの能力が活かされることが多いため、一般的にコア数の多いCPUの方がBuild時間が短くて済む。
AMDのRyzenはIntelのCore iシリーズと比べてマルチコア能力が価格比で高いため、プログラミング作業を中心とする環境ではお得感がある。
Ryzenが良いというよりはマルチコア性能が高ければよいので、例えばIntelでもノート向けPやHシリーズはマルチコア性能が高くおすすめである。
先に紹介したCPU比較表では純粋にPassMarkが高いものを中心に探せば良いであろう。
Intelを少しフォローしておくと、ChromeやAdobe、Officeなど有名なソフトを最適化しているため、ベンチマークの結果と比べて動作が安定し、パフォーマンスが得やすい特徴がある。パソコンでプログラミングのみを行なう訳ではないので総合的に判断したい。
縦長ディスプレイ
プログラミングの行数が増えてくると、全体のソースコードを見渡せるように縦の解像度が欲しくなる。頭の中で表示領域にないコードを念頭に入れつつ書いていくのは脳の負荷が若干上がるため好ましくは無い。
FullHD(1920x1080)解像度のものが割安な製品が多い印象だが、プログラミング用として考えると縦に少し長いWUXGA(1920x1200)解像度が好ましい。 MacBookやSurfaceの一部のモデルはより縦が長い3:2のアスペクト比を採用しており同様にプログラミング向けと言えるだろう。
デスクトップの場合も同様に1920x1200がプログラミングに適したモニターであるが、種類が少ない上に高額な商品が多いため購入はしていない。値段次第と言えるだろう。購入するならDellのWUXGAモニタがコスパが高くおすすめである。
Thunderbolt対応
映像出力、充電、USBハブとしての役割を1本のType Cケーブルで担うことができる規格がThunderboltである。
これに対応することにより、図のようにケーブルを一本挿すだけでノートパソコンをデスクトップ環境に早変わりさせることが可能である。
Thunderboltに対応していなくともPowerDelivery(給電)機能とオルタネートモードという映像出力機能にパソコン側のUSB TypeC端子が対応していれば問題ない。ハイエンドのノートパソコンには間違えなくこの機能は備わっているであろう。
図に関して、ノートパソコンは3枚目のモニタとして使用しても、閉じてデュアルディスプレイ環境としても良いだろう。またDisplayPortのデイジーチェーン接続を用いてマルチモニターを実現しているが、TypeCハブを介して複数画面に出力するのも一般的である。
ただ、この機能を実現するために、Thunderboltに対応したパソコンやキーボード、マウスの他、USB TypeC対応のモニタ、Thunderboltに対応したケーブル等を買い揃える必要があり、合わせて5万円程度はコスト増になる。
割に合わない投資となる可能性はあるが、家での生産性を引き上げることが可能である。
ノングレア液晶
光沢のある液晶を使っていると映像視聴には適しているものの、長時間のプログラミングには目が疲れる場合がある。よって光沢液晶と書いてある場合は注意しよう。
デスクトップかノートのどちらがおすすめか?
まずそれぞれのメリットを語ると、デスクトップパソコンの方が馬力のあるCPUを積むことができるため、それだけビルド時間を短縮して快適に作業を行うことができる。
また、同サイズのモニターを2つおいてデュアルディスプレイ環境を構築しやすく、好きなキーボードを使用できるなど開発環境でも圧倒的にノートパソコンに優る。
一方で勉強会やハッカソンのような大会に出る、プログラミングのスクールに通うというような人は当然ノートパソコンでないとこのような事は不可能である。
デスクトップとノートを組み合わせる場合もあるので、選択肢としては以下のようになる。
デバイス | 処理速度 | 開発環境 | 携帯性 | データ管理 | コスト |
---|---|---|---|---|---|
デスクトップのみ | 〇 | 〇 | × | 〇 | 〇 |
ノートパソコン with Thunderbolt | △ | 〇 | 〇 | 〇 | △ |
ノートパソコン + デスクトップ | 〇 | 〇 | 〇 | △ | × |
ノートパソコンのみ | △ | △ | 〇 | 〇 | 〇 |
コストをかけたくない場合は、携帯性を犠牲にするか処理速度を犠牲にするかを秤にかける必要がある。
次にコストをかけて良い場合はデスクトップPCとモバイルノートを購入し、家ではデスクトップ、出先ではモバイルノートを活用し、データはGithubなどで共有すると良いだろう。
ただ、この方法でもデータのやり取りがやや煩雑になり、またソフトウェアの開発環境をノートとデスクトップの両方で準備しなくてはならず手間である。
この問題を解決する手段として、先にも述べたがThunderbolt(またはPowerDelivery + オルタネートモード)対応のパソコンとTypeC入力ができるモニターを購入してノートパソコンをデスクトップのようにして使う方法もある。
コストが掛かり、処理速度もデスクトップに劣るが、快適な環境でプログラミングに打ち込むことができる。まずはThunderbolt対応のノートパソコンを将来を考えて購入しておくのも一つの手である。
プログラミングにおすすめのパソコン
それでは最後におすすめのパソコンを紹介しておく。プログラミングの種類により、求められるスペックが異なるため、それに応じたパソコンを選択した。
価格が手頃かつ、それぞれのプログラミングを行うのに十分なスペックを持ったパソコンを選んでいるので参考にして欲しい。リンク先は独自にプログラミングに適したスペックへフィルタをかけている。
プログラミングの種類 | おすすめモデル |
---|---|
Webプログラミング | Lenovo Ryzen 5 1920x1200モデル |
iOSプログラミング | Macbook Air |
科学技術計算 | ROG Zephyrus G14 |
AIプログラミング | |
ゲームプログラミング(ノート) | |
ゲームプログラミング(デスクトップ) | パソコン工房 | SEVEN |
Dynabook RZ | 最強14インチモバイルノート
Webプログラミングを行なうならば最強のノートパソコン。14インチで16:10という快適な作業には最適なサイズ感とアスペクト比。1kgを切る軽量さ、複数ディスプレイに簡単に出力できる端子の豊富さ、20時間超のバッテリーなど完成を極めたパソコン。
ビジネス向け最強ノートとしても定評があるが、特にクリエイティブな作業を行う人間にとっては最高効率を発揮できるノートパソコンであり、開発環境に投資できるならば購入したい。
また、GPUは搭載されていないが、最強クラスのCPUを搭載しているため、科学技術計算やAIプログラミングにも適用できる。
当サイト限定の特設サイトから買うとプレミア価格で購入できるため必ず活用したい。【ID: dyna204cls PASS: T8Y7GRSV 】。
Lenovo Ryzen 5モデル | 神コスパノートPC
Webプログラミングを本格的に行いたいがコストは抑えたいという場合はLenovoのRyzen5搭載モデルがコストパフォーマンスの観点からおすすめである。
Ryzen5はRyzenのミドルレンジCPUでありボリュームゾーンのためパフォーマンスの割に価格競争力が高い。
10万円程度で高速なプログラミング環境が手に入るため非常におすすめである。外付けモニターでも一台購入すれば環境としては十分プロレベルである。
更に解像度が1920x1200のものだとより快適にプログラミングが行なえる。注意点として、たまにモニタが光沢の場合があるので、ディスプレイの仕様はキチンとチェックしておこう。
Macbook Air | モバイル開発の定番
iOSアプリケーションの開発をしたい場合はMacBook一択であるが、ノートパッドの使いまわしが優れているため、自習室やカフェなどでプログラミングをしたい場合も非常に適したパソコンである。
値段は安くはなく、Airという割には重量がある、Windowsに慣れている場合は使いづらい、USB Type-A端子が無いなど様々な問題もあるが、動作は安定しており当然ながら筐体の質感は良い。
まあ金持ちは処理速度の観点でMacbook Proの所有者が多いが、MacBook Airでも十分にパワフルなので、特別な理由がなければMacbook Airの一番安いモデルで問題は無いだろう。
ASUS LOG Zephyrus G14 | 全方位対応の最強ノートパソコン
ASUSの最強ゲーミングノートパソコン、NvidiaのGPUを搭載しており、これ一台でAI学習、グラフィック出力を伴う科学技術計算、ゲーム開発とあらゆるプログラミング開発を快適に行なうことが可能である。
ノングレア液晶や16:10の縦長アスペクト比などが採用されており、実際ゲーマーだけではなく、ゲーム開発者向けにも作られたノートパソコンでもある。
重量も1.65kgとハイエンドなGPUを搭載していることを考慮すると驚異的な軽さを実現しているため、頻繁に持ち歩く人でも問題なく使うことができる。
とにかくあらゆるプログラミング作業で場所を問わず最高の開発環境を実現したい人にはうってつけのノートパソコンである。
パソコン工房 デスクトップPC | 圧倒的パフォーマンスを実現
本格的なゲームプログラミングを行いたい。超高速なBuild環境を構築して時間効率を徹底的に上げていきたい場合にはRyzen 9などの重厚なCPUとGPUを搭載したデスクトップマシンを用意しよう。重めのAI学習、数値計算処理など何であれ高速にこなしてくれる。
老舗のBTOメーカーであるパソコン工房のデスクトップパソコンは、細部にわたるパーツ選択や安定性には定評があり、コストパフォーマンスもかなり高いので、そのような開発に最適な選択の一つであろう。
あるいはよりきめ細かい注文をするならばBTOメーカーのSEVENがおすすめである。値段に糸目をつけなければ100万円近くのモンスターマシンを発注することすら可能。またコストパフォーマンスもパソコン工房に劣らず高い秋葉原の老舗である。