プログラミングスキルの向上しにくい人

梅村研のWebサーバにログインしてDocumentRoot以下を覗いていると、ふと妙なRubyで書かれたCGIスクリプトがあった。
ちらっと見てみたら、

if @palam.phase ==nil then @palam.phase = "db" end

ってコードがあった。
ああ、もう「お前はRubyプログラミングをわかっていない」といいたい。たまには人の書いたソースコードも読めと。
@palam が多分 @param のスペルミスとかそんなのはどうでもいい*1Rubynilとfalse以外は真偽評価すると真になるし、1文程度なら後置のほうがいい。

@palam.phase = "db" unless @palam.phase

もっといえば、普通はこう書く(よね?)

@palam.phase ||= "db"

あとね、fffname って変数名とか意味わかんないから。
ちなみにこのCGIはセキュリティ的にはかなり怪しかった。クライアントから送られてくるパラメータが検査もされずにopenするファイル名の一部になっているし、出力も実体参照変換とかしていない。あとパスワードの保存が平文*2。でもまぁとりあえず外部には公開していないようなので無問題。
別にこのスクリプトの作者に限った話ではないのだが、有る程度プログラムが書けるようになっても、「とりあえず動けばいいプログラム」を書く人はいつまでたっても泥臭いプログラムを書くばかりで、「再利用可能なプログラムを書こう」とか、「もっと綺麗に書こう」とか「便利なライブラリを使おう」とかそういう思考とは無縁なことが多い気がする。具体的には某大学の某NLP研究メンバーだったりするんだけど。
単に「他人の書いたプログラム」を読む気も機会も無かっただけというか、忙しくてそういうのを勉強する暇が無いだけかもしれないが。

*1:でも同じファイルの別のところparamという変数が出てくるので別の意図があるのかもしれない

*2:普通、特に理由が無い限り片方向ハッシュ関数をかけて保存する