プログラマやSEを悩ませる悩みのひとつにJavaとJavascriptの違いがあります。
Javaを使えるのに何故Javascriptの仕事が出来ないのか?と、怒られたという話題があがっていたこともあります。
ところでどちらも同じプログラミング言語ですが、違いについては説明できるでしょうか?
知らない、違いが説明できないといった方は、本記事でJavascriptについて知るとよいかもしれません。今まで知らなかったJavascriptの疑問点の解決する方法や、なぜJavaとJavascriptの違いがあるのかなどを知ることができるかもしれません。
参照:JavaとJavaScriptの意味や特徴、使い道について解説した記事はこちら
Javascriptとは
Javascriptとはプログラミング言語のひとつです。
名前が似ていることからJavaと間違われやすいですが、全く異なるプログラミング言語です。
主な役割は、webブラウザ上でアニメーションや演算処理などを行なうことで、複雑な処理をHTMLに組み込んで実行します。
詳細は後で説明しますが、従来であればクライアントサイドでのスクリプト処理が主なものでしたが、近年ではサーバサイドで処理を行うJavascriptが実装されるようになってきました。
webページを表示する仕組み
まず、ブログやgoogleなどのWebページの表示の実現は、基本的にはHTMLというwebページの構成を決める言語で作成します。
このHTMLを使用して、webページで表示する文字や画像、動画、またそれらの位置やフォントサイズなどのレイアウトを設定することができます。
Javascriptは、HTML内に組み込まれるプログラムの役割を担っており、webページの複雑な計算やゲームなど、動きのある処理を分担することでwebページ上で動きのある表示を実現させています。
このとき、サーバ側で処理をさせるか、クライアント側で処理をさせるかによって考え方が変わってきます。
サーバクライントシステムについて
まず、サーバ・クライントシステムについて説明します。
サーバクライアントシステムのポイントは「サービス」であり、サービスを提供する側、受ける側によってサーバとクライアントに別れます。
サーバ:「サービス」を提供する側
クライアント:「サービス」を受ける側
例えば、自宅のPCからgoogleのホームページを閲覧すると考えてみましょう。
このとき、googleのホームページの各種データはgoogle社のサーバに保管されているため、サーバはgoogle社のサーバとなり、クライアントは自宅のPCという関係ができあがります。
クライアントである自宅のPCはgoogle社のサーバにアクセスし、該当サーバからホームページの各種データを受けとることにより、Googleのホームページ画面を自宅のPCに表示できるわけです。
webページの閲覧は全てこのようにサーバからwebページの各種データを受け取って、自宅のPCにwebページの内容を表示させるわけです。
クライアントサイドとサーバサイドについて
このとき、Javascriptのようなwebページのスクリプトについて、サーバ側で処理をするのかクライアント側で処理をするのかによって、クライアントサイドとサーバサイドにわかれます。
クライアントサイド:サーバから受け取った各種データからクライアント側でスクリプトを実行することで実行結果を得る
サーバサイド:サーバ側でスクリプトを実行し、実行結果とともに各種データをクライアントに送る
従来、Javascriptではクライアントサイドでスクリプトの実行結果を得ていましたが、近年ではサーバサイドJavaScriptも誕生しています。
Javascriptの習得難易度は?
習得難易度は中の上といったところでしょうか。元はクライアントサイドの言語でありJavascriptはプロトタイプのオブジェクト指向であるため、クラス型のオブジュクト指向ではクラス(雛形)からインスタンス(オブジェクトの実体)を生成するのに対し、プロトタイプでは車のボディの型が決まっているかのように、クラス型の考え方と異なるため、習得には少し時間がかかることになるでしょう。
サーバサイドのPerl、PHP、Python、Rubyなどの方がクラス指向であるため、習得した後の利便性は高いかと思います。
どの言語がいいかといった点については、環境によって異なるという回答にならざるをえないですが、プラグラミング言語によって得意、不得意は変わるものです。それぞれの特徴を把握して、環境にあった言語を学習するのがよいかと思います。
【補足】JavascriptとJavaの違いについて
プログラムの本番であるアメリカでも勘違いが起こりやすい、JavascriptとJavaに違いについて知っておきましょう。
先述したとおり、JavascriptとJavaは名前が似ているだけで全く異なるプログラミング言語です。
まず作った会社からして全く別の異なる会社によって作られており、使う文法も全く異なれば、お互いにデータをやり取りできる仕組み(互換性)もないため、名前が似ているだけで完全に別のプログラミング言語であると覚えておいて下さい。
JavaとJavascriptの勘違いはよくある話で、おもしろい例え話も多くあります。
・「インドとインドネシアぐらい違う」
・「メロンとメロンパンぐらい違う」
また、アメリカのプログラマの間でも勘違いを起こすことも多いらしく、下記のように面白おかしく例えられています。
・「car(カー)とCarpet(カーペット)くらいに違う」
・「ham(ハム)とhamster(ハムスター)くらい違う」
この二つのプログラミング言語の勘違いをよく表した面白い話ですよね。
Javascriptとは、webページ上に動きをつけるためにHTMLに組み込むプログラミング言語であり、JavaでWebページの組み込み処理を作ることは通常ありません。
Javaとは、さまざまなプラットフォーム上で実装できる高い汎用性を持つプログラミング言語で、Javascriptではプラットフォームに組み込む処理を作ることは通常ありません。
動画サイトや買い物サイトなどのwebページ上に組み込むのがJavascriptで、さまざまなプラットフォームに組み込むのがJavaと覚えてもよいでしょう。ここで1点勘違いしてしまいがちなのが、webページ上で動くJavaがJavascriptだと勘違いする方もいますが、それは間違いです。
なぜこんなにまぎらわしい名前なのかというと、Javascriptのリリース当時は別の名前を使用していたのですが、当時Javaをリリースした企業と業務提携をしていたため、注目の高かったJavaの名前にあやかってJavascriptという名称でリリースした経緯から、Javaと似た名前をつけているためです。
繰り返しになりますが、名前の由来には関係あるものの、全く別物のプログラミング言語であるということはよく覚えておきましょう。
参照:JavaとJavaScriptの意味や特徴、使い道について解説した記事はこちら
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)