JavaScript ライブラリの TypyJS をオープンにしました。

今日、お盆のころからちょこちょこ作ってた JavaScript ライブラリの TypyJS をオープンにしました。
今のところ、まだまだ粗いし、ガリガリ変更とかしたいので Fork は許可してないのですが、コードは見れるし、ダウンロードもできるようにしました。

https://bitbucket.org/k_maru/typyjs

自分の趣味で作ってて、個人用のプライベートなリポジトリが欲しいなと思い bitbucket を使っていたのですが、そのうちまとまったら GitHub に移すかもしれません。

さて、このライブラリは何をしてくれるライブラリかというと、値を便利に操作するユーティリティ群です。すでに世の中にいろんなライブラリが出回ってますね。思いっきり車輪の再発明です。

なぜ、こんなものを作ろうと思ったのかを順番に書いてみます。まぁ、とは言ってもある意味で「興味・趣味」ってのが一番大きな理由なのですが・・・。

世の中に出回っている JavaScript ライブラリを大きく分けると以下の二つに分かれます。

  • フルスタックのライブラリ
  • 機能特化のライブラリ

フルスタックのライブラリは Ext JS とか有名ですね。ここらへんのフルスタックのライブラリは、とっても便利で強力な機能とかを持ってるんですが、如何せんそれ以外が使えなくなってしまう。ちょっと外れたことをしたいと思ったらかなり頑張らないとダメ。なのでほとんど使ったことがないです。

機能特化のライブラリは有名なのが多いですね。古くは Prototype から始まって、デファクトスタンダードとなった jQuery とかとかとか。 Microjs とかでよく探したりします。

自分でアプリケーションを作るときは、多くの場合 jQuery は暗黙の了解な勢いで使ってます。ただ JavaScript で操作したい内容ってのは DOM と オブジェクトなのですよね。で、 jQuery は基本的には DOM の操作用のライブラリです。で、オブジェクトの操作は何を使うかなんですね。ここなんですね。悩ましいのは。

まぁ、とりあえずこちらもよく使われている underscore.js を使うとして、でもこれってコレクションの操作とかちょっとしたユーティリティが大半です。なので足りないので文字列操作に underscore.string とか、日付操作は  Moment.js 、あれ?数値操作どうしようとか。とかとか。

なので、以下のような形(右下のオブジェクト操作の部分がワラワラしている)になってるのが現状だと思ってます。

f:id:k_maru:20121208005636p:plain

この部分を満たしてくれるライブラリもあるにはあります。個人的にいい感じなのは以下ですかね。

ただ、これどちらも prototype を拡張するスタイルなんですよね。まぁ、いまのご時世そこまでプロトタイプ汚染がどうのとかって口うるさく言うのもどうかと思うのですが、まだちょっと早いかなぁって気もしてます。 Object.create とかの ES5 がほとんどの世界になったら気兼ねしないんですがね。早く来へんかなぁ。

まぁ、グダグダ書きましたが、オブジェクトの操作の部分を単一で、かつ prototype 拡張してないのが見つからなかったので作った。っていうのが理由です。


また、次回、簡単な使い方を書きます。そのうちドキュメントとかも書こうと思ってるのですが、いつになることやら。