「弊社のシステムは使いやすい画面になっているのが特徴です」
「なるほど」
「Javaですごく使いやすい画面に仕上げているんですよ。Ajaxで、画面の遷移なく登録情報の変更などができます」
「Javaで?」
「はい、Javaで!」
「・・・」
このような話を先日来た新人営業マンさんが元気に語ってくれた。元気さはとてもいいのだが、JavaとJavaScriptを同じものとしてしまっているのは、やはり気になる。
JavaとJavaScriptはどちらもプログラミング言語だ。名前が似ているため、プログラミング未経験者や新人のIT営業マンは同じものとして覚えてしまいがちだ。
JavaとJavaScriptは違うものだ。では、どのような言語としての違いがあるか?
プログラミング初心者の方のために、なるべくわかりやすく解説した。
目次
JavaとJavaScriptはまったく違う言語
JavaとJavaScriptはどれだけ違うか?
JavaとJavaScriptはまったく違うプログラミング言語だ。似ているのは名前だけと言っていい。
どれくらい違うかの例を挙げよう。
JavaとJavaScriptは、
- インドとインドネシアくらい違う
- オーストラリアとオーストリアくらい違う
- メロンとメロンパンくらい違う
- 中国と中国地方くらい違う
- パンとパンダくらい違う
- South KoreaとNorth Koreaくらい違う
- もやしとヤシの木くらい違う
- ココナッツとナッツくらい違う
- 村上春樹と村上龍くらい違う
少なくとも、カレーとカレーパンくらいには違うものだと思っていい。(カレーパンはカレーが作れないといけないのでちょっと違うが、共通項はあるくらい)
エンジニアに「Javaできますよね?」と聞くのと「JavaScriptできますよね?」と聞くのは、
「メロンパン作れますか?」と聞くのと「メロン作れますか?」と聞くのと同じくらいの距離感がある。
プログラミングの本場アメリカでも間違われている
プログラミングの本場でも大喜利大会が行われている。人気どころ、は次の二つだ。
「カー(car)とカーペット(Carpet)くらいに違う」
「ハム(ham)とハムスター(hamster)くらい違う」
このような例えを作らないといけないくらい、アメリカでも、JavaとJavaScriptの違いを明確に理解していない人は多い。
プログラミングを勉強したことがなければ、わからないのも当然ということだ。
JavaとJavaScriptの違いとは?
それでは、JavaとJavaScriptの違いの細かいところを見ていこう。
Java言語とは?
まずはカンタンにJavaというプログラミング言語について知っておこう。
Javaは、1991年に開発されたプログラミング言語だ。Javaという言語は元々、Fax家電製品での使用を目的に開発されることを計画されていたプログラミング言語だった。実際ブルーレイプレイヤーを動かすのに、Javaが使われている。
言語としての良くできていたので、少しずつWebサービスの開発やネットワークサーバなどに色々な場所に用いられるようになってきた。
例えば、AndroidのスマホアプリなどはすべてJavaで作られている。Javaで作れるものは他にもたくさんある。下記でご紹介している。
Javaはプログラマーにとって、とても使い勝手の良いプログラミング言語である。現在プログラミング人気ランキングは、ほとんど1位だ。
詳しくは下記のページで解説している。
通常のプログラミングというのは、どこで動くかが決まっている。例えば、Windowsの上で動くExcelやWordはMacのPCに持っていくと動かない。
しかし、Javaは「一度書けばどこでも動く言語」という思想に基づいて作られている。そこが特徴的な言語だ。
Javaで書いたプログラムやWindowsでも動くし、Macでも動くし、Linuxというものの上でも動く。
細かいことはとりあえず置いておいていいが、Javaについては次の2点だけ覚えておこう。
・人気のプログラミング言語だ
・どこでも動くものが作れる
この2点だけ覚えておいて頂ければ、十分だ。
JavaScript言語とは?
JavaScriptはWebページに動きをつけるためのプログラミング言語だ。Webページというのは止まっている状態が普通だ。Wikipediaのサイトのように動きがほとんどなく、クリックしたら別ページに飛ぶようなページが通常ということになる。
しかし、WebページやWebサービスを見ると、
- メインの画像がスライドショーのようになっていたり
- ボタンを押したら、「○○しました!」と表示が出てきたり
- 背景の色が定期的に変わったり
- カウントダウンタイマーがあったり
様々な動きを見ることができる。これができるのがJavaScriptという言語だ。
デザイン的な要素が強いので、少し前までWebデザインを担当しているデザイナー向けの言語だった。
しかし、今では「とにかくリッチでお客さんが使いやすいな画面」を作る必要が出てきており、プログラミング専門職のエンジニアが担当することが多くなっている。
JavaScriptは年々進化し続けている。ほとんどなんでもできる。
面白いユーザー体験を作るには、JavaScriptは欠かせないものになっている。使いやすいサイトやサービスには、JavaScriptがふんだんに盛り込まれていると言っていい。
GmailもFacebookもインスタもTwitterもYoutubeも何でもかんでもJavaScriptだらけだ。
JavaとJavaScriptの違いとは?
わかりやすい違いは次の通りだ。
- Javaは色々なところで使われる
- JavaScriptは画面に動きをつけて、ユーザーが使いやすくするためのもの
これだけ覚えておけば、まずは大丈夫だが、詳細もご紹介しておこう。
アプリケーション(システムやWebサービス)を作るためには?
Webの上で動く何かのシステムやサービスを作ろうと思ったら、次の二つの場所でプログラミングを動かす必要がある。
クライアントとサーバだ。
それほど難しく考える必要はない。あなたが今この記事を読むのに使っているインターネットエクスプローラーだったり、Chromeだったり、スマホのインターネット閲覧ツールだったり、がクライアントだ。
Javaはどこでも動くのでクライアントでも動いたときがあったが、今はまずやらない。基本的にクライアントで動くのはJavaScriptというプログラミング言語だけだ。
反対にJavaはサーバと呼ばれる裏側で動いている。ユーザーの情報を登録したり、削除したり、既読の管理をしたり、いいね!の数を保存したりするのにはJavaを利用している。
サーバ側で動くプログラミング言語はたくさんあるが、ここでは紹介しない。興味がある方は下記ページをチェックしてほしい。
5分で理解!Web開発初心者におすすめするプログラミング言語
このようにJavaとJavaScriptは動く場所すらも明確に違う。用途も使う目的も使われる場所も、全然違うプログラミング言語だというのがなんとなくお分かりになっただろうか?
なぜ名前が似ているのか?
ここまでまったく違う言語だというのを見てきた。では、JavaとJavaScriptの名前が似ているのは偶然かというと、そうではない。
JavaScriptは1995年にネットスケープコミュニケーションズによって開発された。Javaの4年後にできた言語だ。結構歴史が古い。
JavaScriptが開発された当時は、LiveScriptとという名前で呼ばれていた。こちらが本来の名前だ。
当時、少し前に開発されたJavaというプログラミング言語がかなり人気を持ち始めていた。そこで、LiveScriptの開発者たちは、「その勢いに乗させてもらおうじゃないか!」とJavaScriptという名前に変更した。
だが、JavaScriptとJavaは言語的には何にも関係性は無かった。ただ、勢いに乗りたかっただけだ。
現在でいうと「AKB48」の勢いにあやかった「乃木坂46」が仮に全くなんの関係もない会社から出てきたイメージだろうか。(ツッコミを良くいただきますが、ぜひ他にわかりやすい例があればいただければと思います)
ここから非エンジニアの悲劇が始まっている。
名前が似ているのは偶然ではないが、まったく関係はない、というのはしっかり覚えておこう。
まとめ
このページでは、JavaとJavaScriptの違いについて解説をしてきた。
Javaというプログラミング言語と、JavaScriptというプログラミング言語が全く違うものだというのを理解していただければ幸いだ。
繰り返しになるが、
- Webサービスや各種アプリケーションを開発するのならJava言語を使うべきだ
- Web上の表現をより多彩にし、ユーザーのWeb体験をより良いものへと変貌させるならJavaScriptを使うべきだ
ぜひ、ITプロダクトの営業や、未経験からエンジニアを目指すのであればこれらの違いを説明できるようになっておこう。
「メロンパンとメロンくらいに違うのだ」。これだけの認識でもだいぶ違う。
>「カレー作れますか?」「カレーパン作れますか?」
カレーはカレーを作ることが出来れば良いが、カレーパンはカレーもパンも作ることが出来なければならない。ちょっと例えが似すぎていて当てはまらない。
コメントありがとうございます。仰る通りですね。
メロンとメロンパンの方がよりいい例ですね。ご指摘ありがとうございます。
"Javaで作れるものまとめてみた"のリンクが切れている、もしくは間違っています。
正:http://eng-entrance.com/java_javaproduct_summary
誤:http://java/
ご指摘ありがとうございます。修正完了いたしました。
初心者です
ブラウザ上のプログラムですが、検索エンジンやリンク先の情報を収集・解析して再構成、ページを新たに作成表示するするなど、大規模・複雑なテキスト処理を考えています。スクリプト言語で足りるでしょうか?
テキストエディタで長いコードを間違いなく書く自信がありません。スクリプト言語でIDEの支援(つづり間違い、無定義変数チェック、等)が得られるでしょうか。
上記の目的のために、JAVAは有用でしょうか?IE限定でよければC#やVBでもいいでしょうか。
ご質問ありがとうございます。
JavaScriptはそういった規模の処理は向いていないかと思います。中身がわからないのでなんとも言えませんが、ブラウザ上よりもサーバにて収集・解析するのがよいでしょう。その際にJavaを使うのは良いと思います。
テキストエディタに関してはIDEを使えば、スペルミスや変数チェックなどはしてくれます。JSでもIDEはありますので、もしどうしてもJSで書きたいということであれば、調べてみることをオススメいたします。
お答えありがとうございます。ちょっと長文ですが中身を。よろしかったら読んでアドバイスをください。
想定する仕事
1)電子学術雑誌(EJ)の目次を解析し、論文名等を抽出
2)抽出したデータを整形し検索エンジンに投げる
3)検索結果をフィルタリングし必要なリンクのみ抽出、元ページにリンクやヒット件数を加えたページを作成し別タブに表示する。
いままで、オラクルサーバにローカル上のアクセスを接続して、両方のテーブルを関係づけて操作するソフトを書いていましたけれど(プログラムはローカルにある)、ブラウザではそういうことはできないのですか。サーバを立てろというアドバイスをくださる方もおられますが、こういう問題でどうやっていいかわかりません。
//背景
今、学術文献はほとんどEJになっています。特徴は次
1)論文を集めている
2)研究者の利用度によって点数で格付けされている(Nature27.4点、日本化学会誌0.4点という具合、研究者は論文掲載誌により持ち点を得られ、将来就けるポストが決まります)
3)毎年7%値上げするビジネスモデル
あるテーマについての論文は、疑似科学・卒論・修論など含め、世の中に大量に存在しています。その中で真に読まねばならないモノを選ばなければ時間が足りません。これについては、格付けの高いEJに掲載された論文を読むことで対応できます。ところが3の特徴のせいで、購読不能なケースが増えています。(私の大学でもEJ費用として年6億円を予算化していますが、ついに限界を超えてしまいました)
そのため、各国政府は大学に予算を交付し所属機関サーバを立ち上げさせ、著作権の範囲内で自著論文を再投稿することが一般的になってきました。ところが、所属機関サーバは、世界中に所在しフォーマットがばらばらである上に、2の機能を持っていないので、それを利用しようとする者はゴミの山と戦わなければならないのです。
そこで、無償公開されているEJの目次から、直接に再投稿分を探し出すソフトを書こうというものです。「ググる」を自動化し効率化しようとするものです。
初めて知りました。就活の前にこのページを見ておけば恥をかかずに済んだのにっ!
カラシとカラシニコフ、
E.T.とETC、
返り値と返り血、
サレジオ学院と猿知恵学院、
マチュピチュと日本のマチュピチュ、
ギョウザとチャオズ
くらい違うんですね!
うっひゃあ
カラテとカフェラテも追加で。
はい、ふざける前に勉強します。
>現在でいうと「AKB48」の勢いにあやかった「乃木坂46」が全くなんの関係もない会社から出てきたイメージだろうか。
上記の表現がわかりにくいです。
>現在でいうと「AKB48」の勢いにあやかった「乃木坂46」が全くなんの関係もない会社から出てきたイメージだろうか。
まったく関係がないわけではありません。
AKB48を運営している会社にAKSという会社があります。
AKSの関連会社に「ノースリバー」という会社があり、この会社が乃木坂46とCDレーベルとして契約しているソニーミュージックが「乃木坂46合同会社」として運営を行っているため全く関係がないわけではありません。
ご指摘ありがとうございます。なるほど。微妙に修正いたしました。
参考にさせていただきました!
1点誤字でしょうか?
『JavaScript言語とは? 』内「とにかくリッチでお客さんが使いやすいな画面」
訂「~使いやすい画面」
ご確認くださいませ
こんにちは。興味深く読ませていただきました。
基本的にはわかりやすくて良いと感じました。
ただ、2017年の記事なのに、なぜサーバーサイドJavaScriptについて一切触れられていないのか気になりました。
おっしゃる通りです。が、書けば書くほど、初心者の方にわかりにくくなってしまうため、かなり簡略化してJavaとJSの違いをまとめています。
LINEグループでJavaとJavaScriptの違いについて議論になっていたので例として、メロンとメロンパン、インドとインドネシアで例えたらなんと!ここに同じ例えがあるではないですか(笑)
気が合いそうですね…(笑)
ありがとうございます。笑 今後ともご贔屓いただければ幸いです。
iPodの流れに乗ったのがiPS細胞でございます。AKB48例よりわかりやすく感じましたら使ってください(*`∀´*)
ありがとうございます。
参考にさせていただきます。
今後共、ご愛読のほど何卒よろしくお願いいたします。
なるほど。JAVA勉強した後にJavaScriptも始めようかなって思って勉強始めたけど全然違ったのはそういうことか。勉強になりました。JAVAに引きこもることにします。
記事をお読みいただきありがとうございます。
今後共ご愛読のほど、よろしくお願いいたします。
こんにちは。
メロンとメロンパンの例はちょいちょい使わせていただいています。ありがとうございます。
AKBの例、いろいろあるみたいなので、少し前に話題になったおサルの「シャーロット」ではどうでしょうか?
英国のシャーロット姫の名前をあやかったけど、実際は全然違うものであると。
まあこちらもいろいろあったものなので、「大輔ブーム」とかでもいいかもです。
Hollywoodとインド映画のBollywoodくらい違うでどうでしょうかw
processingはJAVAなんとかを使うらしいということで、本を借りに行ったら違いがあるのか迷ってしまい、帰ってきて調べました。まさに混同していたので、両方借りてきてしまいました^^;
Java は必ずJのみを大文字で書くのが絶対ルールだと聞きました。javaとかJAVaとかはだめなのですね?
おっしゃる通り、すべて大文字でJAVAかJavaですね
日清製粉(小麦粉の会社。皇后美智子様のお祖父様が創業)と、日清食品(チキンラーメンやカップヌードル、朝ドラで話題)と、日清オイリオ(サラダ油やドレッシング)が、全く関係ないのと同じですね。