Javaってどんなプログラミング言語?Javaの特徴や歴史を解説。
この記事では、プログラミング言語のJavaについてその特徴や歴史、またJavaを使って何ができるのかについてを説明したいと思う。
プログラミング初心者にも分かりやすいように専門的な用語はなるべく使わずに書いていくので、気軽に読んでほしいと思う。
Javaはどんなプログラミング言語?
まずはプログラミングの世界におけるJavaの存在感について説明させてほしい。
世界でもっとも人気のあるプログラミング言語
現在はJavaScriptにその座を奪われたものの、Javaは2000年代から10年以上もの間、世界でもっともよく使われているプログラミング言語だった。
業種によって使われる言語が異なるの普通のプログラミングの世界で、ひとつの言語がここまでシェアを伸ばすのはJavaが初めてだった。
現在、世界で使用されている業務管理システムの多くはJavaで開発されており、Javaの開発者を求める求人はいまだに非常に多い。
オールマイティーな言語
Javaの大きな特徴はオールマイティーな言語である事。
Javaを使って開発できるアプリケーションは以下のようなものがある。
- デスクトップアプリケーション
- Webサイト
- バックエンドシステム
- Androidのアプリケーション
つまり世の中に存在するアプリケーションの大多数は、Javaをメインの開発言語として開発する事が可能だと考えていい。
オブジェクト指向言語の代表格
Javaは「オブジェクト指向」と呼ばれるタイプのプログラミング言語に属する。
オブジェクト指向は簡単に説明するなら、世の中に存在するモノを中心とした考え方をするプログラミング言語といえるが、特にいまは理解する必要はない。
オブジェクト指向はモダンなプログラミング言語では標準的な考え方となっており、オブジェクト思考の柱となる4つの原則は「継承」「抽象化」「カプセル化」「多様性」はすべてのプログラマに学んで欲しいと思う。
オブジェクト指向に分類される言語としては他にもC++やC#などがあるが、使用されている範囲の広さや求人数ではJavaが飛び抜けているだろう。
どのOSでもプログラムが動く
Javaで書かれたプログラムはwindows・mac・Linuxとどのオペレーティングシステムにおいても同様に動作する。
これはJavaの大きな売りで、これにより企業は開発に掛かるコストやメンテナンス費を大幅に節約することができる。
JVM(Java Virtual Machine)と呼ばれるインタープリター(翻訳機のようなもの)をインストールすることにより、オペレーティングシステムに依存しない動作を実現させている。
Javaの歴史
つぎにJavaの歴史を簡単に振り返ってみよう。
SunMicrosystemsによって開発される
JavaはSun Microsystemsというアメリカの会社のジェームズ・ゴスリンというプログラマによって開発され、 1995年に始めてリリースされる。
開発された当初は「Oak」という名前で呼ばれていたが、インドネシアのジャワコーヒーを元に「Java」という名前が付けられる。
一度コードを書けばどのOSでも動くという意味の「Write Once, Run Anywhere」というコンセプトは当初から存在した。
Oracleに買収される
Javaは2010年にデータベースや仮想マシンの開発で有名なアメリカのOracle社に買収される。
若いプログラマの間では、JavaといえばOracleというイメージが強い。
Javaの有償化
2019年にJavaの有償化が発表されて話題となった。
これは実際にはOracle社の提供するJDKの商用利用が有償化されただけであって、OpenJDKなどのJava開発キットを利用すれば、今までと同様に無料で商用にJavaを使用することが出来た。
当時、Javaプログラマの間では、有償化をきっかけにJavaが使われなくなるという危惧の声が高まったが、有償化によるシェアの低下は見られなかった。
Javaに関するよくある疑問
最後にJavaに関してよく聞かれる質問に答えておこう。
JavaとJavaScriptの違いは?
JavaとJavaScriptはプログラミング言語の特徴からいえばまったく違う言語となる。
Javaはコードを実行するまえにコンパイルが必要なコンパイル言語。一方のJavaScriptはスクリプト言語。Javaはデータ型を明示的に記述する「静的型付け言語」。一方のJavaScriptはデータ型を記述しない「動的型付け言語」だ。(これは技術面接にてよく出てくる質問なので覚えておいたほうがいい!)
なぜ、JavaScriptは名前に”Java”が付いているのかというと、JavaScriptを開発したネットスケープ社が当時Javaを開発していたSunMicrosystemsと提携関係にあったからだそうだ。
Javaは簡単なのか?
Javaはその名前が持つイメージのせいか簡単で親しみやすい言語というイメージが比較的強いが、実際はどうなのだろうか?
たしかにライバル関係のオブジェクト指向言語である「C++」と比較すると、メモリ管理などの部分で簡略化されている部分があり、少しは習得のハードルが低いのは事実だろう。
とは言うものの、Javaを使ってある程度規模が大きくメンテナンスしやすいシステムを開発するとなれば、アルゴリズムやデザインパターンといった高度なソフトウェアエンジニアリングの知識も必要となってくるだろう。
趣味で小規模なアプリを作る程度であれば、数週間でできる人少なくないだろうが、熟練したJava開発者と言えるレベルまで行くには数年間の実務経験が必要となってくる。