プログラマーの美意識の世界「美しく汎用的」


技術者であるプログラマーは、プログラムの美しさに強いこだわりを持ちます。
今回は、プログラマーの不思議な美意識について書いていきたいと思います。

しかし今日は少し肌寒いです。
さすがに最近は暖かくなってきたとはいえ早朝は寒いですね。

「美しい」とは何ぞや

ところで「美しい」とは何でしょうか。
「美しい」は、「人の顔」「景色」「絵画」「武道の型」「職人の技」と、色んなものに使います。

自然が織り成す美、洗練された技術の美。
雄大さ、清貧さ、正確さ、オリジナリティ、均一さ・・・。
色んな要素が含まれ、対象物は「きれい」と表現され「美しい」と表現されます。
しかしそこに共通の指標はなく、あくまでも「受け取り手」の美意識によるものであると僕は考えます。

さて、プログラマーが求める「プログラムの美しさ」とは何でしょう。
当然ですが、個人の美意識によります。

僕の美意識でいうと以下のようになります。
・理解しやすいほど美しい

もう少し砕いていうと
・なるべく短く
・なるべく読みやすい表現で
だと思うのです。

読みやすい表現を用いると少し長くなる傾向にあります。
誰でも読める平仮名と、理解しやすい漢字の関係にも似ています。
冒頭の文の「しかし今日は少し肌寒い」を例に考えてみます。

「しかしきょうはすこしはだざむい」
「然し今日は少し肌寒い」

平仮名は誰でも読めますが、理解しづらくて仕方がない。
かと言って、下の段の「しかし」まで漢字にしなくても良くね?
と、そんな感じです。

余談ですが必ずどこの会社にも神と呼ばれる人がいます。
そういう人が書くと、

「然今日少肌寒」

もう一つの価値観「汎用的」とはなんぞや

ソフトウェアは汎用的であることが好まれます。
プログラムが共通化されれば、
使用する時に結合部分だけテストすればよいという理屈になります。

皆、汎用性を求め細分化を始めます。

先の例でいうと
「しかし今日は少し肌寒い」がバラバラになりはじめます。

「しかし」「今日は」「少し」「肌寒い」

「しかし」を単体にしておくと、どこでも使えて便利でしょ?
理屈はその通りですが、巨大なプログラムの中のどこかにある「しかし」を探すのは大変です。
ほとんどの場合「そんなのすぐつくれるし探す位なら一から作るよ」となります。
汎用性を求めて細分化しすぎるのもいまいち。
センスが問われる難しい世界ですね。

美しく汎用的な二度と使われないプログラム

僕の美意識でものを申し上げて申し訳ないのですが、
「しかし今日は少し肌寒い」が最も美しいとしましょう。

丁度良い匙加減の便利な部品が出来上がりました。
色んなケースを想定して設計しました。
楽しい文書でも、悲しい文書でも使用可能です。
テストもかなりの時間をかけました。
おそらくこの部分では不具合もでないでしょう。

「しかし今日は少し肌寒い」

さぁ、みんな!
僕が作った「しかし今日は少し肌寒い」を使ってくれ!
コピペするだけで使えるよ。すごく便利なんだ。
なぁ、使ってくれよ。使ってくれ。頼む。お願いだ。

こうして、二度と日の目を見ない汎用部品は
かなりの設計工数とテスト工数を使って作られることになるのです。
ちなみに僕自身ですら仮にこの文言が必要となったとしても
このページに来てコピペしようとは思いません。

そんなプログラマーの美意識の世界。

おわり


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です