
Javaを学習しようと思っています。
Javaは汎用的なプログラミング言語というイメージがあるのですが、
具体的にはどんなことができるのでしょうか?
あと、Javaのメリットやデメリットも知りたいです。
今回はこのような疑問に答えていきます。
Javaは長年に渡って人気のあるプログラミング言語として君臨しています。 企業の基幹システムからAndroidアプリまでさまざまな分野で使われています。
そこでこの記事ではJavaでできることや、 メリット・デメリットについて紹介します。
Javaとは

Javaは1995年に米のSun Microsystems社によって公開された
プログラミング言語です。
公開されてから20年以上が経っていますが、
現在でも人気ランキングでトップレベルに
位置するほどの人気がある言語です。
Javaはオブジェクト指向型の言語で、 大規模開発向けのプログラミング言語です。 ですからどちらかと言うと個人の利用よりも、 企業で複数人数でソフトウェアを開発する場合に使われます。
(余談)
Javaを開発したSun Microsystems社は、後にOracle社に買収されました。
現在はOracle社がJavaを公開しています。
これも余談ですが、「JavaScript」というプログラミング言語があります。 名前が似ているため非IT系の方の多くが同じものだと間違えているのですが、 「JavaScript」とは全く別のプログラミング言語です。
Javaでできること
できること①:Webサービス開発

たくさんのWebサービスがJavaで作られています。
有名な所では、Twitter、Evernote、
ネットショッピングサイトの楽天、eBayなどがあります。
Twitterは元々Rubyを使って開発されていました。
ところがデータ量が増えるにつれて処理スピードが遅くなるという問題が
発生し、解決策として処理速度の早いJavaに移行しました。
この移行が功を奏し、アメリカ大統領選挙時における
大量のツイートも処理できたという話もあります。
Webサービスは多くのアクセスが集まると、 処理が追い付かずにエラーとなる場合があります。 Javaは処理スピードが速いのでアクセスが多くても対応できます。
さらに楽天のような通販サイトでは、 大量の顧客・商品データを扱い、同時にデータの更新処理も行います。 Javaはこのようなスピード・安定性・安全性が求められるWebサービス で重宝されるプログラミング言語です。
できること②:デスクトップアプリ開発

デスクトップアプリケーションも作成できます。 有名な所ではつぎのようなアプリがあります。
- 無料オフィスソフトの「OpenOffice」
- ジャストシステムの「一太郎」
- 統合開発環境の「Eclipse」
- 世界的な大人気ゲーム「Minecraft」
他にも有名・無名を問わずたくさんのJava製アプリケーションが存在しますから、 何かしら使ったことがあると思います。
Javaはマルチプットフォームで、Windows、Mac、LinuxなどのOS環境を問わずに アプリケーションを動かすことが可能です。 そのため幅広くアプリの利用者を獲得できます。
できること③:Androidアプリ開発

Androidアプリの多くがJavaで作られていて、 200万個以上のアプリがすでに登録されています。
以前はAndroidアプリ用のプログラミング言語は「Java」一択でしたが、 現在は「Kotlin」というプログラミング言語も使われています。 それでもこれまでの開発実績や豊富なライブラリなどの資産を 活かすためにJavaを使うケースが多くあります。
カメラアプリ、ゲーム、チャットアプリなど、 スマートフォンに搭載されたカメラなどの機能を使いながら いろんなジャンルのアプリを作ることができます。 そして、作成したアプリはGoogle Playで公開可能です。
スマートフォンのOSは、 日本ではiPhoneの方がメジャーですが、 世界的に見るとAndroidの方がメジャーです。 Androidアプリを作れるようになれば、 世界の市場がマーケティングの対象となります。
できること④:業務系システム開発

