SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
Analyze CPAN,
Analyze Community


                 Kenichi Ishigaki
                    (@charsbar)
      Fukuoka Perl Workshop #22
                    Oct 13, 2012
5年間続けて
きたLTの裏話
発端
機械的に抽出できるように


 Lingua::JA::Romaji::Valid
 Acme::CPANAuthors::Japanese
5年間の軌跡
YAPC::Asia 2008
   1 LUSHE (2004-)
   2 ISHIGAKI (2005-)
   3 TAKERU (2007-)
   4 TYPESTER (2005-)
   5 ZIGOROU (2005-)
   6 BOKUTIN (2007-)
   7 HIO (2003-)
   8 DMAKI (2003-)
   9 NEKOKAK (2005-)
  10 YAPPO (2005-)
YAPC::Asia 2009
   1 HIROSE (new) (2006-)
   2 TOMITA (new) (2006-)
   3 GJUJI (new) (2008-)
   4 MIKI (new) (2007-)
   5 LUSHE
   6 ISHIGAKI
   7 TYPESTER
   8 TAKERU
   9 MASAKI (new) (2006-)
  10 BOKUTIN
  10 DANJOU (new) (2005-)
YAPC::Asia 2010
   1 HIROSE
   1 MORIYA (new) (2009-)
   3 MIKI
   4 SATOH (new) (2008-)
   5 CHIBA (new) (2007-)
   6 RINTARO (new) (2007-)
   7 TOMITA
   8 LUSHE
   9 ISHIGAKI
  10 TYPESTER
YAPC::Asia 2011
   1 XAICRON (new) (2009-)
   2 BAYASHI (new) (2008-)
   3 MORIYA
   4 SATOH
   5 TOMITA
   6 CHIBA
   7 TYPESTER
   8 MIKI
   9 LUSHE
  10 KAZEBURO (new) (2005-)
YAPC::Asia 2012
   1 XAICRON
   2 PAWAPAWA (new) (2011-)
   3 BAYASHI
   4 MORIYA
   5 SATOH
   6 MATTN (new) (2007-)
   7 TOMITA
   8 TYPESTER
   9 CHIBA
  10 YAMAMOTO (new) (2006-)
10 YAMAMOTO
    (new)
毎年新しい方を
紹介できている
コミュニティは
順調に成長…
 している?
別の視点からも
 確認してみる
日本人のCPAN Authorは
   増えている
  2000: 17    2007: 193
  2001: 25    2008: 222
  2002: 30    2009: 249
  2003: 44    2010: 274
  2004: 58    2011: 294
  2005: 101   2012: 311
  2006: 152
新しい地域pmも続々と
   1999: Kyoto.pm
   1999: Tokyo.pm
   2000: Kansai.pm
   2003: Shibuya.pm
   2007: Fukuoka.pm
   2008: Yokohama.pm
   2009: Kushiro.pm
   2010: Hokkaido.pm
   2010: Nagoya.pm
   2010: Kamakura.pm
   2011: Sendai.pm
   2011: Niigata.pm
2009: Okayama.pm
2011: Hachioji.pm
2011: Perl Beginners
2012: Perl 入学式
2012: Chiba.pm
????: Namba.pm
????: Nara.pm
????: Okinawa.pm
????: Tachikawa.pm
????: Kokusaitenjijoumae.pm
一見順調
もう少し細かく
見てみると…
新規CPAN Authors数(日本)
60



                                                        51
50


                                                 43
                                                               41
40




30                                                                    29
                                                                             27
                                                                                    25


                                                                                           20
20
                                                                                                  17

                                   14     14

      11
10                   8
              6
                            5



0
     ~2000   2000   2001   2002   2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
New CPAN Authors (Worldwide)
1000
        939

 900

                                                                                798    785
 800                                  776    784           778
                                                                  745                         758
                                                    727                  717
 700
                             647
                                                                                                     616
                      591
 600


 500

               398
 400


 300


 200


 100


   0
       ~2000   2000   2001   2002     2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
