| この記事の要点 |
|
プログラミング言語の分類
① コンパイル言語(高速・型安全)
| 言語 | 用途 | 特徴 |
|---|---|---|
| C | OS / 組み込み / ドライバ | 低レベル、ポインタ、メモリ手動管理 |
| C++ | ゲーム / 高速処理 / 競技プログラミング | C + オブジェクト指向、テンプレート |
| Java | 業務システム / Android / 大規模 Web | JVM 上で動作、ポータブル、強い型システム |
| Kotlin | Android (Java の後継) / バックエンド | JVM、Null 安全、簡潔な文法 |
| Go (Golang) | サーバ / マイクロサービス / CLI | 並行処理(goroutine)、シンプル、Docker 等の基盤言語 |
| Rust | システム / WebAssembly / 高信頼性 | 所有権モデルで GC 不要かつ安全、C++ の後継候補 |
| Swift | iOS / macOS / watchOS / iPadOS | Apple 公式、ARC によるメモリ管理 |
| C# | Windows / Unity / Web (.NET) / モバイル (MAUI) | .NET エコシステム、表現力豊か |
② スクリプト言語(インタプリタ・動的型)
| 言語 | 用途 | 特徴 |
|---|---|---|
| Python | AI / データ分析 / Web / 自動化 | 豊富なライブラリ、可読性、AI 界の事実上の標準 |
| Ruby | Web (Rails) / スクリプト | 表現の自由度、Rails の生産性 |
| PHP | Web (WordPress / Laravel) | Web 特化、レンタルサーバ普及 |
| JavaScript | Web (フロント / Node.js / Deno) | ブラウザ唯一の言語、生態系最大 |
| TypeScript | JS の型付き上位互換 | 大規模 JS プロジェクトの標準 |
| Perl | テキスト処理 / レガシー Web | 正規表現が強力、CGI 時代の主役 |
| R | 統計 / データ分析 / 学術 | 統計関数充実、グラフ描画 |
| Lua | ゲームスクリプト / 組み込み | 軽量、World of Warcraft / Roblox 採用 |
③ 関数型言語
| 言語 | 用途 | 特徴 |
|---|---|---|
| Haskell | 研究 / 厳密な型システム | 純粋関数型、遅延評価 |
| Scala | 大規模 Web / データ処理 (Spark) | JVM、オブジェクト指向 + 関数型 |
| F# | .NET 関数型 | C# と相互運用 |
| Elixir | 耐障害サーバ / WhatsApp 系 | Erlang VM、並行プロセス指向 |
| Clojure | JVM 上の Lisp | 不変データ構造、並行処理 |
用途別の選び方
| 分野 | 主要言語 |
|---|---|
| Web フロントエンド | JavaScript / TypeScript(React / Vue / Angular) |
| Web バックエンド | Java / Python / PHP / Ruby / Go / Node.js / C# / Kotlin |
| モバイル iOS | Swift(または Flutter / React Native) |
| モバイル Android | Kotlin(または Java / Flutter) |
| クロスプラットフォーム | Flutter (Dart) / React Native / .NET MAUI / Xamarin |
| システムプログラミング | C / C++ / Rust / Go |
| ゲーム | C++ (Unreal) / C# (Unity) / GDScript (Godot) |
| 機械学習 / AI | Python(PyTorch / TensorFlow / scikit-learn) |
| データ分析・統計 | Python (pandas / NumPy) / R / SQL |
| 組み込み | C / C++ / Rust / Arduino C++ |
| シェル / 自動化 | Bash / PowerShell / Python |
| ブロックチェーン | Solidity (Ethereum) / Rust (Solana) / Go (Cosmos) |
| 科学計算 | Python / R / Julia / Fortran (歴史的) |
言語選定の判断軸
| 軸 | 選び方 |
|---|---|
| 速度(実行) | Rust ≈ C / C++ > Go > Java / C# > Python / Ruby |
| 開発速度 | Python / Ruby / Node.js > Go > Java / C# > Rust / C++ |
| 学習コスト | Python ≪ JS / PHP < Java / C# < Go < Rust ≪ Haskell |
| 求人数(日本) | Java > PHP > JS/TS > Python > C# > Ruby > Go > Kotlin > Rust |
| 給与水準 | Rust / Go / Scala / Kotlin > TS / Python / Java > PHP |
| コミュニティ | JS / Python が最大、Rust / Go 急成長 |
2024 年以降のトレンド
- TypeScript の天下: JS プロジェクトはほぼすべて TS 化、フロント・バックの共通言語
- Rust の存在感: WebAssembly / システム / Linux カーネル(Rust for Linux)
- Go のサーバ用途定着: Kubernetes / Docker / Terraform / Hashicorp 製品で標準
- Python の AI 独占: PyTorch / LangChain / Hugging Face 等の生態系
- Kotlin の Android + バックエンド両立: Spring Boot とも相性が良い
- Swift の WebAssembly / サーバサイド: Apple 以外でも採用例が増加
- Mojo: Python 互換 + コンパイル言語級の速度を目指す新言語
言語学習のおすすめ順
- 初学者: Python — 文法が単純、ライブラリ豊富、AI/Web 両方
- Web を作りたい: HTML/CSS → JavaScript → TypeScript → Vue/React
- 業務システム志望: Java または Python + SQL
- 低レベル理解したい: C → Rust または C++
- 関数型に挑戦: Haskell または Elixir
関連
- 各言語の入門記事・文法解説・エラー対処を IT 総合 Wiki で個別に解説
- フレームワークはその上の選択肢(Laravel / Rails / Django / Spring / Express / Vue)
- SQL は全エンジニア必須の補助言語
- Git / Linux もどの言語でも必須スキル
子ページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38