Javascript でライブラリを作るとき、どのライブラリを基準(ベース)に作ったらいいか。
タイトルそのまんまな質問を はてなで聞いていたりする のだけど、回答がいまいち集まらないので、こっちでも聞いてみる。
Javascript の場合、何も外部ライブラリ使わずに書こうとすると、結構面倒だったり、車輪の再開発みたいなコードを書く破目になったりする。
なので外部ライブラリ使うことになるんだけど、じゃあ、何を使ったらいいでしょうか、ということになる。
個人的に、ライブラリ使う場合は、
- 外部ライブラリにあまり依存したくない
- 依存関係が簡単に解決できる
- 必要最小限のライブラリだけをロードするようにしたい
- なるべく汎用化して使いまわせるようにしたい
と考えていたりする。
例えば prototype.js なんかだと、必要の無かったりする関数まで、読み込むことになったりする。で、上記の条件に合いそうなライブラリは JSAN(:=Javascript Archive Network)とか Mochikit かなと思っている。他にも色々ありそうな気がするんだけど(何せ数が多い)、JSAN+Mochikit という組み合わせもひとつの手と考えていたりする。
ただ JSAN の場合、prototype によるビルドインオブジェクト拡張のネームスペースをどうしたらいいかとか、あと結構導入するまでが面倒そうだとか、さらにコレが多分日本ではやらない原因なんだろうけど、日本語の情報がほとんど無かったりとかする。他にも、パッケージの仕組みが無かったりするので、階層の深い JSAN ライブラリ書こうとすると結構無駄が多いコード書くことになったりする。
とりあえず、
- 外部ライブラリの動的読み込み
- 最小限のライブラリ構成
- 依存関係が容易に解決できる
というのが、理想的だったりする。
で、そんなライブラリはなさそうなので、自分で作ることになりそうなんだけど、実際に書くとなると、どう考えても車輪の再開発なので、非常にやりたくない。(Perl プログラマの三大美徳に反する)
となると、既存のライブラリを活用できるような構造を作る必要があるか、もしくは既存ライブラリを補完する形で、自分のライブラリを作っていくことになる。
で、ループしてどのライブラリ使うかという話になる。Javascript のライブラリって、どれも一長一短だったりする気がするので、本当にどれ使ったらいいかが決まらない。
ま、実際に使ってみればいい話なんだけど、Javascript 自体滅多にコード書かないので、使う機会が無かったりする。
そういうわけで はてなで聞いてみたり したんだけど、いまいち回答がない。というわけで、誰か回答をプリーズ。
といっても、今まで、そう回答があったためしがないような。