Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MELPAランキング in 2019

grugrut
September 28, 2019

MELPAランキング in 2019

grugrut

September 28, 2019
Tweet

More Decks by grugrut

Other Decks in Research

Transcript

  1. MELPA ランキング
    in 2019
    2019.9.28 東京emacs勉強会 菊の節句
    @grugrut

    View Slide

  2. @grugrut/Masanori Mano
    都内SIer勤務
    昔はeclipseのプラグイン書く仕事、今はyamlを書く仕事をしてます
    といいつつ、パワポとExcelばっかり使ってたり。。。
    org-modeでメモとったり、日曜プログラミングでは大活躍

    View Slide

  3. これなんのグラフでしょう?
    [1] http://syohex.hatenablog.com/entry/20130425/1366878770
    [2] http://emacs.rubikitch.com/melpa-dl-ranking/
    [3] http://emacs.rubikitch.com/melpa-dl-ranking-2015/

    dash
    magit
    helm
    popup
    auto-complete
    flycheck
    s
    epl
    yasnippet
    pkg-info

    View Slide

  4. Melpaのダウンロード数ランキング

    View Slide

  5. MELPA
    ご存知Emacsのパッケージレポジトリ
    登録されているパッケージ 4332
    総ダウンロード数 98,816,443 (ここ1週間で 50万DL)
    レシピの投稿者 1956人

    View Slide

  6. 最近の状況どうなってるんだろう

    View Slide

  7. いろいろと調べてみた

    View Slide

  8. MELPAから情報をとる
    webのスクレイピングはMELPAへの負荷が高そうだったので
    https://melpa.org/archive.json
    https://melpa.org/recipes.json
    https://melpa.org/download_count.json
    を手元にダウンロードして、いろいろ処理
    今回は2019/9/22に取得したデータが基準
    https://github.com/grugrut/analyze-melpa
    にパースしたりするやつがあります

    View Slide

  9. 最新版のダウンロード数ランキング
    dash
    helm
    magit
    s
    epl
    async
    projectile
    popup
    flycheck
    helm-core

    View Slide

  10. 最近のダウンロード数の考察
    asyncが入ってきた
    helmはあいかわらず高い(ivyは46位)
    auto-completeの失速(26位に)
    companyは2015年は17位、2019年は13位とわずかに浮上
    やっぱりdash等のライブラリはみんなから参照されるから強い

    View Slide

  11. ほんとうにそうなの?

    View Slide

  12. 依存数ランキング
    MELPAに登録されたパッケージのPackage-Requiresで参照される数をカウント
    順位 パッケージ名 被要求数
    1 emacs 1965
    2 cl-lib 660
    3 dash 437
    4 s 331
    5 helm 169
    6 f 140
    7 flycheck 118
    8 org 106

    View Slide

  13. やはりdashは参照数ナンバー1

    View Slide

  14. 被依存数を多いパッケージを除いてみる
    dashのように多くから依存されるパッケージは自然とdlされてしまう
    意図して使おうとしているパッケージではないかも
    でも参照数が0だけにすると、ちょっと変えた系が漏れる
    (git-gutterとgit-gutter-fringeみたいな)
    被依存数に制限かけながら調べたらおもしろいのでは
    ということでやってみた

    View Slide

  15. 被依存が多いパッケージ除いたランキング
    被依存数 0 被依存数 1まで 被依存数 5まで 被依存数 10まで
    1 diminish diminish epl epl
    2 rainbow-delimiters rainbow-delimiters git-commit smartparens
    3 elisp-slime-nav helm-projectile bind-key use-package
    4 aggressive-indent anzu diminish git-commit
    5 neotree highlight-indentation rainbow-delimiters with-editor
    6 move-text elisp-slime-nav which-key expand-region
    7 volatile-highlight aggressive-indent ace-window bind-key
    8 auto-complete neotree exec-path-from-shell diminish
    9 evil-matchit move-text helm-projectile rainbow-delimiters
    10 fill-column-indicator helm-ag anzu which-key

    View Slide

  16. 依存関係をグラフにしてみた

    View Slide

  17. keyword
    パッケージにkeywordを入れることができる
    取得時点で設定されたキーワードは 1734
    キーワードを設定しているパッケージは 3202

    View Slide

  18. 設定keywordランキング
    順位 キーワード 設定数
    1 convenience 767
    2 tools 492
    3 languages 405
    4 lisp 169
    5 extensions 125
    6 faces 113
    7 org 98
    8 files 96
    9 helm 71

    View Slide

  19. どこにレポジトリあるの?
    GitHub買収騒動はほとんど影響なかったようだ

    View Slide

  20. starをたくさん獲得しているパッケージ
    順位 パッケージ名 star数
    1 protobuf-mode 37382
    2 google-c-style 21847
    3 kivy-mode 10111
    4 erlang 7898
    5 ninja-mode 4821
    6 cython-mode 4523
    7 magit-libgit 4144
    7 git-commit 4144
    7 magit 4144
    レポジトリの一部
    に.elがある
    →ゲタはいてる

    View Slide

  21. 目視でemacsパッケージに絞った本当のランキング
    順位 パッケージ名 star数
    1 magit 4144
    2 use-package 2790
    3 cider 2760
    4 projectile 2749
    5 helm 2587
    6 yasnippet 1980
    7 flycheck 1825
    7 lsp-mode 1815
    7 multiple-cursor 1626

    View Slide

  22. まとめ
    色々な観点でランキング作ると景色がかわっておもしろい
    とはいえ、ランキング上位は有名どころ多い
    move-text知らなかったので、知れたのよかった
    新しいのを探すなら、init.el読書会が一番!
    今日も23時から、emacs-jpのslackの#init-el-reading にて
    最近その時間寝ちゃってるので復帰せねば

    View Slide