ウェブページの仕組み(6) ~ JavaとJavaScript ~

きのあるインタラクティブなページを構成するには、HTMLのみでは実現することができず、そのための方法として、前項で解説したCGIPHPを利用する方法があります。

両者の違いは学習のとおりですが、どちらもWWWサーバ上で実行されて、それぞれのユーザーのブラウザに読み込まれて表示される仕組みは同じです。

そのため、誤作動を起こすとサーバに影響する可能性があり、扱いには十分な注意が必要になることを学習しましたが、やはりこうした仕組みはリスクを抱えていることになります。

そこで、WWWサーバに影響を与えることなく、ユーザーのブラウザ上で実行される(ユーザー側で実行される)仕組みも当然ながら開発されてきました。

本項では、その代表的なものを学習します。

それは、

JavaScript(ジャバ スクリプト)

と呼ばれるプログラミング言語です。

JavaScriptは、もともとネットスケープ・コミュニケーションズ社が自社のブラウザである「Netscape Navigator」用に開発したスクリプト言語(簡易プログラミング言語。詳しくは前項を参照してください)です。

名前の由来は、サン・マイクロシステムズ社が開発した「Java(ジャバ)」というプログラミング言語が開発当時に流行しており、そのサン社と関わりがあったため、Javaの影響でJavaScriptと名付けられたようです。

両者の名称は似ていますが、JavaScriptはPerlと同じスクリプト言語、Javaはプログラミング言語で、まったく別物になります。(Javaについては後述します)

JavaScriptは簡易的なスクリプト言語であるため、その利用範囲はある程度限られますが、初心者でも習得しやすい言語です。

JavaScriptを使えば、ウェブページ上で音を出したり、背景色を変えたり、日時を表示したり、アニメーションを動かしたり、パスワードを入力できるようするなど、ウェブページに様々な効果を加えることができます。

JavaScriptの特徴は、

HTMLファイルに直接コードを書き込むことができる

という点です。

具体的には、<script></script> というタグを指定して、そのタグの中に処理内容を書き込むことができます。(別ファイルにすることも可能です)

例えば、よく見かける「ページの先頭に戻る」ボタンや、カーソルを合わせると詳細なメニューが表示されるボタン、このページにも表示されている広告の挿入など、JavaScriptでできることは多岐に及びます。

さらにGoogleマップなどの自由に動かせる地図や、Googleスプレッドシートなど他のアプリと連動したり共有できるサービスは、おわかりのとおりHTMLだけでは実現できません。これらもJavaScript(その他の技術も含む)で開発されています。

こうして、JavaScriptは広く浸透していきましたが、過度の演出や、誰でも容易に取り入れられることによるセキュリティ上の問題、プラグインとは で学習したFlashの登場などによって人気が低迷した時期もありました。しかし、Googleマップの登場によってJavaScriptが再び注目されることになったのです。

現在では、汎用的に使える機能をまとめた「ライブラリ」が充実し、様々なライブラリがインターネット上に公開されています。ライブラリによって、似たような作業をゼロから記述する必要がなく、誰かが作った機能を再利用することができます。

また、ライブラリをさらに大型化してアプリやソフトウェア全体の設計に利用できる「フレームワーク」も充実しています。

フレームワークは「枠組み」の意味で、ソフトウェアの開発に必要な骨子がすでに構築されていて、大まかに言うと、足りないところをプログラミングするというものです。フレームワークの活用によって、誰もが統一された記述方式に従って開発を行えるというメリットがあります。

こうしてJavaScriptは、スマートフォン用アプリの開発などにも広く利用されるようになり、紆余曲折あったのものの、前項で学習したPerlやPHPより高いシェアを誇ります。世界中のサイトの約9割にJavaScriptが使われているとも言われています。

このように広く浸透した理由として、もう一つの特徴があります。

それは、

OSや機種等のプラットフォームに関係なく動作する

という点です。

つまり、WindowsやMACといったOSの種類やバージョン、パソコンやスマートフォンといったデバイスの種類も問わず、ブラウザさえあれば動作するということです。その理由は、冒頭に書いたようにブラウザ上で動作するように開発されているからです。

まさに、様々な機種や環境が混在するインターネッにふさわしい技術なのです。

ただし、JavaScriptにもデメリットがあります。

JavaScriptは、CGIとは異なり、WWWサーバのデータベースに書き込みしたりするような処理を行うことができません。それは、データの改ざんや漏えいを防ぐためにセキュリティ上あえてそのように設計してあるためです。

現在では、ブラウザ上だけでなくサーバ側(サーバサイドという)で動作するフレームワークも登場していますが、基本的にはブラウザ側(クライアントサイドという)の言語になります。(PHPやPerlはサーバサイド言語になります)

つまり、動作がブラウザに依存するため、

