今回は、プログラミングにおいて初心者が初めて使う言語に挙げられる「Java」の特徴について紹介していきます。
Java(ジャバ)は1995年にサン・マイクロシステムズによって開発された言語です。
他の言語とは結構違う点があるのでその辺についても説明していきますね。
Javaの特徴について
Javaは仮想マシンで動く
Javaはハードウェアに依存しない言語です。
コンパイラで作ったプログラムはCPUで実行できる命令の形になっているので、CPUが異なる場合は実行できません。
しかし、Javaでコンパイルしたプログラムの場合は、CPUが違ってもそのまま動きます。
これは、Javaという言語が仮想マシンと呼ばれる架空のコンピュータを前提として作られているからです。
まずは、この仮想マシンで動くように作られてコンパイルされます。そしてプログラムを実行する際には、パソコン内で仮想マシンを実行してその中で動かすようになっています。
つまり、Javaのプログラムを実行するためには、パソコンの中に仮想マシンが用意されていないといけないわけですね。
このような特徴から、Javaはあらゆるところで使われるようになりました。
特にネットとの親和性が高いので、さまざまなWebサイトで使われています。
AndroidアプリなんかもJavaで開発されているわけですが、スマホ用Javaとパソコン用Javaはちょっと意味合いが違うんですよね。
パソコン用のJavaは「Java SE」と呼ばれ、全ての基本となるものです。サーバー用の場合は「Java EE」と呼ばれてちょっとややこしいです。
ただ、基本的にはSEをベースにしているので、Android用のJavaも基本的な文法やライブラリはだいたい同じだと考えて良いと思います。
オブジェクト指向な言語
Unityのゲーム制作記事でも頻繁に出ていたオブジェクトという言葉ですね。
Javaは、オブジェクト指向を考えてデザインされている言語です。逆に言うとオブジェクト指向でないプログラムは書けないということです。
不要な機能は省略し、シンプルでわかりやすくまとめたものがJavaになります。
もちろん、ある程度は改良されており、色々な機能が増えてきていることは間違いありません。
ただ、プログラミングの基本はほとんど変わっていません。
オブジェクト指向と代表格なので、Javaを理解できれば他の言語のオブジェクト指向も分かるようになってくると思います。
オブジェクト指向なら迷わずJavaからマスターしていきたいところです。
直接ハードウェアを操作できない
さきほども説明した通り、仮想マシンを使って動かすので直接ハードウェアを操作することがありません。いわゆるエミュレータ上で動くのでプログラムの動作も遅くなります。
しかし、足を引っ張るほどのデメリットでもないと思います。
ライブラリは充実しているし、実行速度も現在では高速化されており、普通のプログラムと比べても大差ないですね。
ハードウェアで操作できないので、出来る事が限られるんじゃないかと思いますが、そこまで大きな影響はないと思っています。
無料で優れた開発環境が整っている
Javaを開発するためのソフトは、基本的に無料で手に入ります。
また、統合開発環境も無料から有料まで幅広く提供されています。
本屋にプログラミングのコーナーを見ると分かりますが、山のようにJavaに関する書籍が並んでいます。ネット上でも同じなので、Javaに関する情報の多さに逆に混乱するかもしれませんね。
アプリケーション開発も一応可能
仮想マシンで動くので、EXEファイルなどを作れないと思いがちですが、ダブルクリックして実行するアプリケーションは一応作ることが出来ます。
もちろん、仮想マシンがないと動かないので、「JRE」というJavaの実行環境をインストールしておく必要があります。
これさえあれば、作ったアプリをWindowsやMacでも動かせます。
まとめ
なんだか難しそうなイメージもありますが、オブジェクト指向について学びたい場合は迷わず「Java」を選んで良いと思いますよ。
Javaほどオブジェクト指向に適している言語はないですからね。
分からない点があったとしても、他の言語より圧倒的に情報量が多いので、勉強が捗ります。
私が通っていた専門学校も、最初に学んだ言語がJavaでしたね。なんだか懐かしい気持ちになりながらこの記事を書かせてもらいました。