プログラミング対象と言語

物理学において、ある対象が物理学の対象として同定されるための条件を述べよ。またなぜ物理学においては、その表現形式として日常言語ではなく数学が採用されるのか、そのことは物理学に対してどのような効用をもたらすのか、説明せよ。

小林道夫『科学哲学』第2章「科学の対象とその数量化」より引用(ISBN:9784782802045)

私の高校時代の恩師の言葉を借りれば、物理とは未来の予測です。ロケットを月まで飛ばせたのは、どんなときでも、どんな場所でも、誰がどこから観測しても同じ結果が再現される式を導きだしてきた人類の積み重ねのおかげです。
直接的には感覚知覚が難しい圧力や熱でも、水銀の膨張に変換、熱伝対で電気に変換して、数、量を観測可能にする。客観性とともに数字と物理単位という普遍的な性質が得られます。1秒という量、1メートルという量は、科学者の間で原器となる基本単位を決めておき、あとは、その基本単位からの比や変換式で表すという考え方をしています。
また、日常会話とは隔絶した数式には、ある瞬間、式そのものが意味をもちだしたり、ある同一性を予想したりという、効果があります。
物理学者の伝記にはウンウン考えて悩んだあげく、ふと何かに気がついたというエピソードや、ある式の項が「不自然だ」というような言葉が出てきますね。式のおかげで見える世界があるのでしょう。こうしてみると、数式を使う人は、五感に頼らない思考をしているということになります。

□□□

プログラミング言語でコードをタイピングしながら頭も動いているわけですが、私の経験では次のように感じています。

  • Perl やりたい処理そのものをパターンとして手が覚えていて、それをタイプしている。
  • Ruby Perlと同様だが、Perlよりも抽象化がやりやすい。
  • C++ どういう型(クラス)を定義するか、悩んでいる時間が多い。悩む時間が終われば、プログラミングは早い。


ここで、多くの先人が実践しておられるはずですが、プログラミングの際の考え方を紹介します。

型(クラス)とは、物理で式にすることで世界が広がることと同様に、広がりがあるものを型にする

Perl,Ruby自然言語に近いので、難しいプログラミングをやさしくする福音をもたらしてくれたと思います。しかし、たとえば、工場で働く人がケガをしないことを見張るシステムを設計するときには、自然言語との近さが不安になるケースがあります。機械の安全、機能の安全に関しては、不勉強なためもっと勉強が必要ですが、自然言語とは隔絶した言語もやはり必要と思われます。

つづきは第3章読了後に書きます。