プログラミングと言語ゲーム

プログラミングというものは、必然的にヴィトゲンシュタインの「言語ゲーム」を含んでいる。

なぜなら、プログラミングにおいて変数や関数は、それが名前の付けられた時点では、何ら機能を持っていないからだ。

それは、それらが使われること、使われるルールの中で、

定義付られる。

変数はデジット上のパターンであり、このアドレスの値を、その後、どのように使うかで、意味づけられる。たとえば、色を指定する変数 _colour であったとしても、それがそのあとで、まったく違う用途で用いられたとしたら、その変数の意味は違う。これがプログラムのいろいろな場所で混乱をきたす理由となる。

言語空間においても、実は同様であり、同じ言葉が違う用途で使われることで、誤解が生まれる。

関数はまずその名前が付けられて、その関数の内部の処理が記述されたところで、本来意味が固定されるはずだが、その関数が使用されるに従い、違った使われ方をするとか、内部処理が書き換えられたり、拡張したりして、違う使われ方になって行く。そういった「使われ方が意味を変えていく」ことが言語ゲームの本質であり、それはそのままプログラミングの本質である。

さらにクラスとなると、もっと使われ方に幅を持ち、最終的にソフトウェアができたあとも、あいまいなクラス、あいまいな関数、あいまいな変数、が残ってしまう。しかし、それは確かに言語ゲームから見ると当然の結果だ。

プログラムでは、そういった意味を内部ではなく外部から固定するために、ドメイン駆動の考え方が取り入れられたが、完全に固定することはできない。

この記事が気に入ったらサポートをしてみませんか?