JavaとJavaScriptの意味や違いを説明できますか?名前だけ見ると、よく似ているので、なにか関連性があるのかと思ってしまいますよね。書店でも、たまにJavaとJavaScriptの本が同じ場所に並んでいたりして、違いが分かる人が見ると違和感があります。まだ、JavaとJavaScriptの違いがよく分かっていないなら、これからあなたも違いの分かる人になりましょう!
この記事では、
- JavaScriptについて知りたい方
- JavaとJavaScriptの違いを知りたい方
のために、JavaScriptの意味や特徴について説明した後で、Javaとの違いや活用方法についてもお伝えしていきます。また、JavaScriptを習得することでできるようになる仕事についても紹介していきます。初心者の方にもわかりやすいように説明していきますので、ぜひご一読して、違いの分かる人になりましょう。
目次
- JavaScriptってどういう意味なの?特徴は?
- JavaとJavaScriptは似ているようでまったく別物
- JavaScriptはどのように使われているの?
- JavaScriptを習得すると、こんな仕事ができる
JavaScriptってどういう意味なの?特徴は?
はじめに、JavaScriptの意味や特徴についてお伝えしていきます。JavaScriptという言葉を正確に理解しておきましょう。
JavaScriptはプログラミング言語のひとつ
JavaScriptは、オブジェクト指向を主体とするプログラミング言語のひとつです。オブジェクト指向は、オブジェクトを中心としてプログラミングを進める手法で、変数や関数をひとつのオブジェクトにまとめて扱います。例えば、車がオブジェクトとすると、変数はガソリン残量、関数は走る・止まるといった具合です。オブジェクトにまとめることで、ひとつのコンポーネント(部品)として扱えるわけです。ちなみに、Javaも同じく、オブジェクト指向の言語です。
JavaScriptは、インタプリタ方式で実行されるため、ソースコードを直接実行できます。厳密には、JavaScript実行エンジンの中で自動的にコンパイルが行われているのですが、開発者が意識する必要はありません。いわゆる、JIT(Just In Time)コンパイルです。このため、初学者にも扱いやすく、学びやすい言語と言えます。
主にブラウザの中で活躍する
JavaScriptが活躍する場所は、主にブラウザの中です。あなたは今、この記事をなんらかのブラウザで読んでいると思います。このページにも、さまざまなJavaScriptが使われています。パソコンで見ているなら、F12キーを押すことで開発者ツールが起動しますので、使われているJavaScriptのソースコードを確認できます。今や、JavaScriptを使っていないサイトはほとんど存在しないと言ってもいいでしょう。具体的な例については、後ほど紹介します。
また、近年、JavaScriptはブラウザ以外にも広がりを見せています。
ブラウザ以外にも活用の範囲が広がってきた
上で説明したように、JavaScriptの主な活躍場所はブラウザです。しかし、他にも、サーバーやデスクトップにも活躍の場を広げています。サーバーでは、Node.jsを使ったサーバーサイドプログラミングに使われています。ノンブロッキング(非同期)処理を活用した、高いパフォーマンスが人気の理由です。また、デスクトップでは、同じくNode.jsをベースとした、Electronというアプリケーションフレームワークが人気を博しています。Electronを使えば、JavaScriptでデスクトップアプリが簡単に作れます。後ほど具体例を見ていきましょう。
JavaとJavaScriptは似ているようでまったく別物
それでは、JavaとJavaScriptはどう違うのでしょうか?名前だけで考えると、JavaScriptは、Javaのスクリプト言語版のように思えます。しかし、実はまったく関係ありません。
なんで名前が似ているの?
実は、JavaScriptは当初「LiveScript」という名称でした。しかし、当時Javaが人気で、JavaとJavaScript(LiveScript)の開発元が業務提携していたこともあり、JavaScriptに改称されたのです。ただ、それだけの理由です。後の混乱を考えると、安易なネーミングだったと言わざるを得ません。そのままのほうがよかったのではないでしょうか。誤解が多いためか、Javaの公式サイトでも下記のようなページが作られています。世界的に誤解が広まっているようです。
同じオブジェクト指向でも別物
上でお伝えしたとおり、JavaとJavaScriptは、ともにオブジェクト指向を主体とする言語です。しかし、同じオブジェクト指向でも、実装方法はかなり異なります。Javaがクラスベースであるのに対して、JavaScriptはプロトタイプベースです。ここでは踏み込んだ説明はしませんが、継承の方法などに違いがあるため、学習する際には注意しましょう
Javaはコンパイルが必要
JavaScriptはインタプリタ方式で動作するので、コンパイルが不要です。一方、Javaはコンパイルしないと実行できません。コンパイラを通して、ソースコードを実行できる形式に変換する必要があるわけです。初心者の方は、ちょっと面倒に感じるかもしれませんね。
実行エンジンも異なる
JavaScriptは、ブラウザなどの内部に搭載された、実行エンジンで動作します。実行エンジンには複数の種類があり、微妙に動作が異なります。一方、Javaは、主にオラクルから提供されているJVM(Java仮想マシン)上で動作します。各OS用に、JVMが用意されているため、プラットフォームの違いを意識しなくてもいいようになっています。
JavaScriptはどのように使われているの?
次に、JavaScriptの活用の具体例を紹介していきます。ウェブサイトやウェブサービスでの利用が中心ですが、他にもサーバーサイドやデスクトップでも活用されています。
Gmail
Gmailは、JavaScript(とHTML・CSS)で構成された、代表的なウェブアプリケーションです。ブラウザ上で動作しているのにもかかわらず、デスクトップアプリのような操作感を実現しています。現在、JavaScriptはデスクトップに引けをとらないほどAPI(関数)が充実しています。デスクトップアプリよりも、簡単に多人数に公開できるため、優位性があります。
Amazon
Amazonでは、ユーザーの利便性を向上させるために、多数のJavaScriptが使われています。検索画面では、検索結果を非同期(ページ更新なし)に取得していますし、他にも、スライド処理や左上のメガドロップダウンメニューなど、各所にJavaScriptを利用しているのが見て取れます。0.1秒レスポンスが遅くなっただけでも売上に影響があるため、レスポンス速度の改善にもJavaScriptは一役買っています。
ピグライフ
ピグライフなどのソーシャルゲームのバックエンドとしても、JavaScriptは活躍しています。この場合は、Node.jsを利用して、少数のサーバーでも大量のリクエストをさばけるように構築されています。ゲーム分野は、流行り廃りが激しいので、サーバーを少なく保てるメリットは大きいものです。
Atom
Atomは、人気のあるエンジニア向けのモダンエディターです。Node.jsをベースにした、Electronというアプリケーションフレームワークで作られています。見た目は普通のデスクトップアプリと変わりなく、JavaScriptで作られていることを感じさせません。動作も軽快で、JavaScriptの可能性を感じさせるアプリに仕上がっています。無料なので、一度使ってみることをおすすめします。
JavaScriptを習得すると、こんな仕事ができる
JavaScriptは、プログラミング言語の人気ランキングであるTIOBE Indexで8位にランクインしています(2016年12月現在)。つまり、それだけ仕事が多いということです。上でお伝えしたとおり、JavaScriptの活用分野は幅広く、ウェブサイトにとって必須の要素です。世の中のウェブサイトの数を考えると、非常に需要が高い言語であることがお分かりいただけるでしょう。
仕事の種類としては、最も多いのがフロントエンド開発でしょう。いわゆる、フロントエンドエンジニアとして、JavaScriptやHTML、CSSを使って、ユーザーの目に直接触れる画面などの開発を行います。JavaScriptはウェブから発展したため、HTMLやCSSと非常に強く結びついています。双方の理解が必須と言ってもいいでしょう。JavaScriptの知識が必要になる、HTMLコーダーの仕事もできるようになります。
また、Node.jsを活用した、サーバーサイド開発の仕事もあります。ここには、ゲームアプリのバックエンド開発も含まれるため、ゲームが好きな方は、バックエンドの開発を仕事にしてみてはいかがでしょうか?
まとめ
JavaとJavaScriptの違いについてお分かりいただけましたか?もし、書店でJavaとJavaScriptの本が一緒に並んでいるのを見かけたら、店員に教えてあげると良いかもしれません。また、今やJavaScriptはあらゆる場所で活躍しています。習得すれば、かなり仕事の幅が広がることでしょう。比較的習得が容易な言語で、いつも使っているブラウザで試せますので、興味を持った方は今日からでも始めてみましょう。
JavaとJavaScriptの違いについてよく分かっていない人がいたら、この記事を教えてあげてください。
関連記事
/blog/?p=273
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)