Copal 2 開発よもやま話
・「Copal」の名前の由来
Copalとは樹脂が固まったもので、琥珀(Amber)の安いもののことです。
Perlが真珠(Pearl)をもじってつけられたことにちなみ、より安い
宝石の名前を使いました・・・ということになっていますが、真実は
その頃読んでいた小説で、魔法を使うのに
必要な石が「コーパル」という名前だったので、それに合うように
スペルを考えたら、たまたま辞書に載っている単語になった、という
それだけの話です。一応「CO-worker for Perl And other Languages」
(Perlその他の言語のための共同作業者)の頭文字だ、というこじつけもあります(^-^;
適当につけた名前でしたが、その後国産のスクリプト言語「Ruby」も登場し、
宝石つながりは結構いい感じになっております(って良くわかりませんが)。
・Copal開発の歴史
Copal開発の動機
Copal2 の前身であるCopalの開発に着手したのが
1999年4月でした。バイトのプログラムがきっかけで
Windowsの標準入出力をのっとる方法を知り、それを生かして何か
プログラムを作れないか、と考えて作ったのがCopalです。
最初は完全にPerlを使うことを前提に作られており、開発当初は
「Perlドライバ」と呼んでいました。実際のところ、あまりPerlは
得意ではなかったのですが、Linuxで良くデータ解析に
使っていたので、Windowsでも気軽にPerlが使えたらいいなぁ、という
動機で作ったものです。
窓の杜で紹介される
Ver 1.00をニフティに公開し、少しずつ反響が聞こえ始め、大体のバグが取れた
同年11月、Ver 1.50が窓の杜に紹介され、一気にCopalが広まりました。
最初は玄人向けソフトとして開発していたのですが、これによって
Perlなどの学習ソフトとして使われたり、CGI開発用ソフトとして
使われたりとユーザーの幅が大きく広がり、要望も多岐にわたるように
なって対応が大変でした。あと、Copalとは全く関係の無い
Perlの質問や、WEBの掲示板のつけ方とか、プログラムの質問とか
来るようになって、対応に困ったのを覚えています。
結局、Copalの開発は2001年3月のVer 1.86まで二年間続きました。
基本的にアイディア一発型のソフトを作ることが多かった私にとって
ユーザーの意見を反映させながら改良する、ツール系のソフトを
作ることはいろいろな意味で大変ながらも貴重な体験だったと思います。
CopalはVer 1.86でほぼ完成しましたが、いくつかの点で不満の
残るものでした。その一つは、ソースがあまりに汚いため、拡張性に
欠けることです。
作り始めたころはこんな大きなソフトになるとは思っておらず、
必要な情報が全てFormのメンバになっていたり、グローバル変数を
使っていたりとかなり汚い仕様になっており、なおかつ度重なる
仕様変更でソースはスパゲッティになっていました。オブジェクト指向
プログラムが身についた今、全てのソースをゼロから書き直したいと
思っていました。
NTで動かない?
もう一つは、Windows NT/2000で不具合が出ることです。
ご存知の様に、Windows 95/98/MEとWindows NT/2000は全く別のOSです。
従って、Windows 95ファミリで動いていたソフトがNTファミリで
動かなくなることはよくあることです。しかしCopalは
パイプを使って標準入出力を乗っ取るという(どちらかといえば)OSに
近い処理はしていますが、実行エンジンは単に
Windows APIを呼んでいるだけなので、そのまま動くはずでした。
っていうか、APIとはそのように設計されるべきものです。
ところが、単にWindows APIを呼んでいるCopalの主要実行エンジンが、NT系ファミリ上で
ある程度の大きさ以上のファイルをパイプに出力しようとすると固まる、という
不具合が生じました。
当時、私はWindows NTが載ったマシンを持っていなかったため、
デバッグが出来ない状況でした。NTマシンを買うために、一時は
シェアウェア化も考えましたが、とあるフリーソフトの
ソースが公開してあったおかげで、不完全ながらNTに対応することが
できました。
しかし正直 Microsoftには頭に来ました。
Windows プログラミングには特別な資質は要りません。単にWindows のAPIと、
ややこしい構造体の設定を覚えるだけです。だからAPIを覚えても
プログラマーとして成長するわけでもなく、Windowsが滅びたら
使えなくなる知識です。結局、デバッグ環境が無いのと、やる気を
なくしたのとで開発はストップしました。
Copal2の開発スタート
そんなある日、ノートパソコンのハードディスクがクラッシュしたので
新しいディスクを導入し、Windows 2000をインストールしました。
ようやく NT系の開発環境を手に入れた私はNTで動作するCopalの開発に
着手しました。ソースの公開を前提に、
全てのデータをクラス化して、だいぶ見通しよくなりました。
英語版も作りやすいように、内部の情報をカスタマイズする
クラスも作りました。ただ、公開には少し逡巡がありました。
忙しい日々
Copalの開発時もかなり私生活は忙しかったのですが、Copal2開発中は
さらに忙しくなっていました。別に忙しい中でのソフトの開発は
良いのですが、変な要望や初歩的な質問メールが来るのは困るものです。
そのまま無視すれば良いのですが、どうしても気になってしまい、
返事をしたりしていると本当に時間が無くなってしまいます。
また、フリーソフトの発展とネット人口の増加により、
「フリーソフトはサポートするのが当然」と思っているかの
ようなメールが多く来て、悲しい気持ちにもなりました。
サポートできないソフトを公開するのもどうかなぁ、とも考えました。
結局、いろいろ悩んだ末、(当たり前のことですが)忙しい時は
サポートなどの対応をしないと割り切って公開することにしました。
いろいろありましたが、Copal〜Copal2の開発の歴史はこんな感じです。
みなさんにとっては単なる一フリーソフトかもしれませんが、
一応それに数年の開発期間をかけている人間がいるんだ、ということを
知っていただけたら、フリーソフトに対する見方も少し
変わるんじゃないでしょうか?(^-^;
Copal2のページへ戻る
トップページへ戻る