本記事について
当サイトを閲覧いただきありがとうございます。 本記事はシリーズ『生成AI時代のアーキテクチャ超入門』の「ソフトウェアアーキテクチャ」カテゴリ第1弾として、プログラミング言語の選び方を解説する記事です。
「言語はフレームワークを、フレームワークは採用できる人材を縛る」一度選ぶと10年単位でプロジェクトを拘束する、後から変えにくい決定です。本記事では代表的な9言語(TypeScript/Python/Java/C#/Go/Rust/Ruby/PHP/C・C++)の特徴と、規模・用途・人材市場・AI生成精度の4軸での選定基準を解説します。
本記事のテーマについてさらに詳しく知りたい方は『世界一わかりやすい IT業界のしくみとながれ』も参考にしてみてください。
そもそもプログラミング言語選定とは何か
プログラミング言語選定とは、ざっくり言えば「どの言語でシステムを書くかを決めること」です。
外国語を学ぶ場面を想像してください。英語(TypeScript/Python)は話者が多く情報も豊富、ドイツ語(Java)は文法が厳格で大企業向き、ラテン語(C/C++)は古典で高速だが習得が大変。一度その言語で書き始めると、チームの人材・ライブラリ・ノウハウが全てその言語に蓄積され、途中で別の言語に切り替えるのは「今まで書いた論文を全部翻訳し直す」のと同じコストがかかります。
なぜ言語選定が重要なのか
もし言語選定を軽く考えたらどうなるか。5年後にその言語を書ける人材が市場にいなければ、採用も引き継ぎもできず、システムが技術的に孤立します。現在は用途ごとに最適な言語を選ぶ時代で、フロントエンドとバックエンドで異なる言語を組み合わせるのが普通です。
言語選定は全体構造と並ぶOne-way Door。5年後・10年後の人材市場を見据えて決めるのが鉄則です。
実行方式の分類
プログラミング言語は実行方式によって大きく3つに分類されます。実行方式が処理速度と開発スピードのトレードオフを決めるため、言語選定の根底にある性質です。
| 実行方式 | 対象言語 | 仕組み |
|---|---|---|
| コンパイラ型 | C・C++・Rust・Go 等 | 実行前に一括で機械語に翻訳。高速だが修正のたびに再コンパイル |
| インタプリタ型 | Python・Ruby・PHP 等 | 一行ずつ読みながら実行。結果をすぐ確認できるが遅い |
| 実行時コンパイラ型 | Java・C#・JavaScript 等 | 中間言語を作成し、実行時にコンパイルしながら実行。OS非依存で速度もそこそこ |
コンパイラ型は「本番運用の性能」、インタプリタ型は「開発サイクルの速さ」が強みです。JIT(Just-In-Time compiler、実行時にその場で機械語化する方式)型はその中間を狙った折衷案です。
C / C++
C言語は1972年に開発された最初期のプログラミング言語の1つで、シンプルな構造ゆえに実行速度が極めて速いのが特徴です。一方で自動メモリ管理やオブジェクト指向が無いため、それらを開発者が自ら意識して管理する必要があります。
C++ は1983年に登場したC言語の拡張で、メモリ管理とオブジェクト指向を導入しつつ、「ゼロオーバーヘッド原則」によってC言語と遜色ない処理速度を維持しています。2011年以降は3年毎にモダン仕様が追加され続けており、今なお現役の言語です。
| 強み | 弱み |
|---|---|
| 実行速度・安定性が圧倒的 | 自動メモリ管理が無い(C言語) |
| ハードウェア制御に強い | 学習難度が極めて高い |
| 膨大なライブラリ資産(C++) | 記述量が多く可読性が低い |
主な用途:組み込みシステム / OSや基盤ソフトウェア / AIライブラリのコア(PyTorch・TensorFlow) / ハイエンドゲーム(Unreal Engine)
C言語の採用領域はRustへの置き換えが急速に進行中です。既存資産が膨大なためC/C++が完全に消えることは当面ないものの、新規案件での優先度は落ちています。
C# / .NET
C# は2000年にMicrosoftが開発したプログラミング言語で、ガーベージコレクション・オブジェクト指向に対応したクロスプラットフォーム言語です。Windows・Linux・Mac・iOS・Android等の様々なプラットフォームで動作可能ですが、CやC++との互換性はありません。
Microsoftが開発元ということもあり、現在もアップデートが続き、モダンな仕様が随時追加されています。Microsoft製品やAzureとの相性が極めて良く、WEBアプリから業務システムまで広く使われ、ゲームエンジンUnityの標準言語としてもモバイルゲームからコンシューマゲームまで大量のタイトルで採用されています。
| 強み | 主な用途 |
|---|---|
| Microsoft製品・Azureと相性◎ | Microsoft関連サービス活用アプリ |
| 処理速度と生産性のバランス良好 | WEBアプリ全般(ASP.NET Core) |
| 目立った欠点がない | ゲーム開発(Unityの標準言語) |
Microsoft系のサービスを活用する場面では、C#は本命として検討すべき言語になります。
Java
Java は1996年にサン・マイクロシステムズが開発し、2010年以降はオラクルがサポートしている言語です。オブジェクト指向・マルチスレッド・ガーベージコレクションといった仕様を備え、JVM(Java Virtual Machine)上で実行されるためOS非依存で動作し、処理速度・安定性も高いという特徴があります。
企業系のシステムでは長年に渡って圧倒的なシェアを持ち、今も現役です。年に2回のサイクルで定期的にアップデートされ、クラウド最適化を含むモダン仕様にも対応。Spring系のフレームワークが非常に充実しており、業務アプリ開発の標準的な選択肢として定着しています。
ライセンスの罠
Javaには2つのライセンスがあります。OpenJDKは他言語と同様に無料のオープンソースとして使えますが、Oracle JDKを商用利用する場合は従業員数に応じたライセンス料を支払う必要があります。
ライセンス料は極めて高額で、非開発者も含めた人数で計算されるため、従業員1000人の会社なら年間約2700万円、3万人なら年間約3.6億円にも達します。Oracle JDKのサポートには法的保護・古いバージョンのサポート・24時間365日の電話対応が含まれており、これらは官公庁・金融系企業でコンプライアンス上求められるケースが多いためです。
| ライセンス | 費用 | 主な選定理由 |
|---|---|---|
| OpenJDK | 無料(オープンソース) | 一般的な用途はこちら |
| Oracle JDK | 年間ライセンス料(高額) | 官公庁・金融機関のサポート要件 |
Amazon Corretto 等の無料でサポートが得られるOpenJDK互換サービスを使う企業が増加中。Oracle JDKを敢えて選ぶ理由は縮小傾向です。
Oracle JDKは商用利用でライセンス料発生。Amazon Corretto / Eclipse Temurinが代替の本命です。
Python
Python は1991年に開発されたプログラミング言語で、他の主要言語と同様の仕様を備えつつ、「コードの可読性を最優先した設計思想」が最大の特徴です。記述量がJavaやC#より大幅に少なく済み、インデントによるブロック構造を仕様として強制することで、誰が書いても読みやすいコードになります。
コミュニティが非常に強く、特にAI・データサイエンス領域では最もライブラリが潤沢で、AI開発は事実上Pythonが標準。インタプリタ型のため処理速度自体は遅いですが、呼び出すライブラリの多くはC/C++で書かれているため、実際の実行速度はあまり遅くなりません。
| 強み | 弱み |
|---|---|
| コードが圧倒的に読みやすい | 生の処理速度はやや遅い |
| AI・データ分析で事実上の標準 | 動的型付けで大規模開発に向きにくい |
| 学習コストが低い | GIL(Global Interpreter Lock、同時に1スレッドしか動かせない制約) |
| ライブラリが極めて豊富 | ― |
主な用途:AI・機械学習・データ分析 / WEBアプリ全般(Django・FastAPI)
AI・データサイエンス領域では他言語の出番がないと言えるレベルです。
Ruby / PHP ― スクリプト言語の現在地
Ruby(1995年・日本人まつもとゆきひろ氏が開発)は「Ruby on Rails」フレームワークで有名です。Railsはコマンド1つで機能を自動生成し、規約に従うだけで面倒な設定をほぼ書かずに済むため、WEBアプリのプロトタイプを最速で作れるのが強み。ただしRails自体が重いためFaaS(Function as a Service、サーバーレスで関数単位に実行する基盤)やマイクロサービスには不向きで、WEB以外の用途での選定機会は減少しています。
PHP(1995年開発)はWEB開発に特化した言語として誕生し、HTMLに埋め込んで動的ページを生成する手軽さから爆発的に普及しました。全世界のWEBサイトの約75%を占めるWordPressがPHPで書かれており、今も稼働数では最大級のバックエンド言語です。PHP 8以降はJITコンパイラや型システムが強化され、Laravel・Symfonyなどのモダンフレームワークも成熟しています。
| 言語 | 立ち位置 |
|---|---|
| Ruby on Rails | 個人・少人数でWEBアプリを最速で立ち上げたい場合の有力候補 |
| PHP + Laravel | WordPress案件・中小規模WEBサイト・既存PHP資産の保守 |
新規プロジェクトで積極的に選定する機会は減ったものの、既存資産が巨大なため当面は主要言語として残り続けます。
JavaScript
JavaScript は1995年にNetscape社のブレンダン・アイク氏が約10日間で開発した、ブラウザ上で動作する言語です。言語仕様はECMAScriptとして標準化されており、歴史的経緯から仕様が複雑な部分もありますが、毎年のアップデートで進化を続けています。
最大の転換点は2009年に登場したNode.jsです。Node.jsによってJavaScriptはブラウザの外(サーバー側)でも動作する汎用言語となり、フロントエンドとバックエンドを1つの言語で書ける「フルスタック」の道が開かれました。イベント駆動・非同期I/Oが特徴で、大量の同時接続をさばくWEBサーバーや、AWS Lambda のようなサーバーレス環境との相性も抜群です。
| 強み | 弱み |
|---|---|
| フロントエンドの事実上の標準 | 動的型付けで大規模開発に不向き |
| Node.jsでフルスタック開発可能 | 歴史的経緯で仕様が複雑 |
| npmエコシステムが世界最大 | 非同期処理の記述が独特 |
| 学習リソースが極めて豊富 | 型安全性の欠如 |
バックエンド用途では、ほぼ全てのプロジェクトで後述のTypeScriptに置き換わっています。素のJSをバックエンドで選ぶのは、小規模スクリプト以外ではもう古い選択です。
TypeScript
TypeScript は2012年にMicrosoftが開発した、JavaScriptに静的型付けとオブジェクト指向を追加した言語です。JavaScriptの上位互換のため、既存のJSコードは基本的にそのままTS上で動きます。コンパイル時に型チェックが入ることで、実行時のバグを大幅に減らせるのが最大の魅力です。
フロントエンドではNext.js・React・Vue・Angular 等の主要フレームワークが全てTS対応しており、「TypeScriptが一強」に近い状態です。バックエンドでもNode.js・Deno・Bun などのランタイム上で動作し、特にBFFやマイクロサービスでの採用が急増中です。フロントとバックを同一言語・同一型定義で書ける効果は非常に大きく、チーム全体の生産性を底上げします。
| ランタイム | 特徴 |
|---|---|
| Node.js | 最も普及。実績・情報量が豊富 |
| Deno | Node.js作者が作り直した後継。セキュリティとTS標準対応に強み |
| Bun | 2022年登場の高速ランタイム。Node.js互換で起動が数倍速い |
WEB系の新規プロジェクトでは、フロント・バック共にTypeScript が現在の本命です。
Rust
Rust は2010年にMozillaが発表し2015年に1.0リリースされた、メモリ安全性を保証するコンパイラ型言語です。ガベージコレクションを持たず、代わりに「所有権」(Ownership)という独自のメモリ管理機構によって、メモリリークやデータ競合をコンパイル時に防ぎます。
学習曲線は極めて急ですが、一度慣れれば C/C++ 並の実行速度とモダン言語の書きやすさの両方を得られます。「C/C++の置き換え候補」として急速に採用が進んでおり、Stack Overflowの「最も愛されている言語」調査でも常に上位を占めています。
| 採用領域 | 例 |
|---|---|
| システム | Linuxカーネル(一部)・Windowsコンポーネントで採用開始 |
| ブラウザ | Firefoxのレンダリングエンジン(Servo) |
| Web・インフラ | Cloudflare Workers・Dropboxのストレージ基盤 |
| WebAssembly | Wasm向けコンパイル先として事実上の第一選択 |
| CLI・ツール | ripgrep・fd・esbuild の代替実装 |
性能・安全性が絶対要件の新規プロジェクトでは、現在最も勢いのある言語です。
Go
Go は2009年にGoogleが開発した、シンプルさを徹底的に追求した言語です。キーワード数はわずか25個で、1週間もあれば業務で書けるレベルに達するほど学習コストが低い。Googleの社内事情として、C++のビルドに35分以上かかっていたことへの反発から生まれた言語だとも言われています。
最大の強みはクラウドネイティブ領域での圧倒的な存在感です。Docker・Kubernetes・Terraform・Prometheus など、現代インフラを支える主要ツールはほぼ全てGoで書かれています。シングルバイナリに静的コンパイルされ、起動が極めて速いため、コンテナやFaaSとの相性が抜群で、マイクロサービスのAPIサーバーとしても定番の選択肢です。
| 強み | 弱み |
|---|---|
| 学習コストが低い | 表現力より単純さを優先 |
| goroutineによる軽量な並行処理 | ジェネリクス対応が遅かった(1.18で対応) |
| シングルバイナリで配布しやすい | オブジェクト指向の機能が少ない |
| 起動が速くFaaS・コンテナと相性◎ | ― |
採用例:Docker / Kubernetes / Terraform / Prometheus / etcd / Google・Uber・Netflix の各種マイクロサービス
クラウドネイティブ基盤を新規に作るなら、Goが第一候補です。
選定の主な基準
プログラミング言語の選定は、単に流行や好みで決めるものではなく、プロジェクトの要件に応じて複数の軸を総合的に評価する必要があります。特に一度選んだ言語は数年単位でプロジェクトを縛るため、慎重に決める必要があります。
- アプリケーションを稼働させる環境(実行環境・OS・クラウド)
- 機能要件と非機能要件(性能・同時接続数・整合性要件など)
- 実装の労力(フレームワークの充実度・開発速度)
- 確保できる技術者(社内スキル・外部人材の市場規模)
AI駆動開発(バイブコーディング)が広がり、AIとの相性も新たな選定基準に加わっています。型が豊富な言語(TypeScript・Rust・Java)はAIが意図を正確に推論しやすく、学習データが豊富な言語(Python・JavaScript)は生成品質が高くなる傾向があります。
ケース別の選定
新規WEBアプリ(API中心・フロント連携重視)
TypeScript(Node.js / Bun)。フロントとバックで同じ型定義を共有でき、開発速度と型安全を両立できます。現在最もバランスが良い選択肢です。
新規WEBアプリ(大規模・企業系・堅牢性重視)
Java / C#。長年の運用実績と豊富な人材市場、そして Spring Boot / ASP.NET Core といった成熟フレームワークの恩恵を受けられます。官公庁・金融系では今も主要候補です。
高速処理・低リソースが必要なサーバー
Rust / Go。特にマイクロサービスやコンテナ前提ならGoが起動速度・バイナリサイズで有利。極限性能とメモリ安全が必要ならRustが候補になります。
AI・機械学習・データ分析
Python一択。ライブラリエコシステムが他言語と桁違いで、実質的に選択の余地がありません。PyTorch・TensorFlow・pandas 等の主要ライブラリは全てPython前提です。
個人・少人数で最速プロトタイプ
Ruby on Rails / PHP + Laravel。scaffold コマンドで骨格が自動生成され、1人でも短期間でWEBアプリを立ち上げられます。
組み込み・OS・ハードウェア制御
C / C++ / Rust。新規ならRustが候補ですが、既存資産の保守なら引き続きC/C++が必要になります。
既存システムの保守・拡張
既存の言語を継続。言語を変えての書き直しは、ほとんどの場合割に合いません。
言語×人材市場の実務段階表
「5年後に書ける人は何人いるか」を数値で把握すると、選定判断が一気に明確になります。以下は2026年4月時点の日本の開発者採用市場の肌感覚です。
| 言語 | 国内エンジニア人口 | 採用難易度 | 5年後の継続予測 | 主戦場 | 向くケース |
|---|---|---|---|---|---|
| JavaScript / TypeScript | 50万人〜 | 低(最も集めやすい) | ◎ 拡大 | Web・モバイル・BFF | フロントと型共有したいWebアプリ |
| Java | 40万人〜 | 低〜中 | ○ 継続 | 企業系業務・金融・官公庁 | 堅牢性・長期保守が最優先の業務系 |
| Python | 30万人〜 | 低〜中 | ◎ 拡大(AI需要) | AI・データ・Web | AI・データ分析を中核にする開発 |
| PHP | 20万人〜 | 低 | △ 縮小 | WordPress・既存保守 | WordPress案件や既存PHP資産の保守 |
| C# / .NET | 15万人〜 | 中 | ○ 継続 | Unity・Microsoft系 | Azure中心やUnityゲーム開発 |
| Go | 5万人〜 | 中〜高 | ○ 拡大 | クラウドネイティブ・マイクロサービス | コンテナ・マイクロサービス基盤構築 |
| Ruby | 5万人〜 | 中〜高 | △ 横ばい | Rails既存・スタートアップ | 少人数で最速プロトタイプ開発 |
| Rust | 1万人〜 | 高 | ○ 拡大(ニッチ) | システム・Wasm・インフラ | 極限性能とメモリ安全が絶対要件 |
| Kotlin / Swift | 各5万人〜 | 中 | ○ 継続 | モバイル専用 | iOS・Androidネイティブアプリ開発 |
「国内エンジニア人口が10万人未満の言語を業務で採用すると、採用に半年以上かかる」のが経験則です。スタートアップの求人票に「Rust必須」と書くと応募が10分の1になる、という話が現場でよく聞かれます。大企業の中途採用ではTypeScript・Java・Pythonの3強以外は、採用計画に年単位で支障が出る覚悟が必要です。
「5年後に書ける人は何人いるか」を数字で見て決めます。尖った言語で採用に詰む事例は後を絶ちません。
やってはいけないこと
書き直しや言語変更で事故る典型パターンを整理します。どれもプロジェクト全体が止まる級の失敗です。
| 禁じ手 | なぜダメか |
|---|---|
| 言語を「書き直しながら」置き換える(Big Bang Rewrite) | Netscapeが1998年に書き直しで3年を失いブラウザ戦争に敗北。段階移行(Strangler Figパターン)しか現実解がない |
| 新興言語を「流行だから」とMVPで採用 | エンジニアが集まらず、成長期に他言語へ移行する羽目に |
| 動的型付け言語(Python / Ruby)で中規模超えのプロジェクトを進める | 型不在の代償が3年後に出る。大規模はTypeScript / Java / Go / Rustの型付け言語が定番 |
| Oracle JDKをライセンス確認せず商用利用 | 従業員数 × 年間ライセンス料で、1000人規模で年間2700万円の請求書。Amazon Corretto / Eclipse Temurinが代替の本命 |
| 1プロジェクトで5言語以上を混在 | 保守人員が分散し、一人も全体を把握できない状態に。2言語(フロントTS・バックGo等)で十分 |
| 言語バージョンをLTS以外で本番運用 | セキュリティパッチ切れまでの猶予が短く、年1回の移行作業が発生 |
| 「AIで書けるからマイナー言語でもOK」 | AIの生成精度は学習データ量に比例する。ニッチ言語はAI生成コードにハルシネーションが混じる |
| 全プロジェクトを1言語で統一しようとする | フロント/バック同一は効くが、AI処理まで全部TSは無理筋。適材適所が現実解 |
| 流行だけで言語を選定する | 流行は一時的。5年後も人材市場が残っているかで選ばないと衰退に巻き込まれる |
言語選定はOne-way Doorで、一度走り出したら戻れない決定です。候補が複数ある時は、「採用計画 × 5年後の人材市場 × AI生成精度」の3軸で必ず数値化してから決めます。
「書いていて楽しい」は、3年後の採用難で消えます。
AI判断軸
AI駆動開発が前提になると、言語選定の軸に「AIの生成精度・型推論の効き・学習データ量」が加わります。
| AI時代に有利 | AI時代に不利 |
|---|---|
| TypeScript(型+情報量+フルスタック) | 動的言語(Perl・Ruby)大規模時の不安定さ |
| Rust・Go(型安全・標準化) | 独自DSL・マイナー言語 |
| Python(学習データ最多) | 独自拡張・内製言語 |
| 標準的なフレームワーク準拠 | ニッチ実装・独自パターン |
型がある言語でAI生成の品質が変わる理由
AIがコードを生成するとき、型情報は「AIへのガードレール」として機能します。TypeScriptやGoのように型が明示されている言語では、AIが型に矛盾するコードを書いた瞬間にコンパイラが弾いてくれます。つまり、AIのミスを機械的に検出できます。一方、PythonやRubyのような動的型付け言語では、型の不整合が実行時まで分からないため、AIの生成ミスがテストを通り抜けて本番に到達するリスクがあります。
ただしPythonは例外的で、学習データ量が圧倒的に多いためAIの生成精度自体は高いです。AI/ML領域でPythonを選ぶのは依然として正解ですが、大規模アプリケーションを書く用途では型ヒント(mypy)の厳格な活用を前提にすべきです。
言語の書き直しはAI時代でも割に合わない
「AIがあるから他の言語に移行できる」と考える人もいますが、現実的ではありません。言語移行の難しさは文法の変換ではなく、エコシステム全体の置き換えです。テストコード・CI設定・デプロイスクリプト・運用ツール・チームの知識──これら全てが言語に紐付いているため、コード変換だけ終わっても移行は終わりません。
既存資産がある場合は、今の言語のまま型付けを強化する(Python → mypy厳格化、JavaScript → TypeScript移行)方が、言語ごと変えるより遥かにコストが低いです。
選定の優先順位
- 用途で実質的な候補を絞る(AI/ML = Python、Web = TypeScript、高性能 = Go/Rust)
- 人材市場の厚みを確認(10年後も採用できるか)
- 型の強さ × 学習データ量で最終判定 — 両方揃っているのがTypeScript・Go
- 既存資産がある場合は継続が最安 — 言語の書き直しはAI時代でも割に合わない
「その言語、日本に何人いる?」(業界事例)
若手エンジニアが新興言語を気に入って「業務でも使いたい」と提案した際、先輩アーキテクトが「その言語で書ける人、日本に何人いる?」と問い返し、提案者が答えに詰まって沈黙した。という場面は多くの現場で繰り返されています。書いていて楽しいという感覚と、後任を採用できるかという経営判断は別レイヤーの問題です。
新人時代にGoのマイナーさを軽視して業務で提案して、先輩に「うちのチームで書ける人あと何人いる?」と問われて即答できず黙った、という話もよく聞きます。教訓は、「言語選定は技術判断であると同時に採用戦略」ということです。
新興言語は個人の勉強や検証用プロジェクトで楽しめばよく、業務では「5年後も日本で数千人以上書ける言語」に倒すのが健全。尖った選定の代償を払うのはたいてい後任のチームです。
楽しさはコスト、人材は資産です。
決めるべきこと — 自分のプロジェクトでの答えは?
以下の項目について、自分のプロジェクトの答えを1〜2文で言語化してみてください。曖昧なまま着手すると、必ず後から「なぜそう決めたんだっけ」が問われます。
- メイン言語(TypeScript / Python / Java / C# / Go / Rust 等)
- ランタイム・バージョン(最新LTSを基本に選定)
- 用途別の追加言語(AI処理はPython、インフラはGo等)
- 型付け方針(TypeScript
strictモード・Python型ヒントの徹底度) - ライセンス体系の確認(Oracle JDKかOpenJDK/Correttoか等)
- セットで選ぶフレームワーク(Spring / FastAPI / Next.js等)
- 5〜10年後の人材確保見込み
決定理由の残し方
言語選定はチーム編成・採用・保守コストに直結するため、選定理由をADRとして明文化しておくことが不可欠です。以下に具体例を示します。
| 項目 | 内容 |
|---|---|
| タイトル | バックエンド主要言語にTypeScriptを採用 |
| ステータス | 承認済み |
| コンテキスト | 新規SaaSプロダクトのバックエンド言語を選定する。フロントエンドはReact(TypeScript)で確定済み |
| 決定 | バックエンドもTypeScript(Node.js LTS)で統一する |
| 理由 | ・フロントエンドと型定義・バリデーションロジックを共有でき、開発効率が上がる ・チーム6名中5名がTypeScript経験者で、追加の学習コストが最小 ・npm エコシステムが豊富で、AI コード生成の精度も高い |
| 却下した代替案 | Go:型共有ができず、フロント・バック間のスキーマ同期コストが増える。Python:型安全性が弱く、大規模になるほど実行時エラーが増加する |
| 結果 | フロント・バックのモノレポ構成を採用し、共通パッケージで型定義を一元管理する |
プロジェクト開始時は自明に思える判断でも、1年後のメンバー交代時には「なぜGoではなくTypeScriptなのか」が必ず議論になります。後から見返したとき「なぜこの選択をしたか」が一目でわかることが、ADR の最大の価値です。
この記事に関連する記事
https://senkohome.com/arch-intro-software-auth-session/ https://senkohome.com/arch-intro-software-framework/ https://senkohome.com/arch-intro-software-overview/
まとめ
本記事はプログラミング言語の選び方について、主要言語の特徴・人材市場・AI時代の判断軸まで含めて解説しました。如何だったでしょうか。
WEBはTypeScript、AI・データはPython、企業系はJava/C#、クラウドネイティブはGo、極限性能はRust、という棲み分けが2026年の現実解です。尖った言語は趣味で楽しみ、業務は主流に寄せる。これが採用と長期保守の両方を救います。
次回は「全体構造」(モノリス vs マイクロサービス vs モジュラーモノリス)について解説します。
シリーズ目次に戻る → 『生成AI時代のアーキテクチャ超入門』の歩き方
本記事で扱った内容の詳細は Stack Overflow Developer Survey も合わせて参考にしてください。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:生成AI時代のアーキテクチャ超入門(18/89)
