カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

Javascriptでライブラリを作るとき何を基準にしたらいいか

概要: Javascriptでライブラリを作るとき、どのライブラリを基準(ベース)に作ったらいいか。


タイトルそのまんまな質問をはてなで聞いていたりするのだけど、 回答がいまいち集まらないので、こっちでも聞いてみる。

Javascriptの場合、何も外部ライブラリ使わずに書こうとすると、結構面倒だったり、 車輪の再開発みたいなコードを書く破目になったりする。

なので外部ライブラリ使うことになるんだけど、じゃあ、何を使ったらいいでしょうか、 ということになる。

個人的に、ライブラリ使う場合は、

  • 外部ライブラリにあまり依存したくない
  • 依存関係が簡単に解決できる
  • 必要最小限のライブラリだけをロードするようにしたい
  • なるべく汎用化して使いまわせるようにしたい

と考えていたりする。

例えばprototype.jsなんかだと、必要の無かったりする関数まで、読み込むことになったりする。 で、上記の条件に合いそうなライブラリはJSAN(:=Javascript Archive Network)とかMochikitかなと思っている。 他にも色々ありそうな気がするんだけど(何せ数が多い)、 JSAN+Mochikitという組み合わせもひとつの手と考えていたりする。

ただJSANの場合、prototypeによるビルドインオブジェクト拡張のネームスペースをどうしたらいいかとか、 あと結構導入するまでが面倒そうだとか、さらにコレが多分日本ではやらない原因なんだろうけど、 日本語の情報がほとんど無かったりとかする。他にも、パッケージの仕組みが無かったりするので、 階層の深いJSANライブラリ書こうとすると結構無駄が多いコード書くことになったりする。

とりあえず、

  • 外部ライブラリの動的読み込み
  • 最小限のライブラリ構成
  • 依存関係が容易に解決できる

というのが、理想的だったりする。

で、そんなライブラリはなさそうなので、自分で作ることになりそうなんだけど、 実際に書くとなると、どう考えても車輪の再開発なので、非常にやりたくない。(Perlプログラマの三大美徳に反する)

となると、既存のライブラリを活用できるような構造を作る必要があるか、 もしくは既存ライブラリを補完する形で、自分のライブラリを作っていくことになる。

で、ループしてどのライブラリ使うかという話になる。Javascriptのライブラリって、 どれも一長一短だったりする気がするので、本当にどれ使ったらいいかが決まらない。

ま、実際に使ってみればいい話なんだけど、Javascript自体滅多にコード書かないので、 使う機会が無かったりする。

そういうわけではてなで聞いてみたりしたんだけど、 いまいち回答がない。というわけで、誰か回答をプリーズ。

といっても、今まで、そう回答があったためしがないような。