Javaによるプログラミングに関する世界観(C.各種言語)です。Javaの世界観1(言語)も参照のこと。
Java代替言語とは、Javaと同様にJava仮想マシン(JavaVM)上で動くようにコンパイルされ、Javaのクラスライブラリをそのまま利用でき、言語的な要素だけを簡素化あるいは機能追加した、「Javaに代わる言語」のこと。
Javaの優れたクラスライブラリをそのまま利用でき、Javaと同様のクロスプラットフォームでJITコンパイル型の高パフォーマンスな性能を持ちながら、「言語・文法的な部分」だけをすげかえた、いわば「Javaの変種」である。
もともとは動的スクリプト言語のGroovyにはじまり、GroovyはJavaよりもスクリプト言語に近い文法で、Java代替言語を構築した。
最近では、ScalaとKotlinが広く使われている。Scalaは大型のデータセンターから小型のシステムまで使える「スケーラブル」な言語として有名で、前はRailsで作られていたツイッターのシステムも今はScalaで動いている。またKotlinはロシア製の言語であり、Androidの公式開発言語として採用されている。
Microsoftの.NET Frameworkのような位置づけにも近い。.NETでは.NET Frameworkのクラスライブラリを用いながら、C#, VB.NET, Managed C++, F#などの言語を使ってプログラミングを行うことができる。だが、Oracle公式ではなく、サードパーティが自由に作っていることなどが異なる。.NET FrameworkでもIronPythonやIronRubyなど「Python/Rubyを.NETで動かす」という試みがされているが、これに対してJavaではJythonやJRubyなど「Python/RubyをJavaで動かす」という試みがされている。Javaと.NETの永遠の「言語戦争」がここに表される。
ただし、思ったほど.NETやJavaの代替言語は普及していない。.NETではC#かVBで記述するのが一般的であり、Javaも公式のJava言語を使うことが多い。これは実績や知名度がないなどの理由がある。ただし最先端のJava界ではKotlinが流行っており、「Kotlinを一度触るとJavaには戻れない」とまで言われている。KotlinはJavaでまだ正式に採用されていない最先端の機能を多数取り込み、JetBrains社(IntelliJ IDEAで有名)が作っていることもあって大流行している。
Java代替言語の利点としては、以下の2点があげられると思います。
1.「一度書けばどこでも動く」のJava VMの恩恵にあずかれる。
2.Javaのクラスライブラリの恩恵にあずかれる。
上記に「思ったほど.NETやJavaの代替言語は普及していない」と書きましたが、これは古いです。KotlinがAndroid開発の標準となったように、今AltJava(特にKotlin)はめちゃめちゃ流行っています。Androidアプリを開発したいなら、Java/Kotlinか、あるいはAndroidだけではなくiOS向けにも提供できるFlutterを使いましょう。
Groovyを参照のこと。
Scalaを参照のこと。
Kotlinを参照のこと。
Red HatによるJava仮想マシンとJavaScript実行環境上で動作するプログラミング言語。
Red Hatも参照のこと。
Javaを.NET Framework上で動かすことの出来る仮想マシン。
.NETも参照のこと。
Jython/JRubyはJavaによって実装されたPythonとRubyの実装。Javaのクラスライブラリをそのまま使うことができる。.NET Frameworkにおける同様のものとしてIronPythonやIronRubyがある。
PythonのツールやRubyのツールも参照のこと。
Clojureを参照のこと。
AltJavaとは「Java代替言語」のことで、JavaVMの上で動き、Javaのクラスライブラリを使用しながら、動的型付けなど独自の文法でプログラミングができる。