【初心者用】プログラミング言語 Javaの概要・特徴など
Most popular technologies - Programming, scripting, and markup languages
Javaは、C言語をベースに開発されたプログラミング言語です。
1996年にサン・マイクロシステムズによって市場リリースされました。
IT市場を牽引するGoogleが開発に用いる三大言語(Java、C++、Python)の一つとしても知られています。
現在200種類以上のプログラミング言語がある中で昔からよく使われており、人気の高いプログラミング言語となっています。
1. Javaの特徴
Javaの最大の特徴としては、「JVM(Java Virtual Machine:Java仮想マシン)」で動いていることが挙げられます。
Java仮想マシンとはJavaのために疑似的に作り出されたマシンのことであり、このマシン上でJavaは動作します。
よって、JVMが動作するコンピュータであればどんなコンピュータ上でも利用できます。
つまりOSがMacでもWindowsでもLinuxでも動作するということです。
https://atmarkit.itmedia.co.jp/ait/articles/0607/08/news010_2.html
また、同じくプログラミング言語のC++などに類似した構文を持っており、オブジェクト指向(※)で作られています。
※オブジェクト指向とは、「処理を部品化して、部品を組み合わせることで1つのプログラムを作る考え方」のことを指します。
https://www.moringa-moringu.com/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%A8%E3%81%AF/
また、ガベージコレクションという機能があることも特徴の1つといえます。
これはC言語やC++などにはなかった機能で、それまでのプログラミング言語は自分でメモリの管理をしなければならないという難点がありました。
例えばXという変数を作り、その変数に「あ」という文字を入れたとします。
そうするとXという変数にメモリが使用され、その変数の中身をクリアしないと、使用しなくなってもずっと「あ」という文字が残ってしまいます。
ガベージコレクションはこの使用しなくなったメモリを自動で消してくれるので、プログラマは不要なメモリの消し忘れを気にする必要がなくなりました。
2. Javaでなにができるのか
Javaは汎用性が高く、さまざまな開発に採用されているプログラミング言語です。
具体的に何ができるのか、その一部をご紹介します。
・Webアプリの開発(Amazonや楽天といったオンラインショッピングサービスなど)
・Webサービスの開発(X(旧Twitter)やEvernoteなど)
・ソフトウェアの開発(Officeソフトやゲームソフトなどさまざま)
・Androidアプリの開発
・組込みシステムの開発
・IoTの開発
・基幹システムの開発
・PCアプリの開発(OpenOfficeやMINECRAFTなど)
・ゲーム開発
・ECサイトの開発
・APIと連携した自動ツールの開発
このように、幅広い分野でJavaは活用されており、開発に対する適正の高さが伺えます。
3. JavaScriptとの相違点
https://fukuno.jig.jp/2376
Javaに似た名前のプログラミング言語に「JavaScript」があります。しかし両者は異なる言語です。
もともとJavaScriptは「LiveScript」という名前でしたが、Javaの人気に便乗する形で「JavaScript」という名前に変更されました。
以下の通り、似ているところは多いですが、JavaとJavaScriptは開発している会社や開発に用いられる用途、文法など、あらゆる点が異なる言語となっています。
4. Javaのメリット
Javaの主なメリットとしては、実行環境の自由度の高さにあるといえます。
一度書いたコードはJVMを通してどんなコンピュータでも使えるため、プラットフォームを問わず実行できます。
また、コンパイル言語であり、処理速度が速く安定性があるため、基幹システムや組み込みでも使用に耐えることや、仮想マシンの内部で実行するためセキュリティ性が高いことも、重要なシステムを開発する点において大きなメリットといえるでしょう。
ほかにはライブラリの充実性が挙げられます。
ライブラリとは、よく使用されるプログラムを無料で誰でも利用できるようにまとめたものです。
公式・非公式ともに多く存在しており、ライブラリを活用することで必要な機能を効率的に実装できます。
また、人気の高さから「日本語の参考記事や書籍の多さ」、「求人数が多く仕事に直結させやすいこと」もメリットとして挙げられます。
5. Javaのデメリット
Javaは高性能な分、他のプログラミング言語よりもコーディングに関するルールや難しい記述が多く、習得の難易度は高い部類に入る言語である点が挙げられます。
https://eng-entrance.com/java-feature
すでにC++など構文構造が似ている他の言語を習得しているエンジニアであれば決して難しくはないといわれていますが、初めてプログラミング言語に触れる場合はオブジェクト指向という考え方を理解するまでに時間がかかるケースが少なくありません。
高い難易度の要因の1つにもなっていますが、他言語と比べたときにコードの記述量が多いです。
以下でJavaとRubyで「Hello World」を標準出力させるためのコードを比較してみました。
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Javaの標準出力
print("Hello World")
Rubyの標準出力
このように、JavaとRubyそれぞれのコードを比較してみると、単に文字列を出力するだけでも記述量が大幅に変わることがわかります。コードの記述量の多さは解説記事などの理解を妨げる要因となります。
習得難易度が高いため学習時間がかかることで、独学では途中で挫折してしまう人も多いでしょう。
また、Javaは大規模な開発に適している反面、小規模なシステム開発にはあまり向いているとはいえません。
Javaのメリットである拡張性を活かしきれず、開発工数のみが増えてしまう可能性があります。
6. まとめv
Javaはプラットフォームの自由度の高さや機能性の高さなど、多くの利点を持つ一方で、習得難易度の高さや小規模開発にはあまり向いていないといったデメリットも存在します。
開発目的やプロジェクトの要件に応じて、適切な言語選択が求められます。