日本人作者のリリース数
2500




                                                                                     2116
                                                                              2041
2000
                                                                                            1841



                                                                       1558
1500



                                                                1147

                                                         1020                                      1020
1000




                                                  569

 500

                             295    291
                      245
                                           173

        41     47
   0
       ~2000   2000   2001   2002   2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
Num of Releases (Worldwide)
25000


                                                                                             22033   21734
                                                                                     20987

20000
                                                                             18464


                                                                                                             16435


15000                                                                14482

                                                             12716
                                                     12356
                                             11272
                                     10063
10000


                              7455
        6961

                       5591
 5000
                3441




    0
        ~2000   2000   2001   2002   2003    2004    2005    2006    2007    2008    2009    2010    2011    2012
アクティブな作者数
120



                                                                      104
                                                                             102
100
                                                                                    95
                                                               91                          92
                                                                                                  87

                                                        79
80




60

                                                 51



40


                                          28
                                   26


20                   17     17


        8      9



 0
      ~2000   2000   2001   2002   2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
Active Authors (Worldwide)
1800

                                                                                     1650   1667
                                                                              1625
1600                                                                   1568
                                                                                                   1501
                                                                1441
1400                                                     1376
                                                  1298
                                           1255
                                    1201
1200


                             990
1000



 800                  755

        625
               590
 600



 400



 200



   0
       ~2000   2000   2001   2002   2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
リリース数とCPAN Authorになった年の関係(国内版)
2500




                                                                             78
2000                                                                  94     140
                                                                                                  2012 (12/17)
                                                                                    64            2011 (14/20)
                                                                                    94
                                                                      526    412                  2010 (17/25)
                                                                                    122
                                                                                                  2009 (19/27)
1500                                                                                              2008 (25/29)
                                                               247           53
                                                                      119    86     351           2007 (33/41)
                                                                                                  2006 (35/51)
                                                               164    196           45
                                                                                    67            2005 (36/43)
                                                               106
                                                        201                                       2004 (8/14)
1000                                                                                       54
                                                 163                         843                  2003 (12/14)
                                                        78                                 128
                                                                                            14    2002 (5/5)
                                                                      674                   74
                                                        339    639                  782           2001 (8/8)
                                                 376                                       119
                                                                                            31    2000 (5/6)
                                                                                            80
 500                                                                                              ~2000 (8/11)
                                          305
                                                                                           372




   0
       2000   2001   2002   2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
アクティブな作者数とCPAN Authorになった年の関係(国内版)
120




100
                                                               19     16                          2012 (12/17)
                                                                             15     10            2011 (14/20)

                                                                                           12     2010 (17/25)
80
                                                                      15
                                                        29                          12            2009 (19/27)
                                                               22            10
                                                                                            9     2008 (25/29)
                                                                                     8            2007 (33/41)
                                                                      15     11             5
                                                 32
60                                                                                                2006 (35/51)
                                                                                    11      8
                                                               17                                 2005 (36/43)
                                                        16                   10
                                                                                            8     2004 (8/14)
                                                                      15
                                                                                    10            2003 (12/14)
                                                                             13             7
40                                                                                                2002 (5/5)
                                          29                                         9
                                                 25     24     25                           9     2001 (8/8)
                                                                      23                          2000 (5/6)
                                                                             24     18            ~2000 (8/11)
20                                                                                         16




 0
      2000   2001    2002   2003   2004   2005   2006   2007   2008   2009   2010   2011   2012
結論は評価の仕方次第
   すでに十分成長しただけ?
   みんなが飛びつけるようなネタが枯渇?
   BabyFacebook?
   言語成分の減少?
   そもそもCPAN Authorが増える必要は?
このような分析が必要な理由

   どこに注力すべきかのヒントになる
   イベントなどの見積もりがより正確に
   外部への営業資料
   求人・求職資料
   モジュールの選定などのよすがにも
Mooseがどのくらい
使われているかを
   調べてみる
