これからプログラミングを始めるひとにとって、どのプログラミング言語を学習するのかも重要になってきます。
もちろん需要が高いものを選択するべきですが、色々な形態のシステムを作ってみたい!というのであればJavaがおすすめです。
パソコンを使用しているとJavaアップデートの通知などを見たりしますが、「そもそもJavaって何が出来るの?」という疑問をお持ちの方は多いです。
初心者の方がJavaを学習するとどのようなメリットがあるのか、どのようなアプリやシステムを作る事が出来るのか。プログラミング学習を始める前に、Javaの事をきちんと理解しておきましょう。
目次
Javaの現状(ランキング・人気度)
Javaは世界的に普及しているプログラミング言語で、TIOBE Programming Community Indexというどんなプログラミング言語が人気があるかを示すランキングでも、常に上位をキープしています。
https://news.mynavi.jp/article/20170910-a081/
こちらのサイトを見ると、最新技術のPythonなどがシェアを伸ばしていますがJavaだけが2桁台の数値でダントツの1位です。人気プログラミング言語だと言う事がわかります。
人気があるという事は、仕事の需要にも繋がりますのでJavaエンジニアは転職市場などでも重宝される存在でしょう。
こうした背景もあり、新入社員の教育でもJavaの研修を取り入れる企業が多いです。
また人気があるゆえにJavaに関する情報も世の中には豊富で、インターネットでも学習コンテンツやオンラインプログラミングスクールが沢山あり、参考書も数多く出版されています。
つまり、学習しやすい言語ということですね。
Javaのメリット
Javaを使うメリットをいくつか紹介したいと思います。
プログラムが動作する環境を選ばない
他のプログラミング言語と比較してJavaが人気な理由の1つとして、システムやアプリを動かす場所を選ばないということです。
プログラミング言語によっては、特定のサーバー環境などでないとプログラムが稼働しないものもあります。しかしJavaは、例えばOSがLinuxでもWidowsでも作ったシステムを正常に動かす事が出来るのです。
これがどうゆうことかというと、例えばPHPであれば主にWebシステム・Webアプリで使われるプログラミング言語です。
JavaはWeb系からレジなどのPOSシステム、銀行の基幹システムなどにも使えるのでプログラミングのバリエーションが広がります。
ライブラリが豊富
これ意外にもライブラリーという便利機能が豊富で、実装したい処理を1つのライブラリーを入れることで済んでしまう事があります。
Javaのデメリット
では逆にJavaのデメリットは?というといくつかあります。
コンパイルが必要
まず、書いたプログラ厶をそのまま実行するのではなく、環境に合わせたコンパイル作業が入るので処理速度は少し遅くなる場合があります。
オブジェクト志向を理解する必要がる
さらにJavaはオブジェクト指向プログラミング言語なので、オブジェクト指向の概念を理解しておく必要があります。
これが理解出来ていないと、カプセル化などのせっかくのJavaの利点が使えなくなってしまいます。
JavaとPythonの違いを比較
Javaの良い点とそうでない点をご紹介しましたが、実際他のプログラミング言語と比べるとどのような違いがあるのでしょうか?
ここでは最近機械学習などの分野で人気となっているPythonをJavaと比較してみます。
大きな違いを比較: Javaはコンパイルが必要、Pythonは書いたコードをそのまま実行できる
まずはプログラミング言語としての仕様についてです。Javaは処理を実行する際にプログラムを解析するコンパイルという作業が必要になります。
Pythonではコンパイルは行わず、プログラムをそのまま実行します。これにより処理速度に差が発生してきます。
またプログラムでは数値のデータに文字列が入っていないかなど型の確認を行います。
Javaはコンパイルする時に型のチェックをする「静的型付け」ですが、Pythonはプログラム実行時型をチェックする「動的型付け」で、チェックするタイミングが異なります。
学びやすさを比較: Pythonは英語の参考書が多い、Javaは日本語の参考書が沢山ある
ソースコードはPythonの方がシンプルに書かれているので見やすく書きやすいでしょう。
しかしPythonはまだ海外で主流になっているので、調べると英語で説明が書いてある事が多いです。
一方Javaは参考書やWebの学習サイトも多いですし、Javaエンジニアは沢山いるのでわからないことを聞きやすいです。
需要を比較: 海外はPython需要が高い、日本はJava需要が高い
現在は海外であればPython、国内であればJavaが需要が大きいです。
国内でも機械学習や統計関連の技術が重要視されていますが、市場のシェアをみればまだJavaの方が人気なようです。
Pythonは文献が英語な事とエンジニアがまだ多くない事、Javaは世の中に出ている情報量やエンジニアが比較的多い事も関係しています。
将来性を比較: Pythonは今後伸びる、Javaは現状維持
最新技術であるロボットやAIなどの開発が可能なPythonは国内でも需要は伸び続ける事が予想されます。
Javaのシェアは急激に高くなることはないかもしれませんが、汎用性の高いプログラミング言語ですので、Javaを使う現場はなくなることはないでしょう。
Pythonが気になった方は以下の記事を参照ください。記事の最初の方にPython言語の需要が高まりだした理由などを書いています。
Javaで作れるアプリ
Javaではどのようなアプリ・システムを作る事が出来るのでしょうか?以下に、Javaで作られている主なものをご紹介いたします。
業務系アプリ(システム)
業務系アプリといってどのようなものかイメージがつくでしょうか。
主に企業で取り入れられているシステムで、メーカーが出荷や納品、検品などをしたり購買部門が備品を発注する際に使用するような「特定の業務を行う為のデータを扱うシステム」が業務系アプリと呼ばれます。
例えば、長い開発期間を経てようやくリリースが始まるみずほ銀行の基幹システムはJavaで作られています。
銀行のように数多くの人が利用する環境でも安定して稼働することが出来る、さらにセキュリティなどの対策も万全にするようなシステムでも、汎用性の高いJavaは実現出来るのです。
Webアプリ
Web上で稼働するアプリでもJavaは問題なく動きます。
個人がパソコンさえ持っていれば利用可能なWebアプリでは、やはりアクセスが集中したりウイルス対策などの観点からJavaが使われる事が多いです。
有名なWebアプリでは、YouTubeやAmazonもJavaで書かれています。Javaはライブラリーという便利機能が豊富で、機能の追加や修正が比較的対応しやすい点も評価されています。
スマホアプリ
スマートフォンは大きく2つに分けてiPhone向けのアプリとAndroid向けのアプリがあります。
この内Androidアプリは実はJavaで書かれているのです。アプリ開発に興味があるという方は、Javaを勉強していれば取り組みやすくなるのでぜひチャレンジしてみましょう。
Javaの資格試験
Javaは世界的に普及しているプログラミング言語であり、その技術力を証明する為の資格を取得する試験があります。
現在Oracleという会社がJavaを管理しており、日本国内では「日本オラクル」が実施するJava認定資格試験と、「サーティファイ」が実施するJavaプログラミング能力認定試験があります。
これは民間企業が実施している民間資格ですので、Java認定資格試験であれば「日本オラクルがこれだけのJavaに関する知識・技術があると認定した」資格という意味合いであり、そのレベルもGold/Silver/Bronzeの3種類から選択出来ます。
Javaの資格が無ければJavaに関する仕事が出来ない、という訳ではありません。
あくまで「これだけの知識と技術力を持っている」という指標であり、転職などではアピールする事が可能です。
Javaのフレームワーク
プログラミング言語には、フレームワークというものがあります。
Wikipediaでは以下のように説明されています。
プログラミングにおいて、一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念
フレームワークを使うとどんな良い点があるのかというと、よく使う処理が共通化されていたり、継承されていたりするので、少ないコードで効率にプログラムを書くことが可能です。
Javaのフレームワークを使うメリットは機能の追加や修正に時間をかけずに可能にする点であり、企業などで独自に開発されたオリジナルフレームワークも存在します。その一例をご紹介します。
Spring Framework
Javaは様々なシステムに活用出来ると先述しましたが、そうした用途毎に効率的な処理が実装されているのがSpring Frameworkです。
Web系だとSpringFrameworkMVCというものがあり、Model,View,Controllerという3つの概念に分けてプログラムを考え、わかりやすく、簡略化されたコードでプログラミングが可能です。
よく聞くアノテーションって何?
Javaを学習していく中で、「アノテーション」という言葉を良く聞くようになります。
アノテーションとは「注釈」という意味で、プログラムの頭にアノテーションをつけることで様々な情報を表現する事が可能です。
例えば「@Override」と書かれていれば、継承しているプログラム(親クラス)のメソッドを参照しているという意味です。こうしたアノテーションをコードに書いておく事でミスが少なくなり、生産性も上がるのでよく使われています。
まとめ
今回は初心者向けのJavaに関する基本情報や、どんな事が出来るのかなどについてご紹介しました。
Javaは歴史あるプログラミング言語でありますが、現在も新しい技術が開発されており、2017年9月21日に最新となるJava9が公開されています。
数あるプログラミング言語の中でも人気があり、様々な機能が実現できるJavaをぜひ学習してみてください。
合わせて読みたい