なぜ美しいコードを書くのか
なぜ美しいコードを書くのか。
それは、プログラムは人に読ませるものだからです。
この考えを、一度ギークな人々にぶつけてみたかったんですよね。
だいたい、プログラムはコンパイラ(またはインタプリタ)を通して実行するのですから、読ませるのは人じゃなくて機械なんですよ。だったら、コンパイラが理解できる正しい文法で書けば、人間様が理解しにくいようなコードでも良いじゃないかって思いますよね。
でも、私が仕事でプログラミングをしていくうちに一番強く思うようになったことはコレなんです。人の頭で理解できないようなプログラムが、コンピュータの上で正しく動くなんて思えません。人の頭で覚えきれないような長い関数は、分割すべきなんです。可読性の高さ(シンプルであること)こそコードの美しさであり、プログラム上での個性なんて一切捨てて、誰もが理解しやすいプログラムを書くよう常に意識しています。
最近ではペアプログラミングなんてのもあるじゃないですか。ペアプロの効果の一つにも、美しいコードを書くよう意識するためって言われますが、これまさに人に読ませるためだと思うんです。常時見張り合っていることはサボリ防止かもしれませんが、結局はコードを人に見せることの効果が大きいと私は思っているのです。
ただ、この考えっていわゆるギークな人々にはどう思われるのかずっと疑問に思っていました。私なんて(仕事では)汎用機上で動くCOBOLをせっせと書くだけのプログラマでしたからね。バグを絶対に出さないことと、開発の効率化と、メンテのしやすさが三大顧客条件なわけですよ。そんな下地だからこそ辿り着いた一つの結論ですが、例えばWeb開発をやっている人はどんなことを心がけてやっているのかとか、特に最先端でやっている人が考えていることにはものすごく興味があるんです。
良かったらお話聞かせてください!
関連記事とお返事の淡い期待を抱いて下記の記事にトラックバック。
美しいプログラムの美しくないソース - 404 Blog Not Found
そして、ペア・プログラミングが始まる - 小野和俊のブログ
ペアプログラミングの効用 - My Life Between Silicon Valley and Japan
TrackBack
TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/1573/40012553
Listed below are links to weblogs that reference なぜ美しいコードを書くのか:
» 美しいコードにこだわる人は [ふぃふmemo]
304 Not Modified: なぜ美しいコードを書くのか
将来の自分を含めた「他人」に読みやすいコードにすれば保守しやすい、というのは良く聞く話でそれ自体は賛成なんですけど。
世の... [Read More]
Tracked on 2008.02.07 at 21:10
» [記事より] [ ( ・ω・)ノ<しすてむ開発。]
なぜ美しいコードを書くのか http://maname.txt-nifty.com/blog/2008/02/for_human.html を見たら改めて考えてみた。 ボクはソースを作りたいので、 考える時間を出来る限り確保したい欲がある。 一度作ったソースは作り終えていたり、修正中など変更対象であると思っている... [Read More]
Tracked on 2008.02.08 at 14:22
はてなブックマークに追加
はてなブックマークのコメントを参照


Comments
その通りだと思います。
計算機科学の教科書として名高いSICP (『計算機プログラムの構造と解釈』)の前書きに、よくまとまった一文があります。
"It [computer language] is a novel formal medium for expressing ideas about methodology. Thus,programs must be written for people to read, and only incidentally for machines to execute."
(それ[計算機言語]は、方法についてのアイディアを表現する、新しくそして正式な媒体である。従ってプログラムは人々が読むために書かれるべきであり、それがたまたま機械でも実行可能であるにすぎない)
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html
Posted by: shiro | 2008.02.06 at 14:20
ダイクストラの「構造化プログラミング」は、よく「gotoつかうな」と誤解されるのですが、実はそういう話だったりします。
http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/Intro2Basic/Structure.html
Posted by: minekoa | 2008.02.06 at 17:26
>shiroさん
ありがとうございます。そんな素晴らしい本にも書いてあるようなことなんですね!自信が出てきました!
>minekoaさん
そうなんですよね。gotoを使わないようにするのは人が混乱しないようになんだと思います。構造化プログラミングばかりやってるのですごくわかりますよー><
Posted by: まなめ | 2008.02.07 at 02:16