薬と毒の違いは、服用量にある。

私たちはプログラミングや日常生活における習慣について、それが「良い」か「悪い」かと議論する。だが、物事の多くは単純な二元論では語れない。なかには状況によって変化するものもある。たとえば、庭で本を読むのは良いことだが、車の運転中に本を読むのは悪いことである。また、服用量によっても変わってくる。少量の鎮痛剤は頭痛を和らげるが、過剰に摂取すれば命に関わる。

服用量の重要性は、16世紀のスイスの医師パラケルススが指摘したものだ。彼の言葉は「Alle Dinge sind Gift, und nichts ist ohne Gift; allein die Dosis macht, dass ein Ding kein Gift ist.」というドイツ語だった。これは(Wikipediaによれば)「全てのものは毒であり、毒でないものなど存在しない。その服用量こそが毒であるか、そうでないかを決めるのだ」という意味になる。これは「服用量が毒を作る」として知られ、ラテン語では「dosis sola facit venenum」と表現される。

プログラミングでは、グローバルデータがパラケルススの格言(私の好きな呼び方)の好例だ。少量のグローバルデータであれば(特にそれが不変であれば)、プログラムの至るところから必要とされる情報を伝達する便利な方法になる。だが、それが大量にあると、すぐに危険な状態になるだろう。

このようなことはさまざまな場面で生じる。物事について「良い」か「悪い」かを考えるときには、「どのような状況なのか」と「どれくらいの量なのか」を考えるべきである。