JavaとJavaScriptの違いのまとめ
JavaとJavaScriptの違いについてまとめました。
「新人に「Java書けるんなら当然JavaScriptも書けるよね?さっさとやっておいて」と伝えたら…」の便乗記事です。
1.結論
はじめに結論ですが、JavaとJavaScriptはまったくの別物です。
いいたとえがみつかりませんが、JavaScriptしか書けない人に「Javaも書けるよね?」と言うのは、フランス料理の専門家に「和食も作れるよね?」と言うようなものでしょうか。
以下、いくつかの観点でJavaとJavaScriptを比較してみました(個人的に気がついた部分)。
認識が誤っている部分がありましたらどこかでつぶやいてください。
2.サンプル
まずソースコードの見た目です。
「Hello World!!」を表示する最小限のサンプルで比較してみました。
Java
public class HelloWorld {
public static void main ( String[] args ) {
System.out.println( "Hello World !!" );
}
}
JavaScript
<script>
console.log( "Hello World!!" );
</script>
ご覧のとおり、共通するのは「"Hello World !!"」の部分だけで、それ以外は全く異なります。
3.概略
Javaは、Sun Microsystems社が作ったプログラミング言語です(もう少し言えば「オブジェクト指向プログラミング言語」)。
JavaScriptは、Netscape Communications社によって開発されたスクリプト言語で、当時のブラウザ「Netscape Navigator 2.0」に初めて実装されました。
開発当初、JavaScriptは「LiveScript」と呼ばれていましたが、当時はJava言語が注目されており、Netscape Communications社とSun Microsystems社が業務提携していたこともあり、「JavaScript」という名前に変更したようです。
4.特徴
Javaはプラットフォームに依存しないことが特徴で、「Java VM」と呼ばれる実行環境をもつコンピュータであれば、ハードウェアやOSの違いがあってもプログラムの変更なしに動作させることができます(通常のプログラム言語ではハードウェアやOSが異なるとソースコードの改修が必要なケースがあります)。
JavaScriptは、静的な表現しか出来なかったウェブサイトに対し、文字サイズの変更といった動的なデザイン性をもたせることができるのが特徴です。
そういう意味で、それぞれの土俵がそもそも異なっています。
5.開発環境
Javaはソースコードのコンパイルが必要なため、Oracle Java SEのサイトからJDK(Java Development Kit)のインストールが必要です。
コンパイルについては後述します。
JavaScriptで最低限必要な開発環境はテキストエディタのみです。
6.動作環境
Javaでコンパイルしたコードを実行させるには、JRE(Java Runtime Environment)のインストールが必要です。JREはOracleのJavaダウンロードページからダウンロードできます。
JDKにはJREもバンドルされています。
JavaScriptは、サーバで動作させる場合には作成したファイルをサーバにアップロードする環境(FFFTP/WinSCP)があれば十分ですが、ローカルPCで動作させる場合にはApacheやIISなどのウェブサーバのインストールが必要です。
なお、JavaScriptはクライアント(ブラウザ)サイドで動作させるための言語でしたが、サーバサイドで動作可能なインタプリタ(Node.jsなど)も登場しています。
7.コンパイルについて
補足としてコンパイルについて説明しておきます。
Javaで必要な「コンパイル」とは、人間がプログラミング言語を用いて作成したソースコードを、コンピュータ上で実行可能な形式(オブジェクトコードまたはバイトコード)に変換することを指します。
言い換えると、ソースコードは人間が理解しやすい形式ですが、コンパイルされたコードはコンピュータが理解しやすい形式になるという訳です。
Javaの場合、javacコマンドでコンパイルを行うことで、Sample.classというクラスファイルが出力され、javaコマンドでこのファイルを実行します。
Windowsマシン上で実行する場合は次のようなイメージになります。
C:\>javac Sample.java
C:\>java Sample
Hello World!!
これに対し、JavaScriptはスクリプト言語はコンパイルという作業が不要です。
冒頭のサンプルをindex.htmlなどのファイル名で保存(またはアップロード)し、ブラウザに読み込ませれば実行可能な状態になる(あるいは即時実行される)という手軽さがあります。
よってプログラムを簡単に実行できるメリットがありますが、実行時にインタプリタ(コンピュータが実行できる形式に変換しながらプログラムを実行)を行うため、パフォーマンスが劣ると言われています。
8.参考サイト
参考サイトは以下です。ありがとうございました。
- ビルド(コンパイル)で「分離記号を欠いています」となる場合の対処
- プログラムの再帰呼び出しのまとめ
- プログラムの「アウトデント」について
- PHPやPerlで変数の記号に「$」が使われる理由
- ImageMagick と Image::Magick(PerlMagick) のバージョン対応
- Active Perl でワイルドカードを利用する
- PHP5のインストール
- J2SE 5.0 発表