小さなブログ

野菜か果物か

トマトは野菜か果物か、その昔アメリカで最高裁まで争われたのは有名な話。当時の植物学的知見では果物(果実)に分類でき得るものの、結局「使われ方と一般的な認識」に基づいてトマトは野菜であるとの判決が下された。だってデザートじゃなくておかずに出てくるじゃん、というわけ。そしてこの判断基準は、トマトのみならずベジタブルとフルーツの区別全体にまで及んだ。恣意的と思われそうだが、そうではない。誰かの意見ではなく、食農の文化と歴史という動かしがたい広大な時空で確立した基準だ。

なぜ突然こんな話を持ち出したかというと、「HTMLはプログラミング言語か否か」との論争をたまたま目にして思い出したから。そんなのどちらでも誰も損も得もせず(トマト裁判には関税が絡んでいた)文脈次第だと思うが、ネタとして熱くバトルしていたのだ。

何周遅れか知らないけれど、自分の考えをはっきりさせておこう。劣勢に見える側にあえて立つ。HTMLはプログラミング言語ではない。

これは野菜か果物かの議論とよく似ている。正誤の問題ではなく、学術的な定義を重んじるか、文化的な認識を重んじるかの立場・枠組みの問題だ。そして、自分は長きにわたり多くのプログラミング言語を操り、多くの分野でプログラムを書いてきた実務家として、文化的な認識のほうを支持する。

立場の異なる者へ各論を示しても詮無いながら、文化的な認識とはどういうことか、いちおう例を挙げておこう。この問題はこう言い換えられる。「HTMLしか書けない者はプログラマーか」「ウェブブラウザーに文書を表示させるだけの者はプログラマーか」。やや循環論法めいているため、もっと切実な言い方をしよう。「プログラマーを目指すあなたはHTMLの講義を選ぶか」「HTMLしか書けないあなたはプログラマーの求人に応募するか」「HTMLしか書けない者をあなたはプログラマーとして雇うか」。

おわかりのとおり、現実に情報処理を営むプログラマーという人間をまず立て、その「使われ方と一般的な認識」を問うているわけだ。プログラマーの役目は言語そのものやまして定義を弄ぶことではないし、ブラウザーに静的な文書を表示させることだけでもない。コンピューターに任意の情報処理を能率的にさせることだ、とほとんどの人が同意するだろう。そして、プログラミング言語はそのための道具である。HTMLがこの目的に適うか。

現在の学術的な定義に照らせば、HTMLはプログラミング言語であると強弁でき得ることは承知している。だがそんなものは、現実の営みに無関係な衒学・言葉遊びにすぎない。ならばこちらは「ガチプログラミング言語」「なんちゃってプログラミング言語(HTML)」といった言葉遊びで再分類するまでだが、無意味で煩わしいので勘弁してほしい。

そもそも、もし学術的な立場に立つとしても、その定義をなぜそう絶対視せねばならないのか。現実には文書の構造化データにすぎないHTMLをプログラミング言語とみなしてしまう(裏返せば構造化データの定義さえ怪しくしてしまう)非実際的な分類法に、計算機科学は永遠に疑問を抱かないのか。こうした素朴な批判精神すら持たず、学説を、まして歴史の浅い計算機科学を永遠不変の真理のごとく盲信するのが学術的な姿勢といえるか。

ついでに。この論争の背後には、どうやら技術の貴賤意識があるらしい。つまり、プログラミング言語は高尚でHTMLはそうではない、と。「HTMLもプログラミング言語」派は、これを覆して擁護したいようだ。くだらない。それこそ偏見の裏返しにすぎないではないか。技術に貴賤などありはしない。労働対価のことをいうのなら、習得・実践が易しいぶんHTMLのほうが自ずと希少価値が下がるだけの話で、プログラミング言語か否かの定義など誰も問題にしていない。HTMLはウェブの必須要素であり、それ以上でも以下でもない。

#gemini