Javaとは 〜なぜJavaが選ばれるのか〜

Java imageJava
Java image
Java

Javaの誕生

JavaはC++から影響を受けたオブジェクト指向言語です。1996年にサン・マイクロシステムズによって、Java実行環境(JRE)とJava開発環境(JDK)がオープンソースとしてリリースされましたが、2010年に同社がオラクルに吸収合併された事によりJavaの版権もそちらに移行しました。オラクルに吸収されたことによりライセンスややこしい問題が発生しています。(これがJavaが嫌われる要因の一つになってると思うんだよな)

Javaの特徴

先にあげたように、Javaはオラクルのライセンスがややこしい問題や、開発環境の構築が面倒などの嫌がられる要因がありながらも、多くのプロダクトで採用されています。
オラクル曰く「全世界の3億のコンピュータデバイスでJava実行環境が動作しており、全世界の200万の人員がJava開発環境を使用しており、全世界で250億枚のJava Cardが発行されている」だそうです。

それではJavaが選ばれる理由を見てみましょう。

コンパイラ型言語

プログラミング言語はコンパイラ型言語とインタプリタ型言語に大別されます。Javaは、CやC++と同じくコンパイラ型言語です。コンパイラ言語は、人間が書いた英語ベースのソースコードをコンピュータが理解できる機械語(0,1のコード)に変換したコードを生成し、それを実行すます。
そのため、プログラムを解釈しながら実行するインタプリタ型言語(Python, PHP, JavaScriptなど)に比べて、パフォーマンスが非常に高いです

プラットフォーム非依存性

Javaで書かれたプログラムは、WindowsでもMacでもLinuxでも使用しているコンピュータのOSに依存せず実行することができます。これは、Java 仮装マシン(JVM:Java Virtual Machine)が各種OSとの間を取り持ってくれているからです。
CやC++など通常のコンパイラ型言語は、各種OSに対応したコンパイラでそのOSが理解できる機械語(ネイティブコード)に翻訳されますが、JavaのコンパイルではJVMが理解できる機械語(バイナリコード)に翻訳されます。各種OSへのネイティブコードへの翻訳はJVMが行ってくれるのです。

オブジェクト指向

Javaはクラスと呼ばれる処理が書かれた部品の集まりで構成されます。全体は複雑で大きなプロダクトでも、小さな処理グループに分けていけば、同じ部品を使いまわしたり、処理グループごとに作成する担当者を割り振ったりと大規模プロジェクトに適しています。

堅牢性

Javaは堅牢性が高く大規模なシステム開発や業務システムにも耐えうる言語です。オブジェクト指向言語であることから、重要な情報をも扱う処理をカプセル化して情報を保護することができます。また、型保証されており、自動ガベージ・コレクションを提供してアプリケーション・コードの堅牢性を強化しています。

豊富なAPI (Application Programming Interface)

Java APIとはシステムが提供する機能や、外部のライブラリを使用するためのインターフェースです。日時を扱うものや、ファイルの書き込み読み込みを扱うもの、データベースとのインタフェースなどあらゆるAPIが用意されています。これらを使うことで、「車輪の再発明」を避け、効率よく開発を進めることができます。
標準APIはこちらで確認できます。

Java開発環境(JDK)

JDK(Java Development Kit)は、Java言語を使ってJavaアプリケーションやソフトウェアコンポーネントを構築するためのソフトウェア開発キットおよび開発環境です。JDKには、Java実行環境のJREやJVMが含まれています。

Javaの開発にはこのJDKをインストールする必要がありますが、JDKにはいくつもの種類があり、ややこしくなっています。
もともとオープンソースとして開発されていたJavaですが、2018年にオラクル社がOracle JDKの商用利用の有償化を発表したことを機会に、オープンソースであるOpenJDKを基にさまざまなベンダがビルドした独自のJavaディストリビューションが登場しました。

Oracle JDK :有料、長期サポートあり
・Oracle OpenJDK:個人使用および開発目的は無償、商用は有料、長期サポートなし
AdoptOpenJDKとは:個人利用、商用利用ともに無償、長期サポートあり
  *2021年6月にAdoptOpenJDKはEclipse Foundationに合流し、名称がEclipse Adoptiumに変更された
Amazon Corretto:amazonが提供、個人利用、商用利用ともに無償、長期サポートあり
Microsoft Build of OpenJDK:マイクロソフトが提供、個人利用、商用利用ともに無償、長期サポートあり

Javaにおけるオラクル社の影響が落ちていく状況に焦ったのか、オラクル社は2021年9月に最新版のOracle JDK17を商用でも無償にすると発表しました。公式ブログ

これでまた勢力図が変わってきそうですね。

コメント

タイトルとURLをコピーしました