以前書いた機能は追加すればいいというものではないという記事の続きです。 前回の記事を書いた後に、さまざまな反応がありました。そのうちの一つは「プラグインのしくみを作れば解決」というものでした。プラグインとはソフトウェアのさまざまなポイントに、本体を変更せずに外部から機能拡張できるようにするしくみです。本記事ではこのプラグイン機能はそれはそれで大変という話をします。なお、みなさんにはご自身のソフトウェアのユーザをなるべく増やしたいという動機があるものとします。 では本題に入ります。第一にプラグインによる拡張可能なポイント、および、どこまでの拡張を許すかなどの仕様を決めるのが難しいです。変なところを拡張ポイントにしたり、できることが少なすぎたりすると役立つプラグインは作れない、あるいは作りにくいので、せっかく拡張ポイントを作ったのにプラグインが作られないという悲しいことになります。また、拡張の