人間の考え方・機械の考え方
現代は情報社会と言われて久しいですが、情報と人の関わりについて考えてみると、 人間の考え方と機械(計算機)の考え方では、世界の捉え方にギャップがあるかもしれません。 そのギャップを意識しないと、計算機を上手く扱えないのかな、と思います。
計算機に命令を与える書き方
計算機に命令を与えるためにプログラミング言語があるのですが、 現状のプログラミング言語は圧倒的に英語の考え方で世界を切り取って考えています。 日本語ではあまり意識されない文法上の注意点が、 コーディングをしていると意識に上がってきて、 思考をアメリカ人もしくは機械に合わせてみないといけないのかな、 と思うことがしばしばあります。
例えば、猫に餌をあげて下さい、という単純な指示をプログラミング言語で書くとすると、 Python言語ではこうなるでしょう。
1
2
3
my_cats = ["Leo", "Milo", "Luna"]
for cat in my_cats:
feed(cat)
このように「猫は3匹いて、1匹ずつに餌をあげてね」ということを、 機械にもしっかりわかるように書かないといけません。 その時、指し示している対象が単数なのか複数なのかを意識できるように、 上手く変数の名前をつけると、意味がわかりやすくなります。 コードを書いているうちに、強制的に英語の考え方をするようになります。 曖昧なところがなく、一つの意味にだけ伝わるように、書くようになります。
自然言語の文化的な壁
このようなギャップは、私のように日本語を母国語としたものが、 見よう見まねでコードを書いていると、ある時にぶち当たるものなのかも知れません。 なぜなら、自然言語には文化的な差異が埋め込まれている一方、 機械への命令の翻訳元の言語(プログラミング言語)として英語話者がたまたま覇権を取ってしまったからです。
元々英語圏の考え方には、「言葉による他者への指示」という考え方が優位にあると思いますが、 計算機に命令を与えるのが必ずしも英語でなくてはいけないわけではないのです。 しかしながら、もはや英語が覇権をとってしまったため、計算機の分野では英語で考えて指示を与えないといけない状態になっています。
なお、英語圏(西欧圏)での「言葉による他者への指示」が優位だと考える背景を挙げるとすれば、 ヨハネによる福音書の冒頭を示せば足りると思います。
「初めに言(ことば)があった。言は神と共にあった。言は神であった。」
このように、西欧の文化圏では言葉による認識作用が重要と考えられている一方、 日本語圏では「不言実行」というような精神に現れる、 文脈や関係性を重んじる文化的背景があるような気がしています。
まとめ
計算機を扱って何らかの処理を考える時には、発想をアメリカ人にするといいですよ!