プログラミング言語の暗黙ルール

no extension

(これは Scrapbox に書いた記事の再構成です。内容はほぼ同じです)

英語不得手な私としてはこの記事で延々と聞かせられる「愚痴」に深く同情はするが,しょせん「愚痴」は「愚痴」でしかない。

これで思い出したのが「頼むからプログラミングを学ばないでくれ」である。 この記事については私も以前にブログ記事を書いた。

ちょうど「小学生の学校教育カリキュラムに『プログラミング』を導入する」などという頭の悪い教育政策を聞かされた頃だったので,反発する意味で書いたのだが

日本語や英語を習得するのに文法から習う人はいないだろう(日本の学校教育は違うかもw)。 たくさんの言葉を聞いて話して書いて読んで,そうして少しずつ語彙を飲み込んでいって習得していくものだ。
プログラミング言語は違う。 プログラミング言語で決定的に重要なのは言語仕様つまり文法である。 何故ならプログラミングとは,究極的には,ゼロ知識から論理を積み上げていくことであり,プログラミング言語はそのための道具であり手段なのだ。

が主張の全てである。

プログラミング言語について」で唯一面白かった指摘は,プログラミング言語には言語仕様とは別に暗黙的に決められているルールというか規範のようなものが存在するという点。 それが「名前」である。 この点については日本語圏でも参考になるページが色々ある。 たとえば以下のページ。

実は Go 言語にも「名前」に関する議論がある。 たとえば

のような話だが,ここでも英語の語彙が組み込まれている(ということに今気がついた)。

つまり,英語圏で作られたプログラミング言語では暗黙的に英語の語彙を要求しているのである。 こればっかりはいくらプログラミングを勉強しても身につかないし,英語を無視して作ったものはまさに「中国語の部屋」と同じく機械的なものにならざるを得ない1

だから若者たちよ。 悪いことは言わないから英語を習得しなはれ。 語彙を育むためには

たくさんの言葉を聞いて話して書いて読んで,そうして少しずつ語彙を飲み込んでいって習得していく

しかないのだ。 まぁ,私はこれが大変苦手なのだが。 だからこの歳でもいまだ英語不得手のままである。 とほほ。

ブックマーク


  1. 言い換えれば日本語のプログラミング言語は日本語の語彙を前提にしているわけで,そんなもん日本(語圏)人以外には使えない。ただでさえ日本語は難しいと外国語圏からは言われているのに。いまや IT 後進国の日本が自国語のプログラミング言語を作るとかヘソで茶が沸いてしまう。 ↩︎