アマチュア…玉石混淆の世界ではある。が、『玉』の方では凄いプログラムを作っている人が大勢いると思う。しかし同時に、自分が興味のないルーチンについては、大雑把に作って済ませている人も多いはずだ。本格的な見栄えの良いプログラムを作成するには、核心部分(演算処理)の他にも『初期設定』『入力処理』『エラー処理』『出力処理』『終了処理(環境復元)』などなど…様ざまな地味な処理を記述する必要がある。
一方の foussin は、どちらかといえば、その地味な Perl プログラムを少なからず作っている。この『アマチュア・スタイル!』では、その中から熟成しつつあるものをフリーソフトとして公開することにした。この中に、あなたの作品に欠けているものがあるなら、サブルーチンとして組み込んでもらえれば、その凄いプログラムの見栄えを整えるのに、若干の貢献ができるかな…と思っている。いわば、アマチュア版のプロトタイプ・ライブラリとして、流用可能な形態を目指してコーディングしたつもりだ。
リリースした Perl スクリプトのうち、サブルーチンについては必ず -w オプションを付けて動作チェックをしている。なので、致命的なバグはないはず。過剰な心配は不要だと思う(たぶん)。Perl は特に、バッファ・オーバーランが起きにくい言語だし、ね。
ちなみに、ここで公開しているサブルーチンは、そのジャンルにおいて必要と思われる複数の機能をパッケージした『ワンファイル・ライブラリ』の形態でリリースしている。インクルード(require)したサブルーチンの一部のみを実行する…それについてはメモリの無駄遣いとの指摘も受けそうだが、メモリにロードされるインタプリタと比較すれば微々たるモノだ。わざわざオブジェクト指向のマルチスレッドで書き直す必然性はないだろうと思っている。また、内部関数として相互呼び出しをしているケースも多いので、単発のサブルーチンとしてリリースするのは難しい側面もある。
ちなみに、上記のスクリプトの大半は、今回初めて公開するものばかりだが、実際にコーディングしたのは 2007〜2008年頃のものが多い。そんなわけで、ソースをちょっと見ただけでは、自分でも内容を思い出すのに結構苦労したりする。自作と言っても、プログラムなんて、そんなものだ。(^^;
今回、公開できるのは上記のプログラムだけだが、他にも、いくつかのサブルーチンを制作中で、出来た順に公開する予定だ。現時点では検案中の段階だが、『文字列解析ルーチン』『ファイルスペック解析ルーチン』『リリースビルド支援ツール群』の制作を予定している。それらが全て揃うと、一般ユーザーでも割と気軽にオープンソース作家になれるかもしれない…と、そんな気がしている。ただし、アマチュア・スタイル! の完成形は、少なくとも、あと 2〜3年はかかると思うので、気長に待っていただきたい。