公開関数について
Last update: 2008/11/14
ここでは当方が保有している関数(ソフトウェアの部品と言えるもの)の一部を公開しています。主に Perl言語が対象ですが、一部は PHP もあります。
ここで公開している関数は、ご自身のモラルに従って利用して頂いて構いません。ただし、もちろん関数の挙動の安全性などについてはこちらでは責任を持つことは致しません。関数に対するご指摘やご要望などは歓迎しております。
関数主義のバックグラウンド
関数は、プログラマ、ソフトウェア開発者にとっては生命線と言えるものと考えています。なぜなら、関数とは特定のアプリケーションに依存しないものなので(*)、質の良い関数をたくさん持っているということは、質の良いアプリケーションを比較的安全にそして早くに作成することが出来るということだからです。(*逆に依存するものは「ルーチン」と区別して呼んでいます)
最近では IT関連技術の一般化がますます進み、「プログラマ」、「プログラミング」といってもさほど専門的なイメージが無くなりました。中学生、高校生といった極めて若い世代でもそこそこのことが出来るようになっているからです。しかし、彼ら新しい世代のプログラマは、ちょっと難しい処理(例えば CSV, XMLデータの処理だとか HTMLテンプレートだとか)に出くわすと、直ぐに「何か丁度いいモジュールは……」と、既存のライブラリに頼ろうとする傾向があるように思います。
一般にモジュールというのはその特定種目において至れり尽くせりであり、あたかも色々入れ過ぎてパンパンになった旅行バッグのようになっているものです。日帰りの旅行に果たしてドライヤーなど本当に要るのでしょうか。更にモジュールというのは遠慮なく他のモジュールを呼び出しますので、たったニ・三行のコードを追加しただけのつもりが、いつのまにか知らない間に何万行ものソースががんがん読み込まれているという、アプリケーションの舞台裏ではなんとも壮大なことが起こっています。しかし――多少大げさに言えば――その大半は使われずに終わってしまうという……。これは正しいソフトウェア設計と言えるのでしょうか。
もちろん、例えば文字コードの変換や画像処理などといったやや専門性の高い処理をするときには、潔く(?)モジュールを選択するのも良いでしょう。ですが、当方は「少し努力すれば書ける」程度のものは自分で書く、というポリシーです。細部で何をしているのか分からない数千行のモジュールを使うよりは、自分で必要充分なだけの数十行程度の関数を書いて、きちんと把握して使う方が能動的ではないでしょうか。
当方のこのポリシーの背景には、便利な(はずの)モジュールを使って楽をしようとすればするほど、どういう訳か、ますます泥沼の深みに嵌ってしまった、という過去の経験があります。モジュールを使おうが使うまいが、結局、「理解できていないことは上手くできない」のです。