kuguru[クグル]kuguru[クグル]|人が、ITの世界をくぐり抜けるためのアイデアを。「Java」という言葉を聞いたことはあっても、それが何か知らない方は、意外と多いのではないでしょうか?Javaはプログラミング言語の一種です。私たちの身近なところで、それと知らず、Javaで作られたプログラムが活躍しています。本稿では、Javaの基本を解説しながら、Javaでできることについてご紹介いたします。まとめJavaの特徴Javaの特徴といえば、まずはオブジェクト指向言語であることでしょう。オブジェクト指向とは、最近のシステム開発では標準となっている考え方で、一昔前の開発手法よりはるかに開発しやすく、またメンテナンスもしやすいものです。Javaの文法の基礎は、C言語をベースとしています。C言語は、古くから様々なシステム開発で利用されているとても有名な開発言語で、C言語をベースとした開発言語はJava以外にもたくさんあるくらいです。Machine)上で動作する仕様です。このため、VMさえあれば、あらゆるプラットフォームで動きます。パソコンはもちろん、サーバ専用機やスマートフォン上でさえ動くのです。このような言語はめずらしいです。Javaはオープンソース文化なので、Java本体はもちろん、開発用のツールやフレームワークも無料で入手することができます。Javaと他のプログラミング言語の比較C/C++との比較C/C++はネイティブコンパイラなので実行速度が速いという利点があります。JavaはVM上で動く中間コードを生成するため、実行速度だけで比較すると、C/C++より遅いと言えます。VMのおかげで、C/C++と違い、プラットフォームを選びませんまた、C/C++はポインタ操作ができないと書けないので敷居が高い言語です。Javaはポインタが無いので、その分敷居が低いといえます。Javaは後発のオブジェクト指向言語なので、C++よりも完成度が高い言語です。PHPとの比較PHPはWeb開発に適した言語です。この分野においては、非常に開発しやすいです。PHPはスクリプト言語なのでコンパイルをしません。このため、実行速度はJavaより遅いといえます。JavaはWebアプリケーション以外でも作れる点がPHPと違います。Railsで一躍有名になった日本製のプログラミング言語です。スクリプト言語で、その仕様がわかりやすくて開発しやすく、人気が高い言語です。Rubyもまた、Webアプリケーション開発がメインです。Javaより軽いですが、できることがJavaより限られているという違いがあります。C#とのC#はMicrosoft社製のプログラミング言語です。言語仕様は似ていますが、基本的にWindowsでしか動かない言語です。Javaはマルチプラットフォームなので、この点が大きく異なります。最近はC#でもAndroidアプリやiPhoneアプリが開発できるようになり、差は縮まってきました。COBOLとの比較COBOLは事務処理系言語として地位を確立している言語です。新規で作られることは減りましたが、既存の資産が山のようにあります。COBOLは手続き型言語で、汎用機のOSでも動くという特徴があります。フロントエンドはJava、バックエンドはCOBOLというシステムも数多くあります。Javaが得意とする分野Javaはプラットフォームを選ばないので、PCサーバ、Unix、スマートフォン(Android)とどこでも動きます。現時点では、Webアプリケーション系、特に大規模系に強いといえるでしょう。速度が求められるときはC/C++で開発しますが、移植性、汎用性ならJavaが選択されます。今後はIoTの進化とともにJavaの成長が期待できるでしょう。JavaでできることJavaはマルチプラットフォームという特徴から、他のプログラミング言語でできることは何でもできると言っても過言ではありません。・Webアプリケーション・デスクトップアプリ(アプレット)・スマートフォンアプリ・組込系(冷蔵庫などの家電、カーナビなど)・企業の基幹系システムなどが挙げられます。JavaのこれからかつてWebシステムはUI(外見)が貧弱で使い勝手が悪かったものです。それが今では、ブラウザやHTMLが進化し、jQueryの登場によりJavaScriptも進化してUIは飛躍的に良くなってきました。アメリカではChromeOSが流行しはじめ、ブラウザでアプリを使うのが当たり前の時代がやってきました。した背景の中、Javaは今まで以上に需要が高くなり、活用されるシーンもどんどん増えていくことでしょう。まとめ本稿では、Javaの基本や他の開発言語との比較を交えながら、Javaでできることについてご紹介しました。Javaが発表されてから約20年たちますが、その勢いはとどまるところを知りません。Webシステムの開発ではデファクトスタンダードとなっている他、組込系やスマートフォンでの活用も広がっています。今後もJavaでできることは、ますます増えていくことでしょう。