個人開発の視点から「どのジャンルのソフトウェアを作るときに、どんな言語・フレームワーク・ツールがよく使われるか」をざっくり整理したメモです。
自分の興味(Windowsデスクトップ / CLI / 画像処理 / AI / Web / レトロゲーム / 低レイヤ寄り)をかなり反映していますが、一般的な選択肢も入れています。
1. デスクトップアプリ
Windows向け(.NET / C#)
- WPF
XAMLベースのクラシックなデスクトップフレームワーク。MVVMでがっつり組むも良し、コードビハインドで気軽に書くも良し。 - WinForms
レガシー寄りだが、簡単なツールなら今でも十分現役。UIにこだわらない社内ツール系に向く。 - WinUI 3 / Windows App SDK
新しめのWindowsネイティブUI。将来を見据えるならこちら。ただし情報量はWPFほど多くない。 - .NET MAUI
C#で書いて、Windows / macOS / iOS / Android に展開するクロスプラットフォームUI。
C++系のデスクトップGUI
- Qt 6
クロスプラットフォームGUIの定番。C++で本気でネイティブアプリを書きたいときの候補。 - MFC
レガシーではあるが、企業の資産としてはまだ現役。新規に覚えるかと言われると微妙。 - wxWidgets
クロスプラットフォームで、比較的軽量なC++ GUIライブラリ。
Webベースのデスクトップ(ハイブリッド型)
- Electron
Web技術(HTML / CSS / JS)+ Node.js でデスクトップアプリを作る。VSCodeやSlackなど有名どころが採用。 - Tauri
Rust+WebでElectronより軽量な路線を狙うフレームワーク。 - WebView2
C# / C++アプリに埋め込む形でWeb UIを表示。デスクトップ感覚でWeb UIを使いたいときに便利。
2. Webアプリ
フロントエンド
- React
現代Webフロントのデファクトスタンダード。Next.jsとセットで語られることが多い。 - Vue.js
比較的習得しやすく、個人開発でも人気。テンプレートベースで直感的。 - Svelte
コンパイル時に最適化する新しめのフレームワーク。軽さが売り。 - Angular
大規模案件向けのフルスタック型フレームワーク。学習コストは高め。
バックエンド
- Node.js(Express など)
JavaScriptで書けるサーバーサイド。フロントと同じ言語で完結させたいときの定番。 - Python(Django / Flask / FastAPI)
Djangoは重量級、Flask/FastAPIは軽量〜中規模向け。 - Ruby on Rails
「RailsでWebサービスを作る」という世界線は今でも健在。 - Go(Gin / Echo など)
単一バイナリにしやすく、軽量なWeb APIサーバーを作るのに向く。 - Rust(Actix / Axum など)
高速・安全志向のWebサーバー。個人開発でそこまで求めるかどうかは好み。 - PHP(Laravel など)
LAMPスタックの延長線。共有レンタルサーバー文化と相性が良い。
フルスタック(SSR / SSG)
- Next.js(Reactベース)
SSR / SSG / クライアントレンダリングをまとめて扱えるフルスタックフレームワーク。 - Nuxt(Vueベース)
Vue陣営のNext.js的存在。 - Remix
Web標準寄りの設計思想を強く打ち出したフレームワーク。
3. モバイルアプリ
- Flutter(Dart)
1ソースでAndroid / iOS両方をねらえる。UI表現力も高く、個人開発にも人気。 - React Native
JavaScript / TypeScriptでネイティブラッパーを使う形。React経験が活きる。 - Kotlin(Androidネイティブ)
Android Studioで標準的に扱う言語。 - Swift(iOSネイティブ)
XcodeでiOSアプリを本気で作るならこれ。 - .NET MAUI
C#資産をモバイルにも伸ばしたいときの候補。
4. CLIツール
「単機能のコマンドを量産したい」「配布を楽にしたい」場合に選択肢になる言語たち。
- C / C++
高速かつ低レイヤ。ネイティブで1バイナリにまとめやすい。画像処理やシステムツールで出番が多い。 - Go
クロスコンパイルがしやすく、単一バイナリの配布に向く。CLIとの相性が非常に良い。 - Rust
高速+メモリ安全。小さいバイナリを目指す系のツールで人気上昇中。 - Python
パフォーマンスは落ちるが、とにかく書きやすい。「まず作ってみる」には最適。
5. ゲーム開発
3Dゲームエンジン
- Unity(C#)
3D / 2Dともに最大勢力。アセットストアも強力で、インディーから商業まで幅広く使われる。 - Unreal Engine(C++ / Blueprints)
フォトリアル系3Dゲームで強い。映画・映像系でも利用される。
2D / レトロゲーム寄り
- Godot Engine(GDScript / C++ / C#)
軽量でオープンソース。2Dゲームには特に相性が良い。 - Cocos2d-x
C++ベースの2Dゲームエンジン。 - MonoGame(C#)
XNAの流れを汲むフレームワーク。C#好きには馴染みやすい。 - HTML5(Canvas / WebGL)
ブラウザで動く2Dゲームを作りたいときの選択肢。 - PICO-8 などファンタジーコンソール
8ビット風の制約込みで楽しむタイプ。レトロゲーム作りの入門として面白い。
6. 画像処理 / コンピュータビジョン
言語別によく使われるライブラリ
- Python
- OpenCV
- Pillow(PIL)
- NumPy / SciPy
- C++
- OpenCV本体(C++ API)
- C#
- OpenCvSharp(OpenCVラッパー)
- CLIツールとして
- ImageMagick / GraphicsMagick
- GEGL(GIMPが内部で使っている処理系)
- GPU系
- CUDA(自作カーネル)
7. AI / 機械学習 / 深層学習
- Python
- PyTorch / TensorFlow
- scikit-learn
- ONNX Runtime
- C++
- TensorRT
- ONNX Runtime C++ API
- Webブラウザ上
- TensorFlow.js
- WebGPU関連ライブラリ
- 画像生成 / 生成AI
- Stable Diffusion / Diffusers
- 各種LoRA / ControlNet などの拡張
- LLMローカル推論
- llama.cpp
- ollama
- vLLM など(GPU前提)
8. 組込み / IoT
- C / C++
マイコン系では依然として主役。ARM / AVR / ESP32 など。 - MicroPython
ESP32などで手軽にスクリプト的に書きたいときに便利。 - Arduino IDE
Arduinoボードを使うときの定番環境。 - Rust
組込み分野でも徐々に存在感を増している。 - Raspberry Pi(Linuxボード)
- Python + GPIO
- C++ / Go / Rust など汎用言語
9. サーバー / インフラ
- コンテナ・オーケストレーション
- Docker / Podman
- Kubernetes
- Webサーバー
- Nginx
- Apache
- クラウド
- AWS / GCP / Azure
- CI/CD
- GitHub Actions
- GitLab CI
- OSまわり
- Linuxサーバーのセットアップ・運用全般
10. データ処理 / ETL
- Python
- pandas / polars
- NumPy / SciPy
- R
統計解析・可視化向け。 - SQL
- PostgreSQL
- MySQL / MariaDB
- 分散処理
- Spark
- BigQuery など
11. タスク自動化 / スクリプティング
- PowerShell
Windowsの管理・自動化に最適。ファイル操作からレジストリ、各種APIまで広く触れる。 - Python
OS依存をあまり気にせずスクリプトを書ける。ちょっとしたバッチ処理にも向く。 - Shell Script(bash / zsh)
Linux / macOS 環境での定番スクリプト。 - AutoHotkey
キー操作やマウス操作の自動化など、WindowsのUI操作をスクリプト化したいときに。 - AppleScript / Automator
macOS上でのアプリ連携・自動化に利用。
12. OS / 低レイヤ / ネイティブ
- C
OS・カーネル・ドライバ・ランタイムなど、低レイヤの標準語。 - C++
高パフォーマンスなネイティブアプリ、ゲームエンジン、ミドルウェアなどで利用。 - Rust
メモリ安全性を重視したシステムプログラミング言語。OS自作やブラウザの一部で実例あり。 - Linuxカーネル / デバイスドライバ
カーネルモジュール開発などを通じて、本気で低レイヤを触る世界。 - Win32 API(WinAPI)
WindowsネイティブアプリのAPI群。C / C++ から直接叩く世界。 - MSYS2 / MinGW / LLVM / Clang
ツールチェーンとして、C/C++/Rust などのビルド基盤になる部分。


コメント