「コードの美しさとは」という前に、そもそも「コード」とは何か。





コードは工業製品ではない。コードは、車とかと同じ工業製品だと思われることが多く、例えば次のような勘違いがある。

コードが工業製品と勘違いされているために、「ソフトウェアの生産」は車の生産ラインのように扱われることがある。 しかし、ソフトウェアは本質的には情報なので、流れ作業は0に等しく、生産ラインのような作業はない。実は、ソフトウェアの生産は車の作業工程でいう「設計 = デザイン」の部分にあたる。車を設計する時には、原寸大の粘度を削って車の形にする。そして、それが美しいとか議論されて最終的なデザインに落ちる。 自動車業界で新車というと年に10台くらいしか出てこないのに、車のデザインと同じくらいクリエイティブで大変なソフトウェアは毎年大量にでてくる。これは、ソフトウェアが「ものづくり」として理解されてしまっている部分に原因があり、このギャップが不幸を生んでしまっている。例えば、コードの設計部分が軽視されるものそのためである。 本来、ソフトウェアの生産は設計なので、次の様な性質をもっている。

コードは、美術等の芸術ともまた違う。見るだけで楽しんだりするものではない。

コードは読み物でもある

コードは人がコンピュータに「何をすればいいか」を教えるコミュニケーションの道具だが、人同士のコミュニケーションにも使われる。人がコードを読むこともとても大切なこと。

教材としてのコード（Twitter にpost するとはどういうことなのか）

例えば、Twitter にpost するということを知りたければ、その動作をするコードを読めばいい。コンピュータに仕事をやらせるには、何をすればいいかを完璧に教えなければならず、それがコード。なので、コードには曖昧性がない。

仮に、「Twitter にpost する仕様書」みたいなものがあったとしても、その仕様書を読むよりTwitter にpost するコードを読んだ方が、「Twitter にpost するということ」を完璧に理解するこができる。





コードは知識の宝庫

どうやってスケーラビリティを持たせるか等、そういうことがコードには書いてある。コードを読むことで、その知識を得ることができる。



