よくプログラミングと聞くと「Java」という言葉を耳にするかと思います。ですがそのJavaとは何かって言われるとイマイチパッとしないことがほとんどでしょう?
このページではそんな「Java」について説明したいと思います。
Contents
Javaとは何か?
Javaとは1ことで言うとプログラミング言語の1つです。沢山あるプログラミング言語の中、Javaは世界基準で見ても、「最も使用されている言語」「取得したい言語」ともに1位を取るくらい需要のある言語だとされています。
※プログラミング言語とは計算機(コンピューター)に対して動作手順・動作方法・動作内容などを適切に指示するために用いられるものです。機械に命令をするようなイメージ。
その理由ですが、Javaが登場するまでのプログラミング言語はOSや環境に依存するところが大きかったのですが、Javaはそれらに依存しないためどのような環境でも動作するためです。やろうと思えばガラケーからでもアプリを作ることが可能らしいです。
さらにJavaは様々なシステムや現場で使用されいます。携帯電話向けのシステム・アプリから、企業の業務用システム・データベース・サーバー・スーパーコンピューターまでその使用用途はものすごく広いです。
Javaで作れるものとは
ではそのJavaが出来ることには何があるでしょう?
Webアプリ
まず例を挙げるとするとWebアプリがあります。Webアプリとはインターネット(他にも社内LANやプライベートネットワーク)などのネットを介して使用をするアプリケーションソフトで、Webブラウザ(InternetExplor、GoogleChrome等)で使用するアプリのことを指します。
例としては、ブログ、電子掲示板、銀行のインターネットバンキング、証券のオンライントレード、楽天などのECサイトなどがあります。
業務システム
各会社で使われている承認システムや独自の決済システム、銀行などの会計システムなどを業務用システムと呼んでいます。大体は社内のネットワークに接続しているためWebアプリに分類されます。楽天や三菱東京UFJの業務システムではJavaが採用されています。
Webサービス
Webサービスとは、インターネットに接続している様々なアプリケーションを連結させて1つのシステムとして機能させるサービスの事です。
例を挙げるとgoogleなどのサーチエンジン、地図検索サービス、Amazonなどの商品情報の閲覧、広義ではWeb上で使える電子メールやワープロ、表計算なども該当します。Javaを用いられた有名なサービスでは「Twitter」や「Evernote」があります。
PCアプリ
各パソコンで動作するPCアプリでも、Javaが使われているケースがあります、有名なものですと「OpenOffice」「一太郎」があります。
Androidアプリ
Javaではスマートフォンで用いられるAndroidアプリ開発も行われており、Androidアプリの大半はJavaで作られていると言われています。
これら以外にも世界的に人気ゲームでアルMinecraftもJavaによって開発されていることから、ものすごく広い規模でJavaが用いられていることが伝わるかと思います。
Javaのメリット・デメリット
次にJavaを用いてシステムを開発するメリットとデメリットについてお話します。
Javaのメリット
プラットフォームに依存しない
前述でも説明をしたので繰り返しになぅてしまいますが、Javaは様々なプラットフォームで開発を行うことができます。OSで言えば、Windows・Linux・iOSのどれでも動かすことが可能ですし、スマートフォンはおろかガラケーでも開発を行うことが可能です。
オブジェクト指向
Javaが登場する以前の開発現場では、大規模なアプリケーションを作るとなると、「機能の追加が難しい」「1か所修正したら他の部分も合わせて修正する必要がある」「プログラムを追加するのに、既存のコードも変更しないといけない」などのトラブルがしょっちゅうありました。
そこで「プログラムを細かく独立させる」「プログラムを再利用できるようにする」「プログラムが拡張しやすいようにする」という仕組みを取り入れることにしました。これが「オブジェクト指向」の考え方になります。
オブジェクト指向の例えとしては、物を組み立てるようにしてプログラムを表現させてコンピュータを動作させる、などと言われます。(その反対は「手続き型プログラミング」と言われていて上から下まで単調なルールで記述していくことになります)
大がかりなアプリケーションが作りやすくて、再利用や拡張が楽、そして分かりやすくプログラムを表現できるのがオブジェクト指向の良いところです。
処理速度が速い(高速に動作する)
Javaは他のプログラミング言語と比較をしても処理速度が速いことで有名です。大規模なWebサービスになってくると処理のスピードというのも重要視されてきます。
例えばTwitterは以前、Rubyというプログラミング言語を用いて使われるフレームワーク「Ruby on Rails」で開発が行われていました。ですがそれでは高速な処理が行われないと言うことでJavaに移行。結果として2012年のアメリカ大統領選挙を乗り切ったと言われています。
Javaのデメリット
アプリケーションの起動に時間が掛かる
Javaのプログラムを実行させるためにはコンパイルと呼ばれる作業(プログラミング言語で書かれた文字をコンピューターが実行可能な形式に変換すること)が必要になります。そのためWebアプリケーションの起動に時間が掛かってしまいます。
JVM(Java Virtual Machine)が入っていないマシンでは動かない
JVMとは、Javaプログラミングを実行するためのソフトウェアです。Javaコードで記述させたプログラムをコンピュータが解釈して、その上で実行可能な形式のコードに変換して実行してくれます。
Javaプログラミングを実行させるソフトウェアが必要であるため、マイコン等の小チップのプログラムはできないとされています。
Java入門するならオススメの学習法
多少のデメリットがありながら、それを上回るメリットと多数の実績を誇るJava。Javaを使って「趣味のシステムを作ってみたい」「業務を効率出来ないか?」などと考えてちょっぴり触れてみたい人にオススメの学習法をお伝えします。
ドットインストール
ドットインストールとは動画でプログラミングを学ぶことができる初心者向けのプログラミング学習サービスです。1動画当たり約3分なので非常に見やすいのが特徴です。
またJavaScriptやPHPなど、言語や技術ごとにカリキュラムが別れているため、Javaに限らず他の言語に触れることもできます。
マンガで分かるJava入門講座
マンガを用いてJavaについて解説しています。プログラミング言語は難しし、本を買っても専門家の視点が入っているため入門書でも読み解けないということが多いと思います。ですがこちらはマンガなので初心者でもスムーズに理解を深めることが可能です。
プログラミングスクール
実は私、IT企業に内定をもらい新卒で入社したものの学部は文系であったためプログラミングどころかITの知識は全くありませんでした。当時の自分が見たら今こうやってWebサイトを運営しているのが「奇跡だ!」と思うほどには機械には疎かったです。
内定を承諾してしまった以上自主的に勉強をしなければと思ったものの、参考書は20ページで投げ出すくらいにはアレルギーになっていました。
その時に会社が費用をいくらか負担してくれたのもあってプログラミングを習う機会をいただきました。さすが現役のエンジニアが講師をしているだけあって分かりやすいし、かなり実践的な知識が身に付きました。
その後、Webブラウザ上で注文をしてデータベースで在庫と商品情報を反映し購入する、という簡単なECサイトもどきのようなものを作れるようになりました。
プログラミングの本や動画などは分かりやすくなってきてはいるものの、普段機械をいじらない人間からしてみればまだまだ難しい側面があります。もし本気でプログラミングを覚えたいのであれば、学校や仕事のスキマでも利用できるプログラミングスクールで力をつけるのもアリだと思います。
様々なプログラミングスクールをジャンルや目的別にまとめました。体験レッスンなどがあるものも多数あるので、レッスンを通じてプログラミングに対する理解を深めてみてはいかがでしょう?