以前からBestGems.orgでやってみたかったことに、数カ月や半年といった長い期間でダウンロード数を集計して、その期間中に躍進したGemを調べる、というのがあった。 これを、ここ何日かでようやく実装してサイト上からも閲覧できるようにしたので、この場で宣伝しておこうと思う。 以下は2013年下半期(7月1日から12月31日)の「レポート」である。
重視しているのは期間中のダウンロード数で、このダウンロード数で順位付けしている。 これに加えて、集計期間のはじまりの合計ダウンロード順位と、おわりの合計ダウンロード順位、さらにその順位の差分を表示している。 この差分が大きく順位をあげたGemが集計期間中に躍進したGemである。
上位をざっと眺めても思ったより順位の変動が少ないことがわかる。 この傾向はダウンロード数が膨大になる上位ほど顕著で、下位になるにつれて順位の変動は激しくなってゆく。 だいたい100位くらいまで眺めたので、その中でも特に目を引いたGemをいくつかピックアップしてみたい。 キリ良く5選で。 これがぺけみさおが選ぶ2013年下半期で躍進したGem 5選である。
第46位 minitest
minitest
は期間中に300万回以上ダウンロードされ、その順位は46位となっている。 minitest
はRSpecと双璧をなすテスティングフレームワークだ。 期間中に合計ダウンロード順位を109位から76位まで33位分伸ばした。 これはこの近辺の順位のGemとしては突出した伸びである。 まだ合計ダウンロード順位と開きがあるので、今後さらに順位を伸ばしていくものと考えられる。 minitest
が順位を伸ばした原因は、Ruby 1.9で標準添付のテスティングフレームワークとなったからだろう。
ちなみにRspecはどうかというと、rspec-core
が360万ダウンロードされて、35位となっている。 ダウンロード数で比較すると、未だRSpecの方が優勢である。 Rspecの特徴は既に成熟していて合計ダウンロード順位と期間中のダウンロード順位の差が少ないこと。 この期間中に合計ダウンロード順位は36位から35位へ1位分の移動に留まった。
第51位 atomic
atomic
は期間中に283万回ダウンロードされ、その順位は51位である。 これは知らないGemであった。 サマリを訳すと“JRuby、RubiniusそしてMRI向けのアトミック(原子性)のリファレンス実装”とのことだ。 atomicは期間中に安定して高いダウンロード数を維持し、合計ダウンロード順位を397位から128位まで269位分も伸ばした。 本日時点で、日別ダウンロード順位は46位なので、今後まだまだ伸びるGemといえる。
第55位 thread_safe
どうやら50位前後には躍進したGemが集中しているようだ。 thread_safe
は期間中に255万回ダウンロードされ、その順位は55位となっている。 thread_safe
はスレッドセーフなコレクションクラス(ArrayやHash)と、スレッドセーフに関連したユーティリティを提供するGemである。 thread_safe
もやはり期間中に一貫して高いダウンロード数を維持し、合計ダウンロード順位を524位から147位まで、実に377位分も伸ばした。
第57位 mini_portile
これも知らないGemであった。 mini_portile
は期間中に252万回ダウンロードされ、その順位は57位となっている。 サマリを無理やりに訳すと“最もシンプルな開発者向けのport風ソリューション。依存するライブラリに対抗して失敗なくコンパイルする標準的でシンプルな方法を提供する。”とのこと。うーん、うまく訳せない…。 ともかく何かが何かに依存する場合、それをレシピとして記述して、失敗なくコンパイルできるようにするツールのようだ。 mini_portile
は合計ダウンロード順位を697位から154位まで543位も伸ばした。 これは今回取り上げるGemの中で最大の伸びである。
第96位 sprockets-rails
sprockets-rails
は期間中に160万回ダウンロードされ、その順位は96位となっている。 これはわかりやすいGemだ。その名の通りRails 4.xにSprocketsを組み込むGemのようだ。 SprocketsはJavaScript等をサーバサイドでプリプロセッシングする仕組みである。 sprockets-rails
は合計ダウンロード順位を630位から205位まで425位伸ばした。