19
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

J++(Java++)という言語を聞いたことがある人は、今ではかなり少ないかもしれません。

J++は、かつてMicrosoftが提供していたJava互換言語で、Windows向け開発を強く意識した拡張が施されていました。しかし現在、J++は完全に廃止され、歴史の中の存在になっています。

この記事では、J++がなぜ登場し、なぜ廃止されたのかを技術的・思想的な観点から考察してみます。

J++とは何だったのか

J++は1990年代後半、Microsoftが提供していたJavaベースのプログラミング言語です。

特徴としては、

  • Java構文をベースにしている
  • Windows API に強く結びついた拡張
  • Visual J++ というIDEとセットで提供

といった点が挙げられます。

当時のMicrosoftは、Windows向けアプリケーション開発を強く推進しており、J++もその流れの中で生まれました。

Javaとの決定的な違い

J++はJavaを名乗ってはいましたが、純粋なJavaではありませんでした。

MicrosoftはJ++に対して、

  • 独自のクラスライブラリ
  • Windows専用APIへの直接アクセス
  • 標準Java仕様に含まれない拡張

を積極的に追加していきました。

その結果、J++で書かれたコードは、

  • Windows以外では動かない
  • 標準Javaとは互換性がない

という状態になっていきます。

これは、Javaが本来掲げていた「Write Once, Run Anywhere」という思想と正面から衝突するものでした。

なぜMicrosoftは独自拡張をしたのか

当時のMicrosoftの立場から見れば、理由は理解できます。

  • Windowsの優位性を保ちたい
  • クロスプラットフォームよりもWindows最適化を重視
  • 既存のWindows開発者を取り込みたい

純粋なJavaをそのまま採用すると、Windowsが特別でなくなってしまいます。

そこでMicrosoftは、Javaの文法を使いながら、実態はWindows専用言語として使えるJ++を作りました。

Sunとの対立と訴訟

この独自路線は、当然ながらJavaの開発元であるSun Microsystemsとの対立を生みます。

Sunは、

  • J++はJava仕様に準拠していない
  • Java互換を名乗るのは問題がある

としてMicrosoftを提訴しました。

結果としてMicrosoftは、

  • Java互換を名乗れなくなる
  • Java標準から逸脱した実装の是正を求められる

という立場に追い込まれます。

この時点で、J++の将来はほぼ決まっていました。

技術的に見たJ++の限界

訴訟問題だけでなく、技術的にもJ++は厳しい立場にありました。

  • Windows専用であることによる将来性の欠如
  • Java標準との乖離による学習コスト
  • 他環境への移植性の低さ

開発者にとって、

  • Javaとして学んだ知識が他で使えない
  • J++に特化するとロックインされる

というリスクが大きくなっていきました。

J++廃止後に何が生まれたか

J++の廃止後、Microsoftは新たな方向へ舵を切ります。

それが、

  • C#
  • .NET Framework

です。

C#は、

  • Javaに近い文法
  • Windowsとの高い親和性
  • 言語仕様を自社で完全にコントロールできる

という特徴を持ち、J++でやりたかったことを、より健全な形で実現しました。

言い換えれば、

J++はC#と.NETへの過渡期の存在だったとも言えます。

J++が残した教訓

J++の歴史から見えてくる教訓は明確です。

  • 標準を名乗るなら標準に従う必要がある
  • 独自拡張は短期的には便利でも、長期的には孤立する
  • 言語の思想とプラットフォーム戦略は切り離せない

J++は技術的に失敗したというより、思想と戦略の衝突によって消えていった言語でした。

まとめ

J++は、

  • Javaの皮をかぶったWindows専用言語だった
  • Javaの思想と正面から衝突した
  • 法的・技術的に継続不可能になった
  • 結果としてC#と.NETへと進化した

という流れで廃止されました。

J++を知ることは、言語設計やプラットフォーム戦略を考える上で、今でも十分に意味のある題材だと思います。

19
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?