たとえば、「Amazon のほしい物リストを CSV 形式に変換して Excel で読み込むプログラムがあったら便利かな」なんていう一見簡単そうなことをやろうとしても、次のような状況が発生するのは目に見えています。
「さーて、まずはほしい物リストのページをとってくるか」「うげ、SSLでログインが必要かよ」「えーと、SSLでページとってくるにはどうするんだっけ」「うわ、OpenSSL 入ってねー」「インストールインストール」「で、これ使って Basic 認証…、じゃねーし」「これPOSTで認証かよ、どうやるんだっけ、あー Cookie も使ってるのか」「こういうのってやるのなんかなかったけ」「Mechanize とかいうの使えばいいわけ。へーなるほど」「で、ようやくページゲット」「あれ、これ UTF-8 じゃないの? いまどき Shift_JISかよ…」「Shift_JIS を UTF-8 に変換するのどうやるんだっけ」「あー、なんかライブラリでできるのね。変換変換…」「うげー、全角の波線が半角チルダになっちまったよ。なんでやねん」「はあ、shift_jis と cp932 の変換テーブルは違うのか。さすが Wikipedia は役立つぜ、ところでジンバブエはどうなってるんだっけ」「なんかこの HTML ごちゃごちゃしてるなー。正規表現でうまくスクレイプできるんかな。って、メールアドレスの正規表現はこんなに長いのかよ。ああ、なんか他になかったっけ」「ナイスブログ発見、Scraper とかいうの使えばいいのか。やってみるかな」「で、これCSVにするのは、カンマいれればいいだけか」「と思ったら値段にカンマ入ってるし。余計なことするなよな、ようはダブルクオートすればいいのね」「と思ったら、今度は本のタイトルにダブルクオート入ってるし、勘弁してほしいし」「やれやれ、なんか CSV にまで RFC あるのかよ」「ってこれやっても Excel でやっぱ読めねーし。いってよしすぎる」「そういや、最近の Excel って XML 読み込めなかったっけ。どういうフォーマットだろう、こっちでいくかなー」「で、XMLの処理ってどうやるんだ。んー、 libxml とかいうのが必要なの?うげ、やっぱ入ってないし」「インストールインストール」「うわ、パッケージのバージョン古くてなんか動かない問題発生!」「自分でビルドするか。やな予感するなー」「うわ、やっぱビルドエラー!」「libtool 入れろってなんなのよ」「しかも libtool 入れてもコンパイルエラーで止まっちゃうし」「これって gcc のバージョンが古いってこと?」「gcc 入れるか」「ってサイト、ダウンしてるし」「そろそろブログでもチェックするかな、って、なんでこれが 600 ブックマーク超えてるの?」
実際のところ、プログラムを書き始めてから今にいたるまで、年がら年中こんなようなことをやっているわけで、my life is yak shaving という感じであります。