中学生にJavaScriptとJavaは全く別物だと伝える例

JavaScript

中学生にもわかるように、JavaScriptとJavaは全く別物だと伝えるサンプルを書いてみました。
技術的なことはほとんどないです!さらっと読み流すレベルの記事です〜

「カレーライス」と「カレイ」

「液体系」と「魚」は全然違う!

もし、あなたがレストランで「カレーライス」を注文したはずのに、出てきた料理が全然違う、魚の「カレイ」だったらどうします?
「えっえっっえーーっ?!」となりますよね。そもそもカレーは液体系だけど、カレイは魚です。名前は似ているけど、それ自体は全く別物ということが中学生でも分かるはずです。
※カレーは液体でもなく固体でもなく厳密には「コロイド」というらしいです。

それでは、この勘違いシチュエーションを想像してみましょう。
魚のカレイの煮付けをあったか〜いご飯の上に乗っけているイメージですかね。
まあまあ、「カレイライス」も食べてみたら美味しいハズだけど…きっとレストランの現場で注文したお客さんは「魚のカレイか〜い!」と心の中でツッコミを入れるはずです。または「店長呼んでこいっ!カレーライスが食べたいんじゃ!!コロイドのカレーじゃ!」と、お怒りになるタイプの人もいるかもしれません。筆者の場合はきっとその場は我慢して「カレイライス」を食べちゃうタイプですが。。。

料理すること自体の意味は同じだけど、そもそも料理する材料が違い、作る工程も異なります。名前が似ているということだけで、「カレー」と「カレイ」ではまったくの別物ですよね。JavaScript」と「Java」も全く別物なんです。
料理とプログラミングは似ているところがあります。
例えば、ワンマン社長が運営するカレーライス専門店の洋食が得意なシェフにこう言ったとしましょう「カレーライス」が作れるなら、「カレイの刺身」も簡単でしょ?
と、社長に軽い気持ちで言われたその時のシェフの気持ちを想像してみてください
「いやっ無理っす!カレイの調理方法知らないしっ」と言いたくなることでしょう。

実際、筆者はプログラミングをする現場で料理の例のような事を言われた経験があります。何度も。「JavaScript」ができるなら「Java」でも、ちゃちゃっとできるでしょ?
「いや、いや、できないから。そもそもJava未経験だし。」その度に2つの違いを説明しましたが、残念ながら大抵の人は、ふ〜んという感じで特に興味がない様子でした。
おそらく多くの人はプログラミングのことは素人(しろうと)だと思います。単純に言葉が似ているからという安易な考えで発言してしまうことは仕方がないし罪はないと思います。しかしながら、なぜか上から目線で偉そうな言い方をする素人(しろうと)の人も存在します。ぶっちゃけ、イラッとした過去の経験があるのでこういった曲者(くせもの)とは関わりたくないのが本音です。
なぜなら、このタイプの人とは、なにかとトラブルになりそうな予感がするからです。

このように「全く別物」を理解していないと、料理の例と同じくプログラミングする現場でも同じような現象が起こり誤解を招きトラブルになる可能性があります。
言ってみれば「JavaScriptを書く人」と「Javaを書く人」では
洋食のショフ」と「和食の料理人」ぐらいの違いがあるのです。そして、軽々しく「JavaScript」ができるなら「Java」でも、ちゃちゃっとできるでしょ?という発言はぶっちゃけ、うぜぇ
軽々しい発言は、相手を不愉快な気持ちにさせてしまう恐れがあるので言葉には気をつけましょう。

「ウインナーコーヒー」と「ウインナー」

「飲み物」と「食べ物」は全然違う!

ウインナーコーヒー」はその名の通り生クリームが上に乗ったコーヒーですね。名前の由来はヨーロッパのオーストリアの首都・ウィーンが発祥といわれてるようです。
ウインナー」と言えば、ソーセージを想像します。ウインナーの名前の由来も同じくオーストリアの首都・ウィーンといわれているようです。

