つぶやきとプログラミング

アメトーーク好きなWebエンジニア芸人

「KISS」 ブログ開設一言目がエッセイ

「Keep It Simple Stupid.」 これはプログラマにとって鉄則ともいえることわざで、日本語に訳すると「単純にやれ馬鹿野郎」ということであり、コーディングにおいて一番に優先されるのは単純さであることを四文字で伝えている。プログラマにとっての一番の敵は、複雑で絡みあった汚いコードであり、冗長にかかれたものを嫌う傾向は、ただでさえ短いことわざを更に四文字に縮めていることからも理解できる。特に煩雑で重複した内容のものはスパゲッティコードと呼ばれ忌み嫌われる。コーディングは単純明快が一番であり、1つの関数の行数も多くて100行前後であることが望ましく、それ以上の場合は関数を分けた方が可読性が高まる場合が多いと言われている。

また、現代コーディングの流れとしてオブジェクト指向が要求されることが多い。コードをオブジェクトとして囲うことでブラックボックス化にして単純にすることで、自分が理解する必要がある機能かどうかを区分けして可読性を上げ、発展とともに増々複雑になっていく技術の積み重ねに対処している。ずばぬけて簡潔に纏められたコード群は、ライブラリーとして多くの開発者に恩恵をもたらし、それによってまた新たなコードが生み出される。
単純なものの代表の例で言えば、数学や物理学で用いられる公式が挙げられる。公式は、多くの研究者の追求によって洗練を重ねた単純さの純粋結晶であるといえる。最も端的にまとめられた公式の1つとして、『ファインマン物理学』で紹介されたオイラーの公式が有名である。この公式は指数関数と三角関数による究極の結論だ。その証明には微分積分への理解が必要であるが、公式自体には含まれていないため大変わかりやすい。理学と工学のどちらの分野においても頻繁に利用されているので、この公式なくしては現代の科学技術が成り立たっていなかったのは確実である。
また私達が日常で触れる例で言えば、2chまとめサイトが最たる例であろう。有象無象のスレッドから注目すべきスレッドのみをまとめ、更にはその中のレスをも重ねて厳選したのがまとめサイトである。2chというサイトを単純に読みやすくしただけであるが、有名まとめサイトのPV数は凄まじく、それがビジネスとして成立しているのだから単純さの恐ろしさがわかる。
これらの例から考えられるに単純さとは、情報伝達においてかなり重要である。もちろん、相手方に物事の100%を伝えるには、オイラーの公式の証明の如く、非常に事細かに伝えなければならない。確かに、時間がある場合であれば、この方法がベストであるものの、社会において多くの場合は制限時間を設けられた状況で説明する場合が圧倒的だ。例えば、新企画の説明のための会議などがそうである。会議において自分一人が長い間喋ることはできない。やはりそこで求められるのが、単純さである。
相手に伝えたい情報量の差異が単純か否かという違いを生じさせる。言い換えれば単純さとは「詳細な背景を隠して相手に物事をわかりやすく伝える技術」であり、つまるところ情報の取捨選択である。私自身、理工系で凝り性が災いしてついつい長話をしてしまうときがある。そのときに「話が長い」「わかりにくい」と指摘されたので、話のキーワードだけの会話にすることを心がけたところ、同じ話の印象ががらりと変わった。情報化が日進月歩に進む現代において、いわずもがな情報は力を持っている。その際に、発信した情報が生きるか死ぬかは単純にする技術に依るところが大きいと考えられる。すなわち、単純さが、たかが単純さとはあなどれない強力な武器になり得るのかもしれない。