業務システム開発においてもJavaは多くの企業で採用されています。
業務システムの例としては
- 顧客管理システム
- 会計システム
- 配送システム
- 社員管理システム
などいろいろあります。
有名な例としては三菱UFJ銀行、楽天銀行、みずほ銀行などの
金融機関のシステムです。
このような365日24時間、安定・安全に稼働することが求められるシステムにおいて、
Javaの安定性、安全性、保守性の高さが評価され採用されています。
業務システムの中でも会社にとって中枢となるシステムのことを 「基幹システム」といいます。最も重要な部分という意味です。 基幹システムの特徴として次のような条件があります
- 大量のデータを処理する
- セキュリティ対策を万全にする
- システムの規模が大きくて複雑
- 他のシステムとの連携が必要
- 多くの人員で開発する
- 長い期間に渡って運用・保守を行う
このような厳しい条件での 開発・運用に耐えることができるプログラミング言語として重宝されています。 Javaの処理速度の速さ、堅牢性(安定性・安全性)が発揮される場所です。
できること⑤:組み込み系開発

Javaでできることの5つめは、組み込み系開発です。 意外かもしれませんが、 もともとJavaは組み込み系開発のためのプログラミング言語として開発されました。 1990年頃にはすでに家電製品にソフトウェアが組み込まれおり、 当時は面倒なことに家電製品がバージョンアップするたびに、 ソフトウェアを開発するという手間が発生。 そこでハードウェアに依存しないプログラミング言語としてJavaが開発されました。
現在では冷蔵庫、テレビ、洗濯機などの家電製品や、 携帯電話、プリンター、ブルーレイプレーヤー、カーナビなどに Javaで作ったプログラムが使われています。
組み込み系でよく使用されているプログラミング言語はC言語やC++です。 C言語やC++は低スペックなハードウェアでも動作するため重宝されています。
ですが最近はハードウェアの性能が向上しているためC言語やC++よりも、 セキュリティやプログラムの可読性に優れたJavaを採用する ケースが増えてきました。 搭載する機能が複雑であるほど 安全なプログラムが組めるJavaが好まれる傾向があります。
今後もハードウェアの性能は良くなっていくでしょうから、 組み込み系開発で採用されるケースが増えていくと思われます。
Javaのメリット・デメリット
メリット①:人気がある
Javaは非常に人気の高いプログラミング言語です。 しかもその人気をずっとキープしています。
人気度を測る指標として、プログラミング言語の検索数を集計している 「TIOBE Index」 というサイトでは、 約20年間にわたって検索数1位か2位にランクインしているグラフが見れます。
通常プログラミング言語には流行りすたりが存在しますが、 JavaとC言語は長年に渡って人気トップクラスを維持しています。 どちらも汎用性があって、長年使用され続けているプログラミング言語です。
Googleが主要プログラミング言語の1つとして採用しているほどですから、 今後も人気は続くでしょう。
メリット②:求人数が多い
Javaは人気があって、需要が多いプログラミング言語ですから、
Javaエンジニアの求人も多いのが特徴です。
しかも汎用性のあるプログラミング言語ですから、
求人内容も業務系やアプリ系などいろいろ選べます。
大手求人サイトの「Indeed」で言語別に求人検索してみた所、 次のような結果となりました。
Java : 34,340件
Ruby : 8,042件
JavaScript: 14,374件
Python : 12,825件
この数を見てもJavaの求人数が他のプログラミング言語と比較して多いことが わかります。 ITエンジニアとして職に困らないプログラミング言語No.1がJavaです。
デメリット:難易度が高め

Javaのデメリットとして、 よく言われるのが「学習難易度が高め」ということです。
Javaはオブジェクト指向型言語なので、 文法を理解するだけでなく、 オブジェクト指向の考え方も理解する必要があります。 オブジェクト(物)を基本として考えるオブジェクト指向の考え方は、 慣れるまで難しく感じます。 さらに汎用性が高い反面、言語構造は複雑になっています。
ですからRubyやPHPといった習得しやすいプログラミング言語と比較すると、 「学習難易度が高め」と言えます。 初心者が独学で実務レベルに達するのは厳しいでしょう。
但し一つ言える事があります。 Javaを学ぶことは 「プログラミングの王道」を学ぶことです。 Javaの知識やオブジェクト指向の知識は他のプログラミング言語を学ぶ際にも 応用できます。ですからJavaができるようになれば、 他のプログラミング言語は比較的簡単にマスターできます。 プログラミングに限らず何事も「王道」を学んでおいて損はないです。