この2つの共通点は名前の由来がオーストリアの首都・ウィーンということだけです。
「ウインナーコーヒー」は飲み物で「ウインナー」は食べ物なので、全くの別物であるということが中学生でも分かりますよね。

先ほどと同じ感じの例になりますが、冬の寒い時期に喫茶店に入り温かいウインナーコーヒーを注文したのに、ボイルされたウインナー(ソーセージ)がでてきたら
「そうそう、マスタードとケチャップを混ぜて〜♪パリっと噛んで肉汁ぶっしゃーが最高〜♪ってオイっ全然違う!ウインナーコーヒーが飲みたいんじゃ!えと、あのオーストリアのウィーン発祥のコーヒーじゃ!」と思わず1人ツッコミをしそうになりますよね。
それくらい全く別物ということです。ええ。

ウインナーの話からズレますが、オーストラリアオーストリアの国名は似ているけど、国の場所も、国の人口数も全然違うし、それぞれ国のルールや法律があり、話す言語も違いますよね。この国の違いパターンで当てはめてみると
JavaScript」の文法と「Java」の文法は違うし、書き方も違うよ。という感じでしょうか。そうなんです「JavaScript」と「Java」も全く別物なのです。

「オレンジ」と「オレん家」

「果物」と「建物」は全然違う!

これはダジャレ系となりましたが「オレンジ」と「オレん家」をプログラミング用語に置き換えてみましょう。

専門的な解説になってしまいますが「JavaScript」はwebブラウザとテキストエディタがあれば手軽にプログラミングができます。これを無理やり結びつけると
・JavaScript = 果実(オレンジ)
・webブラウザ = 土
・テキストエディタ = 水
いかがでしょうか?この無理やり感っ!
果物(オレンジ)も土と水があれば自然に実るという意味を結びつけたいですが、これはちょっと分かりにくいですね。。。
とはいえ、全く別物だと言える重要なポイントとしてJavaScriptを実行するときにコンパイルが不要なので、ある程度は手軽にJavaScriptプログラミングができるというイメージです。

一方、建物(オレん家)を組み建てる際には、鉄筋フレームや土台を作るセメントが必要なので色々な工程があります。こちらも重要なポイントとして言えることはJavaを実行するときはコンパイルが必要なので、まずは動作環境を構築しなくてはならないということです。つまりJavaは環境の準備が必要なので手軽にJavaプログラミングができるとは言い難いのです。

  • JavaScriptはコンパイルが不要なのでwebプラウザとテキストエディタがあれば作業ができる。
  • Javaはコンパイルが必要なので事前に動作環境を作らなければならない。

※コンパイルとは、ざっくり言うと人間語(ソースコード)で書いたプログラムをコンピュータ語(バイナリコード)に変換する作業のことです。

「イギリス」と「キリギリス」

「国」と「虫」は全然違う!

これは完全におふざけ系です。ただ言いたいだけです。ええ。

内容の中身はありません。。。つまりネタ切れなのでこの辺でやめておきます。

その他「メロンパンとメロン」や「パンダとパン」とかの表現はとても秀逸で良い例えだと思います。ぜひ検索してみてください!

まとめ

というわけで、JavaScriptとJavaの違いを、中学生にも分かるようにまとめてみました。JavaScriptとJavaも同じプログラミング言語ですが、文法や工程が異なり、全く違う物ということがご理解いただけたかと思います。JavaScriptとJavaのどちらが優れているかは問題ではなくて、プロジェクトなど現場での勘違いや、誤解が生まれてしまうことが問題なのです。こういった問題を事前に防ぐために最低限の知識を身につけておけば、良いコミュニケーションがとれるのではないでしょうか。
この記事が少しでもあなたのお役に立てたら嬉しいです!

  • カレーは液体でもなく個体でもない「コロイド」という分類らしい。
  • 基本的に「JavaScript」と「Java」両方とも、ちゃちゃっと作業はできない。
  • ウインナーにはマスタードとケチャップは最高である。
  • JavaScriptはコンパイルが不要だけどJavaはコンパイルが必要である。