ブラウザの種類によって動作が異なる可能性がある

という点です。

したがって、ウェブで公開するためには、多くのブラウザで動作確認をする必要があります。

また、ユーザーのブラウザ上で実行されるということは、

処理速度はユーザーの環境に依存する

ということでもあります。

そのため、あまり複雑な動作や多くのプログラムを組み入れると、スペックの低いデバイスで閲覧した場合に、動作が非常に重くなる可能性があります。

そもそも、JavaScriptはその名前のとおりスクリプト言語であり、他の言語に比べて処理が遅いことや、セキュリティレベルが低い(不適切なコードが記述できてしまうなど)といったデメリットもあります。

ただし、これらは最新のライブラリやフレームワークを利用することで回避することができます。

では次に、JavaScriptに名前はよく似ているけれど異なる言語、

Java(ジャバ)

について学習していきましょう。

Javaは、サン・マイクロシステムズ社が1995年に開発したプログラミング言語です。(現在はOracle社が買収)

先述のとおり、JavaScriptと名前は似ていますが、Javaは高機能で広い用途に対応できる本格的なプログラミング言語で、プログラムの処理方法が基本的に異なり、まったくの別物と考えて良いものです。

そのため概要の説明に留めますが、Javaが開発される以前の主流は「C言語」と呼ばれるプログラミング言語でした。しかし、C言語はプラットフォームに依存するため、特定の環境でコンパイル(CPUが処理できる0と1の機械語に変換すること)したプログラムは、他の環境では実行できませんでした。

つまり、OSCPUに合わせてコンパイルする必要があったのです。すなわち、OS等よって機械語の処理が異なるためで、その環境に合わせて、例えばWindows用やUnix用にプログラムをコンパイルしなければならなかったのです。

インターネットの普及によって様々な環境がネットワークに混在してくるようになると、各機種ごとにソフトウェアを開発することは大変なコストと手間がかかるようになりました。

そこで、プラットフォームに関係なく動作するプログラムが必要とされ、開発された言語が「Java」なのです。

どんな環境でも動作するプログラムを作成することができるプログラミング言語

と言えます。

では、なぜそれが可能になったのかということですが、Javaで作成したプログラムは、

Java VMJVMまたはJava仮想マシン)

というソフトウェア上で実行されるからです。

JavaScriptのプログラムをブラウザが実行するように、JavaのプログラムはJVMというソフトウェアが実行するのです。

VMは「Virtual Machine」の略で、文字どおり仮想コンピュータ的なソフトウェアになります。CPUが処理する前にこのソフトウェアがプログラムを処理するため、どのような環境であろうと、Javaのプログラムは一度コンパイルするだけで良いのです。

実際には、Javaのプログラムは、作成時はプラットフォームから独立した独自の形式であり、それをJVMが実行するプラットフォームに対応した形式に変換しながらCPUに渡しています。

つまり、

JVMがインストールされていればプログラムはどんな環境でも正しく動作する

というわけです。

JVMは多くのデバイスで最初からインストールされていますが、無料で最新版をダウンロードすることができます。

現在では、JVMだけでなくその他のツールも含んでいて名称がややこしいのですが、JVMとそのほかJavaの実行に必要なプログラムをまとめてダウンロードすることができます。

こうして、Javaはどんなプラットフォームでも動作することで広く利用されるようになりました。Javaのインストール時に「30億のデバイスて走るJava」というキャッチフレーズを見たことがある方は多いと思います。

GoogleのAndroidがJavaを採用したこと、データベース関連ソフトウェア大手のOracleが買収したことでさらにJavaへの移行が進み、現在、多くのウェブサイトや関連技術、各種ソフトウェア、企業の基幹システム、ゲーム、スマートフォン用アプリなど様々な分野で利用されています。

Javaのメリットは、このほかにもコンパイラ方式の言語のため処理が速いこと、JavaScriptと同様にライブラリが豊富にあることなどがあります。

一方、デメリットとしては、JavaScriptなどのスクリプト言語に比べて習得の難易度が高いこと、小規模な機能の作成には向いていないことなどがあります。

こうしたプログラミング言語は、JavaScriptやJava、Perl、PHP以外にも数多くあります。かなり専門的になるのでここから先は割愛しますが、興味のある方は学習してみてください。

更新履歴

2009年7月19日
ページを公開。
2009年7月19日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年2月1日
ページをSSL化によりHTTPSに対応。
2023年9月23日
内容修正。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
図解入門 インターネットのしくみ
文献
初めて学ぶJavaScript入門早わかり―魅力的なホームページを作ろう
初心者にもよくわかる!JavaScriptフレームワークの種類や特徴を紹介
https://freelance-hub.jp/column/detail/219/
JREとJVMとJDKとJava SEの違い
https://itsakura.com/java-jvm-jdk-jre