採用に向く条件
選ぶ理由
- 成熟・安定・巨大なエコシステム
- JVM で移植性と高い実行性能
- 大規模・長期保守に強い
プログラミング言語
James Gosling(Sun Microsystems) / 1995年登場
“Write Once, Run Anywhere” の JVM 言語。成熟・安定し、エンタープライズの基幹システムや(従来の)Android で根強い。
基本情報
選定ガイド
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
採用に向く条件
事前に確認する条件
向いている用途
詳しい解説
Java は 1995 年に Sun Microsystems が公開した言語で、現在は Oracle が中心となって開発しています。掲げたスローガンは "Write Once, Run Anywhere"。ソースコードをバイトコードにコンパイルし、それを JVM(Java 仮想マシン)が各 OS 上で実行するため、環境を選ばず同じプログラムが動きます。
この「JVM の上で動く」という設計が Java の核心です。OS ごとの違いを JVM が吸収し、長期間にわたる後方互換性も重視されてきました。結果として、何年も前のコードが今でも動くという安定性が、企業システムで強く支持されています。
横にスクロール
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
サーバーサイドの基幹システムのように、長く安定して動かす大規模開発が得意分野です。従来の Android 開発でも長く主役でした。一方で記述は冗長になりがちで、ボイラープレートが多く、JVM の起動に時間がかかるため短命なプロセスには不向きです(近年は GraalVM のネイティブイメージ等で改善も)。
| 観点 | Java | C# | Go |
|---|---|---|---|
| 実行基盤 | JVM | CLR(.NET) | ネイティブ単一バイナリ |
| 型付け | 静的 | 静的 | 静的(簡潔) |
| 強み | 成熟・互換・巨大エコシステム | 言語機能と生産性 | シンプル・並行・配布 |
| 冗長さ | 多め(近年改善) | 少なめ | 少なめ |
参照が null のまま操作すると実行時に NullPointerException が起きます。Optional や設計での回避が有効です。ボイラープレートは record・var・switch 式など近年の言語改善で軽減が進んでいます。長期サポート版(LTS)を選ぶと更新戦略を立てやすくなります。
総じて Java は、JVM による移植性・成熟したエコシステム・長期互換性を武器に、企業の大規模システムで今も中心的な言語です。
言語選定
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
エンタープライズ・基幹システム
型付け: 静的・強い型付け / 実行方式: JVM(バイトコード + JIT) / パラダイム: オブジェクト指向
JVM で移植性と高い実行性能
構文が冗長(ボイラープレート)
最初の一歩
class Main {
public static void main(String[] a) {
System.out.println("Hello, World!");
}
}公式ドキュメント