【現役プログラマが教える】プログラミングにおすすめのパソコン
プログラミングに適したパソコンといっても、扱うプログラミング言語、記述するコードが大規模なものか、データ量は多いかなどによって異なり一概には言えない。
しかし最低限のスペック、コードを見る領域を広くとれるモニターなど、行うプログラミングの種類によらず話せることも多い。
そこでWeb系、AI学習、ゲームなどプログラミングの種類ごとに適切なパソコンの特徴を述べ、その後プログラミングを行う上で共通して必要な最低限のスペックや、プログラミングにおすすめのパソコンを紹介をしていく。
読み終えると、自分のやりたいことや予算に応じたパソコンを選べるようになるはずである。それでは始めていきたい。
- プログラミングの種類による最適なOSとGPUの選択
- Web系プログラミング
- iOSプログラミング
- 科学技術計算
- AIプログラミング
- ゲームプログラミング
- プログラミングに必要な最低限のスペック
- メモリは16GB
- ストレージはSSD 512GB
- CPUはPassMarkで15000点
- 3Dゲーム開発や高度な科学技術計算、AI演算をする場合はGPUを搭載
- その他プログラミングに適したパソコンでプラスとなる要素
- Ryzen CPU
- 縦長ディスプレイのノートパソコン
- Thunderbolt対応
- ノングレア液晶
- デスクトップかノートのどちらがおすすめか?
- プログラミングにおすすめのパソコン
- 富士通 LIFEBOOK UH | 最軽量モバイルノート
- Lenovo Ryzen 5モデル | 神コスパノートPC
- Macbook Air | モバイル開発の定番
- ROG 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に取り込むことで、それまで課題であった動作速度も改善された。Installも簡単である。
これによりWindowsとMacどちらでも慣れた方を使えば良いという状況が今である。
Macはノートパッドでの操作が優れており、ページの切り替えがスムーズかつ滑らかに行えるため、外出先でノマド的な開発をしたいのであればMacが良いだろう。
ただ、Macbook AirのAirとは皮肉と言わんばかりの重量、使いにくいFinderファイルシステム、端子の種類が少なく他機器との接続性の悪さ、コスパの悪さなどイマイチな点も多い。
一方でWindowsはマウスやWebで一般的になった統合開発EditであるVSCodeとの相性の良さなどが感じられ、PCのコスパも良いので、iOS開発が不要ならば私は間違えなく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円程度掛かるということになる。まあiOSの開発をするならWindowsではなく素直にMacを買えということである。
科学技術計算
分野にもよると思うが、プログラミング言語としては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学習を行いたいという人にとってはGPUはまず不要である。
ゲームプログラミング
簡単な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が開発の業界標準となっているため、WindowsかMacの選択ではWindows一択である。Mac版のSteamは対応機種が少ないし、MacにはNvidia製のGPUも搭載できない。
プログラミングに必要な最低限のスペック
プログラミングの初学者が、C言語を勉強しようとGCCコンパイラをWindowsパソコンに入れて、Hello World!と出力するプログラミングを作成する。これならば10年前のパソコンで問題ない。
同様に大学の初学者向けプログラミング授業、あるいは基本情報技術者試験などを目指し基本のプログラミングをを学ぶというのならばどのようなパソコンでも問題は無い。純粋にこれらのプログラミングだけを行うためにパソコンを購入するならば4万円のパソコンでも十分である。
しかし、実際にWebの開発であれ、WindowsやiOSアプリの開発であれプロダクトレベルの開発を行っていこうとするとフレームワークを使用しての開発がメインとなるので、ある程度パソコンのスペックが求められるようになる。まずはこの最低限のスペックを定義したい。
メモリは16GB
プログラミングはエディタでの編集を行い、結果をコンソールやブラウザなどで確認する。また分からない箇所があればChatGPTやグーグルで検索をして調査を行う必要がある。気が付けばタブだらけとなりメモリの消費もそれなりとなる。
また、統合開発環境(IDE)といって、エディタやデバッガ、コンパイラなど一通り開発に必要な機能がまとめられたアプリケーションを使って開発することも多いが、この場合統合開発環境がそれなりにメモリを食う。
また、軽いWeb開発であってもWSLやDockerなどの仮想環境を構築するとなると、数GB程度その環境にメモリを割り当てなければならない。
例えば下記はWSL2の消費メモリのキャプチャであるが、特に何もしていない状態で4GB程度を確保されてしまっている。仮想環境に渡すメモリ量は制限可能であるが、パフォーマンスの低下を招く可能性がある。
これらを考慮すると、まともな環境でプログラミングを行うには16GBのメモリは必要である。
ストレージはSSD 512GB
プログラミングをしていると、統合開発環境やツール、関連アプリケーションのインストール、プログラム実行時に知らずとたまるファイルキャッシュ等、知らぬ間に多くのストレージを使用することとなる。
丁寧に削除していくことも可能であるが、それなりにゴミ掃除に時間を要し、更にSSDの性質上ある程度容量が空いていないと寿命を縮めたり、速度低下の原因ともなる。
これらを考慮すると512GBの容量が欲しいところである。
ただ、プログラミングだけのためにパソコンを買うわけではないと思うので、下記の記事も参考にして欲しい。
CPUはPassMarkで15000点
Webのアプリケーションであれ、C++のWindowsアプリケーションであれ、書いたプログラミングコードはビルドされて最終的なアプリケーションで実行可能な形式となる。 (※ビルドは最終成果物を生成するための一連の作業、プログラムコードをCPUが理解できる機械語に置き換えるコンパイルもビルドプロセスの一つ。)
WebサイトならばHTMLファイルをブラウザで読み込めば終わりではないか?と思うかもしれないがモダンな開発ではそうではない。コードをどのブラウザでも動くようにするためのトランスコンパイル、ファイル容量を圧縮する作業、画像をWebに適切なサイズに再生成する作業など多くの作業が必要となる。
これにはそれなりにCPUパワーが必要となってきて、特にマルチスレッド能力が高いものがビルド時間が短くなる。このビルド時間の短縮がプログラミング作業の生産性に大きな影響を与える。
上記は当サイトをビルドしている様子であり、13秒ほどかかっているが、遅いCPUを積むと1分程度は掛かってしまう。一方でより高速なCPUを使うと5秒程で終了できるだろう。
またJava言語ならばEclipse、C++の開発ならばVisualStudio、Webの開発ならばVS Codeなど幾つかスタンダードとなるエディタはそれなりに重厚な作りをしており、CPUが低速だと起動時や操作時にもっさりとしてしまう。
これらの理由から目安として、総合的なCPUの性能を計るベンチマークテストであるPassMarkで15000点程度は欲しい所である。PassMarkの得点は下記を参考にして欲しい。
3Dゲーム開発や高度な科学技術計算、AI演算をする場合はGPUを搭載
2Dゲームや非常に簡素な3DゲームのプロトタイプならばGPUなしでもある程度開発は可能だが、まともに開発を進めると3Dゲーム作成では確実にGPUが必要となる。
また、既に述べているがAIや物理演算のシュミレーションなどでも計算処理の高速化で有用なので本格的に開発したい場合はGPUが必要である。
重要な点としてGPUは明確にNvidiaのGeforceにすべきである。NvidiaはCUDAという並列プログラミングのフレームワーク及びAPIを提供していて、CやC++言語などから使うことで、簡単にGPUを用いた演算が可能になるからである。
AMD RadeonのGPUでもCUDAと似たROCmというフレームワークを使うことができるが、CUDAほど普及はしておらずWindowsのサポートも弱いのでおすすめはできない。
次に、どの程度のGPUを搭載すべきか?であるが、この質問に答えるのは非常に難しい。3Dゲーム開発ならば数万円のミドルクラス以上は欲しいが、価格も高いのでここは値段と相談である。
その他プログラミングに適したパソコンでプラスとなる要素
以上で基本は抑えたが、プログラミングに適したパソコンとして加点となる要素を述べていく。かなりマニアックな部分とはなるので、いいモデルが無ければ別に無視してくれても構わない。
Ryzen CPU
プログラミングで待ちが発生する時間はBuildを待つ時間であり、この時間を縮めていくことは生産性の改善につながる。
Buildにはマルチコアの能力が活かされることが多いため、一般的にコア数の多いCPUの方がBuild時間が短くて済む。
AMDのRyzenはIntelのCoreシリーズと比べてマルチコア能力が価格比で高いため、プログラミング作業を中心とする環境ではお得感がある。
IntelはブラウザやOfficeなど主要なアプリケーションと連携を取り動作を最適化することに力を入れているためベンチマーク結果の割に安定的な性能を得やすい。
しかし、自身で作成したアプリケーションには関係のない話なので、プログラミングに適しているという点では純粋にベンチマーク結果と価格でCPUは判断すればよいだろう。
縦長ディスプレイのノートパソコン
プログラミングは基本的には縦に長いので、ディスプレイの解像度が縦方向に大きいほどプログラミングのソースコードの表示領域が増えてコーディングが行いやすくなる。
FullHD(1920x1080)解像度のものが割安な製品が多い印象だが、プログラミング用として考えると縦に少し長いWUXGA(1920x1200)解像度が好ましい。
MacBookやSurfaceの一部のモデルはより縦が長い3:2のアスペクト比を採用しており同様にプログラミング向けと言えるだろう。
Thunderbolt対応
映像出力、充電、USBハブとしての役割を1本のType Cケーブルで担うことができる規格がThunderboltである。
これに対応することにより、写真のようにケーブルを一本挿すだけでノートパソコンをデスクトップ環境に早変わりさせることが可能である。
厳密にはThunderboltに対応していなくともPowerDelivery(給電)機能とオルタネートモードという映像出力機能にパソコン側のUSB TypeC端子が対応していれば問題ない。
ただ、この機能を実現するためにはThunderboltに対応したパソコンの他にUSB TypeC対応のモニタ、Thunderboltケーブルを買い揃える必要がある。
Type-Cモニタには通常USBポートが複数ついているため、そこに無線マウスやキーボードの受信機を取り付けておけば、ケーブル一つで完全なデスクトップ環境の完成である。
ちなみにおすすめのモニターは34インチ非光沢(アンチグレア)Type-C 曲面UWQHDモニター。3440x1440の広い解像度で作業ができ、また曲面は目からモニターの距離が一定になるため疲れにくいという特徴を持つ。
ノングレア液晶
光沢のある液晶を使っていると映像視聴には適しているものの、長時間のプログラミングには目が疲れる場合がある。よって光沢液晶と書いてある場合は注意しよう。
デスクトップかノートのどちらがおすすめか?
デスクトップの圧倒的なメリットは強力なGPUとCPUを搭載できるため、それだけ操作を快適にでき、ビルド時間や計算時間も短縮することができる。
一方で勉強会やハッカソンのような大会に出る、プログラミングのスクールに通うというような人は当然ノートパソコンでないと不可能である。
また、ノートでも大抵のプログラミングは快適にこなすことができるので過度なオーバースペックは不要である。ただGPUを搭載するとなるとコストが高く、重いことは問題となる。
デスクトップとノートを組み合わせる場合もあるので、選択肢としては以下のようになる。
デバイス | 汎用性 | 携帯性 | コスト |
---|---|---|---|
ノートパソコン | × | 〇 | 〇 |
GPU搭載ノート | △ | △ | △ |
GPU搭載デスクトップ | 〇 | × | 〇 |
GPU搭載デスクトップ+ノート | 〇 | 〇 | × |
それぞれ説明すると、まず通常のノートパソコンはGPUが使えないが、ゲーム開発以外では不自由は基本的に無いため最もオーソドックスな選択肢と言える。プログラミングの初学者にもおすすめである。
GPU搭載ノートは、実現できることは多いが携帯性が損なわれるため、GPUプログラミングを外でしたいという明確な目的を持つ人以外には基本的におすすめしない。
GPU搭載デスクトップは定位置での作業とはなるが、生産性を追求するならばベストな選択肢である。開発会社でも多くはこのスタイルのはず。
GPU搭載デスクトップ+ノートは最強の組み合わせである。Windows Pro版だとリモートデスクトップが使えるため、出先で自宅のデスクトップにログインしてノートで作業することが可能。
プログラミングにおすすめのパソコン
それでは最後におすすめのパソコンを紹介しておく。プログラミングの種類により、求められるスペックが異なるため、様々なケースに従ってパソコンを選択した。
富士通 LIFEBOOK UH | 最軽量モバイルノート
Webプログラミングを行なうならば最強のノートパソコン。14インチで16:10という快適な作業には最適なサイズ感とアスペクト比。900グラムを切る軽量さ、複数ディスプレイに簡単に出力できる端子の豊富さ、長時間バッテリーなど完成度の高いパソコン。
長年パソコンを使っていて思うことが、いつでも手軽に持ち出せるということであり、Macbook Airよりも500g程度軽いLIFEBOOK UHシリーズはプログラミング生活を送るのに適したパソコンと言える。
また、GPUは搭載されていないが、最強クラスのCPUを選択可能であるため、科学技術計算やAIプログラミングにも適用できる。
なお、富士通株式会社様より通常より割引率が高いシークレットクーポンを提供していただいているため購入時には是非利用してほしい。
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の一番安いモデルで問題は無いだろう。
ROG Zephyrus G14シリーズ | 最強モバイルゲーミングノート
ASUSの最強ゲーミングノートパソコン、NvidiaのGPUを搭載しており、これ一台でAI学習、グラフィック出力を伴う科学技術計算、ゲーム開発とあらゆるプログラミング開発を快適に行なうことが可能である。
ノングレア液晶や16:10の縦長アスペクト比などが採用されており、実際ゲーマーだけではなく、ゲーム開発者向けにも作られたノートパソコンでもある。
重量も1.5kgとハイエンドなGPUを搭載していることを考慮すると驚異的な軽さを実現しているため、頻繁に持ち歩く人でも問題なく使うことができる。
とにかく価格は異常であるものの、あらゆるプログラミング作業で場所を問わず最高の開発環境を実現したい人にはうってつけのノートパソコンである。
パソコン工房 デスクトップPC | 圧倒的パフォーマンスを実現
本格的なゲームプログラミングを行いたい。超高速なBuild環境を構築して時間効率を徹底的に上げていきたい場合にはRyzen 9などの重厚なCPUとGPUを搭載したデスクトップマシンを用意しよう。重めのAI学習、数値計算処理など何であれ高速にこなしてくれる。
デスクトップPCを扱うメーカーは無数にあり、それほど差別化はできない領域なので、GeforceのGPUを積んだデスクトップでコスパやデザインが気に入ったものを適当に購入すれば問題ない。
敢えて上げるならば、老舗のBTOメーカーであるパソコン工房のデスクトップパソコンは、細部にわたるパーツ選択や安定性には定評があり、コストパフォーマンスもかなり高いので、そのような開発に最適な選択の一つであろう。
また、リモートデスクトップの活用を考えている場合はWindowsのProを選択しよう。