プログラミング言語を学ぼうと思っている方にとって、Javaは聞き馴染みのある言語であると思います。しかしながら、具体的に何ができるか、といったところまでは知らない方もいらっしゃるのではないかと思います。そこでこの記事では、Javaの歴史や特徴を踏まえたうえで、開発できるシステムなどをご紹介しています。ぜひともご確認ください。
Contents
Javaの歴史と特徴
Javaの歴史と特徴を説明していきます。時代背景や際立った特徴を知ることでJavaに対しての興味も湧くと思いますので、ぜひともご参考ください。
Javaの歴史
1990年12月、Sun Microsystems社(現Oracle社)は家電製品のマイクロコントローラに向けたオブジェクト指向のプログラミング言語を開発するために、『Green Project』を発足しました。Green Projectでは、OSやハードウェアに依存せずに起動するプラットフォームの作成も重要視され、新しいプログラミング言語に対応する『Green OS』という動作環境も同時に開発されていきます。
その後、1991年にはJavaの前身となるプログラミング言語の『Oak』が誕生し、1992年夏頃にはOakの実行環境として『Green OS』が利用されていました。また、1992年はApple社がApple Newtonという個人用携帯情報端末(PDA|Personal Digital Assistant(※1))を1月に発表し、PDAの開発が業界のトレンドとなっていました。
Apple Newton
出典:Remembering the Apple Newton’s Prophetic Failure and Lasting Impact – WIRED
(※1)タブレットやスマートフォンの遠い先祖ともいえる、メモを取る、連絡先を保存する、カレンダーを管理する、などができる携帯用端末のこと。
そのような社会背景のなか、Sun Microsystems社は『Star7』というPDAを1992年9月に発表します。Star7はプログラミング言語のOakで実装され、現在でもJavaのマスコットキャラクターになっている『Duke』がStar7の端末画面上に登場しました。
Star7
出典:A Brief History of the Green Project
Star7の端末画面(下記出典のリンクからYouTubeで当時の動画を見ることができます)
出典:YouTube|The Star7 PDA Prototype
1993年には、欧州原子核研究機構 (CERN)がWorld Wide Web(ワールド・ワイド・ウェブ|WebやW3、wwwなどと表記される、厳密には違うがインターネットと≒のもの)をロイヤリティーフリーで利用できることにし、米国立スーパーコンピュータ応用研究所 (NCSA)がWebテキストと画像を同一ウインドウ内に表示する最初のWebブラウザ、『Mosaic』をリリースしたことによってインターネットが普及し始めました。
この頃の社会背景を受けて、Sun Microsystems社はWebブラウザの開発に注力するようになります。そしてできあがったものが『WebRunner』という Webブラウザで、WebRunnerはOakで実装されました。
1995年5月、Sun Microsystems社は他社で商標登録されていたOakの名称を『Java』に変更し、WebRunnerも『HotJava』というWebブラウザ名にしました。HotJavaは『Javaアプレット』を利用することで、それまで動きのなかったWebサイトに動きをもたらすことができるWebブラウザだったため、当時は革新的なものになっていました。
革新的なHotJavaを見て、当時の主流なWebブラウザ『Netscape Navigator』を提供していたNetscape Communications社がJavaアプレット機能に対応したWebブラウザの開発に乗り出したことでJavaは業界で注目を集め、そのあともMicrosoft社とのライセンス契約などがあり認知度が高まっていきました。
Javaはこれらのような歴史のあるプログラミング言語になっています。また、Javaが生まれる背景にはC言語の歴史も関係してきますので、よろしければこちらの記事もご確認ください。
関連記事:JavaとC言語の違いとは?特徴や習得難易度について解説
Javaの特徴
上述したように、Javaは開発当初からOSやハードウェアに依存せずに起動できるプログラミング言語を目指して開発されました。その考えがGreen OSとOakを生み、現在のJavaにもつながっています。
Javaの大きな特徴として、JVM(Java Virtual Machine|Java仮想マシン)というソフトウェアを挙げることができます。JVMはOSやハードウェアに依存せずにプログラムを実行できるソフトウェアになっていて、作成したプログラムとOSの間に入ることによって、WindowsやmacOS、LinuxなどのOSの差異を吸収し、プログラムを動かすことができるようになります。
一般的なプログラミング言語は、OSやプラットフォームに合わせた環境でしか実行することができません。そのため、そのようなプログラミング言語は『OSやプラットフォームに依存している』と説明することができます。しかしJavaは、JVMを利用することでどのようなOSやプラットフォームでもプログラムを実行することができるので、『OSやプラットフォームに依存していない』と説明ができます。
具体的な処理の流れを表すと【Javaのプログラム→JVMが理解できる中間コードに変換→JVMでOSに合った機械語へ翻訳→OSがプログラムを実行】となっています。JavaはJVMが間に入ることにより、『Write once, run anywhere』(一度書けば、どこでも動作する)という理念を実現しています。
今回の記事とは別に、Javaについてまとめている記事がありすので、こちらもぜひご確認ください。
関連記事:Javaのプログラミングで出来ることまとめ【フレームワークも紹介】
Javaでできること
JVMによってさまざまな環境でもプログラムを実行できるJavaですが、Javaは開発できるシステムも多岐に渡り、その点においても汎用性の高い言語になっています。この項では、Javaで開発ができるものを説明していきます。
組み込みシステム開発
Javaの歴史の項目でお伝えしたように、Javaは組み込みシステムのために開発されたプログラミング言語です。そのため、洗濯機やテレビ、電子レンジ、製造ロボット、自動車などに組み込まれているコンピューターのシステムを開発できるようになっています。
弊社TechReachでは以下のような組み込みシステム開発の求人案件があります。(これ以降の情報もすべて2022年10月現在)
リアルタイムシステムの開発
作られたプログラムの処理を、設定された時間内あるいは設定された時間通りに実行するシステムです。設定された時間内のことをデッドラインといい、自動車のエアバッグや航空機の航法システムなど、デッドラインを厳守しなければならないシステムのことを『ハードリアルタイムシステム』といいます。
それ以外には、携帯電話での通話や工場の生産ラインなど、デッドライン以内の処理が終わらなかった場合に価値がなくなってしまう『ファームリアルタイムシステム』、自動販売機や銀行のATMなど、デッドライン以内に処理が完了しなくとも、それほど大きな影響を及ぼさない『ソフトリアルタイムシステム』があります。
弊社では以下のようなリアルタイムシステム開発の求人案件があります。
IoTシステム開発
IoT(Internet of Things|アイオーティー)はモノがインターネットにつながることをいい、組み込みシステムで紹介した洗濯機やテレビなどがインターネットを介して遠隔で操作などができることをいいます。JavaはJVMを利用することでOSごとの違いを吸収し、セキュリティ面も高くなるように作られているプログラミング言語なのでIoT開発にも適しています。
弊社では以下のようなIoTシステム開発の求人案件があります。
デスクトップアプリ開発
パソコンにインストールし、パソコンのデスクトップから利用するアプリをデスクトップアプリといいます。また、デスクトップアプリを含め、何かの目的を持って作られたソフトウェアのことをアプリケーションといい、アプリとはアプリケーションの略称です。
2022年10月現在の弊社求人では、デスクトップアプリ開発の案件は0件になっています。
業務システム開発
企業の業務で利用する、勤怠管理や在庫管理、営業管理などに利用するシステムのことを業務システムといいます。Javaを利用しての開発では、製品購入者をエンドユーザーとして開発するシステム以外にも、企業などの組織内で利用するシステムを開発することができます。
弊社では以下のような業務システム開発の求人案件があります。
Webアプリケーション開発
Webアプリケーションとは、GoogleやYahoo! JAPANなどのWebブラウザからインターネットを通してアクセスし、利用することができるアプリケーションのことをいいます。身近な例では、GmailやAmazon、Twitter、Facebookなど、Webブラウザ上で特定の目的を持って利用するアプリケーション(ソフトウェア)のことをいいます。(ソフトウェアとは、コンピューターに対して何かしらの指示を出すプログラムの総称で、Webアプリケーションは何かしらの目的を持って作成されているプログラムのため、ソフトウェアに内包されています。)
弊社では以下のようなWebアプリケーション開発の求人案件があります。
モバイルアプリ開発
モバイルアプリケーションの略称で、スマートフォンやタブレットなどの持ち運びができる端末にインストールして利用するアプリケーションのことをいいます。ちなみに、ノートパソコンも広義では持ち運びができる端末になりますが、モバイルアプリは一般的にノートパソコンより小さい端末で利用できるものを指します。JavaではAppleのiOSに対応したアプリケーションは作れませんが、Android用のシステムは開発可能です。
弊社では以下のようなモバイルアプリ開発の求人案件があります。
Javaで作られたサービス
Javaで作られた有名なサービスを紹介します。
Minecraft
Minecraftはサンドボックスゲームといわれ、砂場遊びのようにプレーヤー個人で遊び方や目的を持っておこなうゲームです。Minecraftの世界内で建築物などを自由に作り上げることができるため、創造性を促すために教育現場でも利用されています。Java版と統合版があり、Java版は名称通りJavaで開発され、統合版はC++で開発されています。また、Minecraftは世界売上1位のゲームになっています。
Netflix
出典:Netflix (ネットフリックス) 日本 – 大好きな映画やドラマを楽しもう!
Netflix社が提供しているストリーミング配信サービスです。NetflixはJavaやPython、GO言語などで開発されてます。なかでもJavaは、Netflixが独自に作成しオープンソース化したDGSというフレームワークがあり、メインで利用されている言語であるといわれています。
出典:Open Sourcing the Netflix Domain Graph Service Framework: GraphQL for Spring Boot
Evernote
出典:最高のメモアプリ – Evernote で大切なノートを整理
Evernoteは世界中で利用されている多機能メモアプリです。ToDoメモやノート機能だけでなく、画像や動画、Webページなどを保存することができます。開発言語にJavaを選んだ基準は公開されていませんが、EvernoteはWebブラウザ、Android、iOS、Windows、macOSに対応しているクロスプラットフォームになっているため、汎用性の高いJavaを選択したのではないか、と推測することができます。
Javaの学習資料・コミュニティ
Javaは1996年に市場にリリースされてから現在でも利用されているプログラミング言語のため、学習資料やコミュニティが充実しています。Java公式の情報としては、Java Magazineという情報記事が頻繁に公開され、GUIアプリケーションを作成するためのフレームワークJavaFXのコミュニティでは、活用事例やコミュニティーサポートでの意見交換がおこなわれています。
Javaはそれら以外の情報も充実しているため、学習環境が整っているプログラミング言語であるといえます。
出典:Java SEコミュニティの概要 | Oracle 日本
Javaは汎用性が高く多くの案件がある
ここまで説明してきたように、JavaはJVMがあるためOSやプラットフォームに依存せずに開発ができること、開発できるシステムの多さから非常に多くの案件があります。弊社TechReachのプログラミング言語別の案件数も一番になっており、業界全体を通しても案件数や転職時の条件に入ることが多い言語のため、Javaを使えるようになることで応募できる仕事の幅が広がるでしょう。
また、Javaはオブジェクト指向を採用しているため、Javaをきっかけにオブジェクト指向を覚えれば、他の言語も習得しやすくなることが予想されます。
まとめ
この記事では、Javaの歴史やJVMといった特徴を踏まえ、開発できるシステムなどを解説してきました。Javaは他のプログラミング言語に比べると学習コストが高い言語であるともいわれますが、学んでいて損になることはありません。気になった方は勉強をしていきましょう。
また、実際の開発現場ではフレームワークが使われることも多くなっています。Javaのフレームワークについてまとめた記事もありますので、こちらもぜひご確認ください。
関連記事:Java言語のフレームワークはこの5つを押さえよう【2022年版】
フリーランスの案件をお探しの方はTechReachにご相談ください。
TechReachを運営する株式会社アールストーンはIT・Web業界特化で15年以上の実績がございます。
そのため、高単価・高品質な数多くの案件紹介が可能です。
また一人のコンサルタントが企業と求職者様の担当を行う「両面型エージェント」を採用しているため、あなたの希望に合う案件がきっと見つかるはずです。
TechReachを活用して、理想の案件を見つけましょう!