CPANTSの
      データベース
      を落としてくる
http://cpants.charsbar.org/static/cpants_all.db.gz
スキーマを調べる

$ sqlite3 cpants_all.db
sqlite> select * from sqlite_master;
データを見てみる

sqlite> .mode line
sqlite> select * from prereq limit 1;
カウントしてみる

sqlite> select
count(distinct(dist)) from
prereq where requires =
'Moose';
ユーザ数を調べてみる


sqlite> select count(distinct(d.author))
from prereq as p, dist as d where
p.requires = 'Moose' and p.dist = d.id;
日本人のID一覧

$ perl -MAcme::CPANAuthors -e 'print join ",", map
{qq{"$_"}} Acme::CPANAuthors->new('Japanese')->id'
日本人のユーザ数を
  調べてみる
sqlite> select
count(distinct(d.author)) from
prereq as p, dist as d, author as a
where p.requires = 'Moose' and p.dist
= d.id and a.id = d.author and
a.pauseid in (...);
Distributions That Required ...
1000

                                                                                                                 918
 900
                                                                                              854


 800

                                                                                                                                    703
 700

                                                                           614
 600
                                                                                                                                                 Moose
                                                                                                                                                 Mouse
 500
                                                                                                                                                 Any::Moose
                                                                                                                                                 Moo
 400                                                                                                                                             Class::Accessor::Fast


                                                        283          294
 300
                                                                                        260
                                                  236
                                                                                                           188
 200                                                                                                                          164
                                154
                                                                                                                    111                  116
              103                                                                                100              103
                                                                                                                                           87
 100                                  67                                                        65                                      74
                                                                             54                                          52           58
                    18                                    24
                                                                                                       4
   0
       2005              2006              2007               2008               2009               2010               2011               2012
Authors Who Required ...
350
                                                                                                              326



300
                                                                                           285
                                                                                                                                 269


250


                                                                        214

200                                                                                                                                                Moose
                                                                                                                                                   Mouse
                                                                                     160                                                           Any::Moose
                                                                  147                                                                              Moo
150
                                               127                                                      129                                        Class::Accessor::Fast
                                                                                                                           121

                              96                     100
100

                                                                                                                                              68
             62                                                                                                   63
                                                                                               53               52                   4851
50                                                                                           40                                    40
                                   29                                     29
                                                                                                                      24
                  14                                   12
                                                                                                    3
 0
      2005             2006             2007               2008               2009               2010               2011               2012
依存ディストリビューション数(国内版)
90

                                                    83

80



70
                                   65


60


                                                                        50
50                                                                                                                                    Moose
                                                                                                                                      Mouse
                                        42
                                                                   39                       38                                        Any::Moose
40                     37
                                                                                                                                      Class::Accessor::Fast
                                                         32                                                     31
                                                              29                       28
30                                                                                                    27
                                                                                  26

                                                                             21                            22
20                                                                                                                       17

                                                                                                 12                           13 12
            9
10
                                                                                                                     6
                                             4

0
     2005       2006        2007             2008             2009                2010                2011               2012
依存作者数(国内版)
45

                                                    41
40



35
                                   33

                                                                       30
30

                                                                                          26
25                                                                                                                             Moose
                                                                                                                               Mouse
                       20                                                                                                      Any::Moose
20
                                                                                                                               Class::Accessor::Fast
                                                                                                           17
                                        15                        15
15                                                       14
                                                                                     13
                                                                                12
                                                                                                   10 10
10                                                            9             9                                              9
                                                                                                                    8 8
                                                                                               7
            5
5
                                             3                                                                  3


0
     2005       2006        2007             2008             2009              2010               2011             2012
観測できること
 海外ではすでに15%程度のモジュールが
  Mooseを利用
 海外ではアクティブユーザの2割がMoose
  を利用
 Mooseの重さに耐えられなくなってきた
  ユーザはMooへ移行中
 国内では完全に退潮、代替物への置き換
  えもあまり進んでいない
