それは問題が間違っています。

目くじらを立てることではないんだろうけど、やっぱり、JavaScriptの講師業で結構飯を食わせてもらっているので、違いは正すべきだと思うのでBLOGに残す。

キーマンズネットの昨日の問題。
【2010/03/23の問題】JavaScriptの正しい意味とは?<ITキャパチャージ>
---
■□ 問題 □■━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 JavaScriptの説明として,適切なものはどれか。
────────────────────────────────────
【ア】HTMLファイル内に直接プログラムを記述し,ブラウザで実行する。
---
以下選択肢。

で、これが正解だと。ちなみに、僕の教え子は全員不正解になると思います。JavaScriptの説明としてこれは正しくない、と教えているからです。実際に教科書にいつも使っているオライリー本でも、そう説明してあります。

確かに、多くの場合、現実の実装としてそうなっていて、営業上や実務上はそういうもんだと知っていれば良いかもしれませんが、それは真の説明ではない状況なわけです。変な話、高校は無料化で全員いける状況であったとしても、それは高校が義務教育になったということではないようなものです。

ちなみに、JavaScriptが実行されないブラウザはこの世に沢山ありますし、ActiveServerPagesでも、VBScript以外に、JavaScriptでサーバーサイドのプログラムは簡単にかけます(僕は書いたことありますし)。もっと言えば、HTMLファイル内に書かないで、別のブロックなりモジュールにして実行することが出来ます。明らかに、
「HTMLファイル内に直接プログラムを記述し」
は満たしていないし
「ブラウザで実行する」
とも言い切れないわけです。これは明らかに正解の選択肢ではありません。
わざわざ、JavaScriptの中でも、ちゃんと「クライアントサイドJavaScript」と断って使っているわけです。JavaScriptそのものは、環境と無関係に存在するノイマン式コンピューターへの指示を記述するための言語に過ぎないという事を、きちんと理解すべきです。その上で、「最もよくJavaScriptが活用している状況を選べ」というのであれば、あれが正解でもかまいませんが、これは明らかに問題が間違っています。

問題制作者は猛省してください。