今、nanashi.js てライブラリ(フレームワーク?)を作ってます。

FLOSS桜山の第八回勉強会(去年の年末開催)のライトニングトークでも多少話してきたんですが、現在、nanashi.js って名前のライブラリを作ってます。作ってます、とはいってもまだAPIを「あぁでもない、こうでもない」と考えてる段階なので公開するモノがないんですが。
とりあえず、自分の考えを整理するためにメモを。優先度の高低とか機能の要不要は考慮せずぐちゃぐちゃに書いてます。

決まってる事

検討中の事

ライセンス
  • NYSLにするかBSDライセンスにするか検討中。
    • 無難なのはBSDライセンス
    • でも、利用者に「ライセンスを書き換える」権利を明け渡したい。
      • 残念ながら、著作権表記義務が必要なライブラリを使用することが困難な仕事というもの世の中には存在しているようで…。
機能/API的な事
  • OOP
    • extend() とは違ったパターンの実装を検討中
  • Iterator
  • import とか include とか require とか use とか
  • DOM拡張
    • CSS selectorは確実に
    • XPathはどうしよう。
    • Event Listener
      • addListener()にしようか、bind()しようかとか、そういったレベルで悩み中
      • DOMContentLoaded
  • AOP的な要素
    • MochiKit.Signal風がいいのか…?
  • XMLHttpRequest関連
  • データフォーマット
    • JSON
      • JSONでSQLで…みたいなのいるんだろうか
    • XML, RSS
    • YAMLサポートはいるんだろうか…
    • PHPのserialize() とか…
  • テンプレート関連
  • Cookie関連
  • Effect関連
    • jQueryのコアに含まれてるエフェクトはやっぱ使うよなぁ
  • Drag & Drop
    • つい最近まで、Yahoo!UIやjQuery UIより軽量なDrag & Dropの実装が必要だった仕事をしていたので、それの成果を整理して出せれば。

ここまでだとライブラリの範疇なんだけど、イベントハンドラが呼ばれた後のロジックをどうするとか、とかを考えるとフレームワーク的になってくるかなぁ。Mock作るとか、DI Containerかナニカでロジックを切り換えるとか。DIはコテコテすぎるか…。
JavaScriptアプリをチーム開発してるようなトコってどうしてるんだろとか、そっちもほんとは考えたいけど。こっち側の話を発展させると、Rhinoでサーバサイドを作ってウフフ…とかというのもありえるなぁ。

その他
  • JavaScript Docletの作成
    • JsDocとjsdoc-toolkitがどうも気に食わない
    • DocTest機能がほしい(こっちが主な理由)
      • Maple4のDocTestが素敵な雰囲気なのでパクる予定

とりあえずのスケジュール

FLOSS桜山では2月末ぐらいにalpha版公開予定と言ったけど、時間たりなさそう。どこまでできるかな…。
今はDoclet/DocTestがほしくなってきたので、これから作ろうかと思うですよ。Docletって字句解析すりゃいいんだよな…。世間のDocletのコード読んでみよう…。