プログラミング・開発アーカイブlife人生はドラマである。トラックバック(0)Twitterやっちゃうとブログ書かなくなるといいますがいやホント全くその通り。普段思ったことをその場その場で吐き出しちゃうのでたまにはブログでも書こうかなーと思って編集画面を開くもあれ、やっぱし書くことないな......ってなっちゃうんすね。今日はサッカーのおかげで職場が早々に捌けて私もうまうまとそれにのっかって早く帰ることができたので折角この時間のあるときに何か書いてみようかなと。いっても、ビューチホーなアレとかナルシーなソレとかじゃなく今回私が考察...妄想してみたのは私の職業分野でいうコードに関するお話。ここでいうコードというのはプログラムのことです。コードといってもケーブルとかCメジャーセブンスとかじゃなく...あ、もういいですか。あーつまり、コンピュータプログラミングにおける美というものの追求について、ですね。私は昔、某ゲーム系専門学校のプログラミングの講師に採用されかかったことがあります。あれは私がフリーになる約1年前の話。当時、私が社員だった会社のブラックっぷりにほとほと疲れていろいろ転職活動してる中の選択肢のひとつだったわけですがほぼ採用が決まった段になって蹴ってしまいました。理由はぶっちゃけ薄い給料だったんですが今にして思えば、そうでなくても蹴ったのは正解だったかなと。学校にも私にも、お互いにとってね。当時の私は人に教えられるほどプログラムに熟練してなかったと思う。教えながら自ら成長するという例もよくありますけどね。間違った概念や知識を若者に植えこんでしまうというのはやはりそれほど小さくない罪だろうと思うわけです。それから1年後にフリーに転身してから今に至るまで1つの会社にとどまらずいろんな会社でいろんな言語に触れながらそれこそいろんな人の書いたソースを見てきました。ソースといっても、とんかつとかウスターとかタルタルとか...あ、もういいですか。ソースというのはソースコードのこと。コンパイルする前のテキストのことですよ。中にはなんでそうするのか納得いかないコードもあれば、そういうやり方もあるのかとひどく感心するコードもあったりで書く人の考え方や性格なんかもコードの中に見えたりしてそれはそれで面白い経験ができたと思っておるわけです。そんな中で、これはキレイだ!これはふつくしいッ!などと思えるコードというのもいくつかありそれらの共通点は何だと一言で形容できないもののありますがきっと確実にいえるだろうことがひとつある。それは“単純”であること。シンプル・イズ・ベスト。BEST!!!(大事なことなので2回...)全く同じ要件を実現するコードでも、よりステップが少ない、より階層が少ない、よりシンプルな方法で実現されているものの方が「キレイだ」と思える。同じことができるなら、より少ない手順でやれるものの方に多くの場合選択の価値があるという考え方です。オッカムの剃刀ですね。数学や物理学なんかも同じ論理で、より単純な方が真理だとされる。段々畑かと突っ込みたくなるほど何ブロックも奥まってみたり...それはそれで見た目に面白くて、ビジュアルでは絶景なんですがきっとコードとしてはいただけないわけです。途中で登場する変数のスコープがどこまでか判別しづらかったり全く同じ処理が同じブロック内に2度3度コピペされてたり...まぁとにかく、そんなバグの温床になるようなコードが山盛りでそんなものが実運用で稼働してるとかいう日常がある。これ書いたのどう見てもプログラマじゃないだろ!普段ExcelやWord使ってるアドミニが片手間に書いたんじゃないの?とか思えるようなシロモノが割りと多いという現実。そんなコードばかりというわけじゃないですけどね。少なからずそういうコードを見る度に、これホントにプロの仕事?とか思っちゃうわけですよ。