pluggableであること
最近のオープンソースパッケージがpluggableであることについて。
Apache
むしろpluginという機構の上に成立しているアーキテクチャであるので、pluginの充実は必要条件だったといえよう。
モジュールのインタフェースが絶妙というか、比較的理解しやすいのもいい。
ただ、2.0以降、マルチスレッドになったようで、それが若干敷居を高くしたか。
PHP
PECLが充実しているので、豊富なサンプルコードに当たることができる。
が、(自動で生成できる)スケルトンコードがどうにも垢抜けないというか、コメント多過ぎで視認性が悪い気がする。
また、PHPの場合、スクリプトベースのPEARが有名で、こちらにはアップデート機構も存在し、必要とされるpluginもPEAR側で吸収していると思われる。
MySQL
ユーザ定義関数だったりplugin機構だったり、ユーザ拡張の為に幾つかの手段があり、実は柔軟な機構を持つ。
しかし、実際に作られている拡張ライブラリはそれほどないと思うのだが、コミュニティの気質?
Eclipse
Eclipseプラグイン開発
一応、こういう本とかは読んだのだけども、個人的にはどうにも食指が動かないが、拡張ライブラリは数多く作成されており、ベンダー製のものも比較的多い。
IDEというデスクトップアプリケーションの性質か汎用性を追い求めた為か、plugin作成の為の約束事が多すぎる気がする。そこまでひどい訳ではないが、かつてのCOMと同じニオイがした。
plugin作成にはJava言語を使用し、アップデート機構も備わっている。
Firefox
plugin作成にはXULとJavaScriptを利用するので、作成は容易らしい。
また、これもアップデート機構を備えている。
あと、pluginの為のplguinでもあるGreasemonkeyが補助的な役目を果たしていたり、Bookmarkletを利用することも可能なので、そちらで作成される拡張機能も多いようだ。
実際にはIEでもplugin作成可能なのだが、ActiveXなので敷居が高いと思う。
Plagger
一度、ちゃんと見たほうがいいのかなぁと思いつつ、Perlということもあってなかなか。
ライブラリも豊富で、グルコードにYAMLを使うのが特徴的。
あと、WordPress、XOOPS、Phprojektとかでもpluginの仕組みを取り入れているわけだし、MovableTypeにだってあるわけなので、むしろないほうが珍しいよね。