どうもこんにちは!
サバ缶(@tech_begin)です。
Javaの学習を始める前に、その言語の特徴を知っておくことはとても重要です。
闇雲に学習するより、初めに特徴を知った上で学習していくことで、効率も上がりますからね。
この記事では、Javaの特徴を簡潔にまとめてご紹介しています。
Javaの特徴
私が挙げるJavaの特徴は以下の通りです。
- 利用者が多いため、情報が多く学びやすい
- オブジェクト指向プログラミング言語である
- 多くのプラットフォームで動作する
- 高水準のライブラリが標準で提供されている
それでは、1つずつ見ていきましょう。
利用者が多いため、情報が多く学びやすい
Javaが生まれた当時はマイナーな言語でしたが、何度もアップデートを重ねるうちに人気の言語になりました。
以下は、GitHubが発表した資料です。
見てわかる通り、Javaは常に上位に君臨していますね。
さて、ではなぜ利用者が多いと良いのでしょうか。
利用者が多いということは、参考書や参考サイトの需要があるということです。
Javaの教材や情報は、プログラミング言語の中でもトップクラスに充実しています。
また、SNSやブログを通じて情報交換が行われることもあります。
マイナーな言語からプログラミングを学ぶより、メジャーな言語から学んでいくべし!
オブジェクト指向プログラミング言語である
オブジェクト指向というのは、プログラムを「部品化」して開発していく「考え方」のことです。
大規模なシステム開発になると、どうしても複雑になってしまい、人間の力だけでは把握しきれなくなります。
人の移り変わりもあるので、余計に内部構造が分かりにくいシステムになってしまうのです。
そこで、複雑なプログラムを作らせないようにと「オブジェクト指向」という考え方が生まれました。
文法を学んだ後、オブジェクト指向について学ぶのが一般的です。
概念であるため理解に時間がかかるかもしれませんが、決められた文法はない「考え方」であることは押さえておきましょう。
多くのプラットフォームで動作する
Javaは、プログラムの実行環境を選びません。
「え?当たり前じゃないの?」と思われたかもしれません。
実は昔は、ソフトウェアを入れるハードウェアやOSに適したプログラムを作成する必要がありました。
極端ですが、全世界にあるスマホ機種それぞれに適したプログラムを作るようなことです。
そんな非現実的なことが、ひと昔前までは行われていました。
そして、ハードウェアやOSに依存しないプログラミング言語としてJavaが生まれました。
【応用】JVMとは?
JVMとは「Java Virtual Machine」の略称で、Javaで書かれたプログラムの実行環境のことです。
これが有ることによって、以下のようなことが可能になります。
- Javaの中間コードを解釈・実行する
- 様々なコンピュータ(プラットフォーム)専用のJVMを使用することで、同じ動作を実現する
【応用】なぜJVMを使うの?
ここで、プログラミングの基礎用語「コンパイル」について理解しておきましょう。
- 開発者がJavaでコードを書きます
- コンパイルすることで、コンピュータが読めるバイナリデータに変換されます
- このコンパイルされたバイナリデータを「中間コード」と呼びます
同一の中間コードを、さまざまな環境で実行できるということです。
例えば、C言語など別の言語だった場合、一気に機械語に変換されてしまいます。
機械語とは、コンピュータが読めるコードのことです。
C言語はコンパイル時、一気に機械語に変換されます。
→OS依存が発生します。そのため、それぞれの環境用のコンパイルが必要です。
対してJavaはJVMという仕組みのおかげで一度のコンパイルで様々な環境で実行することが可能になるわけです。
高水準のライブラリが標準で提供されている
プログラミングでいう「ライブラリ」は、よく使う機能を既に作ってくれているもののことです。
プログラミングの長年の歴史で「この機能、どのお仕事でもよく使われるよね」というものが少しずつ明確になってきます。
すると「ひとまとめにしておけば、色んな人が楽できるよね」という考えに至ります。そしてJavaの標準ライブラリに盛り込まれてきたというわけです。
言語の開発だけでなく、より楽に開発できるようになるツールも含まれているわけです。
- すでに有るものを使おう。
- 同じものは新しく作らなくていい。
「車輪の再発明」という言葉もあるとおり、コストをかけず、一般的には如何に少ないコードで書くか重要視しています。
粘土で1から作るか、ブロックを組み立てて作っていくかという違いですね。
Javaは、後者のブロックを組み立てていく言語です。
まとめ
正直ぶっちゃけると、Javaの特徴は
- 開発しやすい
- どんな環境でも動くアプリが作れる
- 学ぶための資料が多くある
これくらいの理解で十分です!
次は、Javaを開発するために「開発環境」を整えていきましょう!
<準備中……>