Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

これなんのグラフでしょう? [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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

いろいろと調べてみた

Slide 8

Slide 8 text

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 にパースしたりするやつがあります

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

ほんとうにそうなの?

Slide 12

Slide 12 text

依存数ランキング 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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

被依存が多いパッケージ除いたランキング 被依存数 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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

設定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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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がある →ゲタはいてる

Slide 21

Slide 21 text

目視で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

Slide 22

Slide 22 text

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