情報源
CPAN
 http://cpanmetadb.org/
 CPANDB
BackPAN
CPAN Testers

 http://devel.cpantesters.org/
CPANTS

 http://cpants.perl.org/
ORDB
   ORDB::CPANUploads
   ORDB::CPANMeta
   ORDB::CPANRT
   ORDB::CPANTS
metacpan API

 https://github.com/CPAN-API/cpan-api/wiki/Beta-API-docs
Acme::CPANAuthors
 YAPC / Act
 nntp.perl.org
 ATND
実装例
   http://stats.cpantesters.org/
   http://deps.cpantesters.org/
   http://matrix.cpantesters.org/
   http://changes.cpanhq.org/
   http://ali.as/top100/
   http://acme.cpanauthors.org/
   http://cpants.perl.org/
注意すべきこと

 個人情報の扱い
 情報源の負荷
 他言語との比較
Questions?
Thank you

Mais conteúdo relacionado

Mais de charsbar

萬國之津梁
萬國之津梁萬國之津梁
萬國之津梁charsbar
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codecharsbar
 
2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerlcharsbar
 
perl language update
perl language updateperl language update
perl language updatecharsbar
 
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPANWhat you need to remember when you upload to CPAN
What you need to remember when you upload to CPANcharsbar
 
On UnQLite
On UnQLiteOn UnQLite
On UnQLitecharsbar
 
typemap in Perl/XS
typemap in Perl/XS  typemap in Perl/XS
typemap in Perl/XS charsbar
 
Annual Report 2012
Annual Report 2012Annual Report 2012
Annual Report 2012charsbar
 
DBD::SQLite
DBD::SQLiteDBD::SQLite
DBD::SQLitecharsbar
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolscharsbar
 
CPANTS 2012
CPANTS 2012CPANTS 2012
CPANTS 2012charsbar
 
Revisiting ppm
Revisiting ppmRevisiting ppm
Revisiting ppmcharsbar
 
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみようMojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみようcharsbar
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンスcharsbar
 
關於perl的 文件翻譯
關於perl的文件翻譯關於perl的文件翻譯
關於perl的 文件翻譯charsbar
 
Practical Bug Reporting
Practical Bug ReportingPractical Bug Reporting
Practical Bug Reportingcharsbar
 
Top Tens of 2008/2009
Top Tens of 2008/2009Top Tens of 2008/2009
Top Tens of 2008/2009charsbar
 

Mais de charsbar (17)

萬國之津梁
萬國之津梁萬國之津梁
萬國之津梁
 
Better detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 codeBetter detection of what modules are used by some Perl 5 code
Better detection of what modules are used by some Perl 5 code
 
2017年夏のPerl
2017年夏のPerl2017年夏のPerl
2017年夏のPerl
 
perl language update
perl language updateperl language update
perl language update
 
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPANWhat you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
 
On UnQLite
On UnQLiteOn UnQLite
On UnQLite
 
typemap in Perl/XS
typemap in Perl/XS  typemap in Perl/XS
typemap in Perl/XS
 
Annual Report 2012
Annual Report 2012Annual Report 2012
Annual Report 2012
 
DBD::SQLite
DBD::SQLiteDBD::SQLite
DBD::SQLite
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
 
CPANTS 2012
CPANTS 2012CPANTS 2012
CPANTS 2012
 
Revisiting ppm
Revisiting ppmRevisiting ppm
Revisiting ppm
 
Mojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみようMojolicious::Liteを使ってみよう
Mojolicious::Liteを使ってみよう
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンス
 
關於perl的 文件翻譯
關於perl的文件翻譯關於perl的文件翻譯
關於perl的 文件翻譯
 
Practical Bug Reporting
Practical Bug ReportingPractical Bug Reporting
Practical Bug Reporting
 
Top Tens of 2008/2009
Top Tens of 2008/2009Top Tens of 2008/2009
Top Tens of 2008/2009
 

Analyze CPAN, Analyze Community