Day 19: clfreaks
これは fukamachi products advent calendar 2016 の19日目の記事です。
今日はclfreaksについて話します。今回はライブラリではありません。
コミュニティの規模
Common Lispのコミュニティサイズは絶望するほど小さくはありませんが、決して大きくはありません。
以前、佐野さんがGitHub Awardsの世界ランクトップの総スター数を比較すればおおよそのコミュニティ規模がわかるのではないかと言っていました。スターする人の多くはそのコミュニティに属する人だと予想できるので、正確ではなくともあながち間違った指標でもないかもしれません。
この指標で行くと、Common Lispの一位は僕の3040です。
Rubyの一位はHomebrewの75968、二位がthoughtbotの59813です。Homebrewはツールなのでコミュニティ外からのスターも含まれるかもしれませんが、それでもCommon Lispの20倍〜25倍強のコミュニティサイズがあります。
最近人気のGoはDockerの59126を一位として、Google、Golang、Hashicorp、CoreOSなど有名企業が並んでいます。CLの20倍ほどのコミュニティサイズです。
Haskellはどうでしょうか。一位はjgmの9599です。他より小さいのは確かですが、これでもCLの3倍以上のコミュニティサイズです。
同じくらいの規模だと、D言語とかですね。それより小さい言語となるとStandard MLやPascalなどになります。
こう比較するとCommon Lispのコミュニティがどれほど小さいかが実感できます。
コミュニティを大きくしたい
コミュニティの規模が小さいとできることが限られてきます。代表的な問題としてはライブラリが足りないとか、あってもメンテナンスされてないとか、十分に枯れてないとか、ドキュメントがないとか、そういうことです。そういったコミュニティでは何か作ったとしても誰も見てくれなければ承認欲求も満たされません。すると作り手も増えません。ライブラリは依然足りないままという悪循環。
そういうわけで、コミュニティを大きくするという課題はCommon Lispにはずっとあると僕は思っています。
Shibuya.lisp
そういう視点から言えばShibuya.lispが2008年からずっと定期的に開催され続けているというのは奇跡的かもしれません。一度運営が入れ替わり、運営方針がガラッと変わりました。3ヶ月に1回のお祭りイベントから、毎月開催のMeetupイベントへ。参加者も順調に伸びていて、発表者も毎回3人ほどいます。当初の「発表者がいない。集めるコストが高い」という問題も解決できているし素晴らしいことです *1。
会員制クラブ「小田急CL」
自分はコミュニティ運営のようなマメなことは向いておらず、Shibuya.lispの運営メンバーに名を連ねてはいるものの全く手伝えていませんでした。
その頃、隔週くらいの頻度で自宅にCommon Lisperの友人たちを集めてハッカソンをやるということを始めました。
みんな多かれ少なかれオープンソース開発者なのでGitHubでどういうプロダクトを作っているとかはざっくりと知ってはいるのですが、それでも一堂に集まることには意味がありました。問題意識が共有できるし、苦手分野についてより詳しい人に直接質問したりできます。お互いのプロダクトを使い合うような間柄なので、もしIssueを上げるか迷っているような問題を抱えていたら相談もできます。プロダクト制作者としてはユーザーから直接意見を聞ける場でもあります。
毎回参加する顔ぶれはだいたい同じでした。僕の知り合いくらいの狭い範囲で集まっており、これも一種のコミュニティと言えるのではないでしょうか。参加するにはメンバーからの紹介が必要なので会員制クラブみたいなイメージかもしれません。
このコミュニティの名前は当初「小田急CL(仮)」でした。そのとき僕の自宅が向ヶ丘遊園駅の近くにあり、メンバーの3人が小田急沿線に住んでいたのでこの名前が(一時的に)つきました。
clfreaks
「小田急CL」に名前が決まったかと思われたある日、僕の気まぐれで名前が「clfreaks」になりました。会場(僕の自宅)が場所を移しても違和感のない名前をつける必要があること、それからださい、っていうのが主な理由でした。
そうして始まったclfreaksのハッカソンですが、僕自身にはハッカソン以外にもやりたいことがありました。
clfreaksというのはShibuya.lispと違っていわゆるクローズドなコミュニティです。つまりは、そこで得られた知見などはメンバーしか知ることができないということです。
知識がインターネットで共有されることで価値を生むということを意義としていたWebプログラマの僕としてはクローズドなコミュニティはいただけません。情報をクローズドに保つのは健全ではないでしょう。
そういうわけで解決策としてハッカソンと並行して始めたのがPodcastでした。
Podcast
まあ聴く人なんてほとんどいないと思うけど、clfreaksでPodcastやってみようぜ、ってノリで始めたPodcastだったので終始雑な感じでした。
ただ、Podcastを始めてみて発見もありました。今までGitHubやTwitterやブログなどでは伝えられなかったことが伝えられるようになっているという感覚です。
たとえば普段からCommon Lispを書いているメンバーが今何を課題と思っているのか、ってどれだけの人に伝わっているでしょうか。個々の完成物をGitHubや紹介ブログで見ることはできます。けれど、そのプロダクトがどういう背景で作られ、どういうストーリーを持って実アプリケーションに適応しうるのか、どういう優位性を持つのかなどはほとんど伝わっていないように感じます *2。
clfreaksのPodcastはそのずばり解決になっていると思っています。音声データなので聴く人は限られるかもしれませんが、まあ全くないところからは一歩進歩です。
その後Quicklisp作者のZachに拾われたりしてそれなりに反響もありました。
twitter.comI wish I understood Japanese because http://t.co/GNPb5EnHZe looks enjoyable.
— Zach Beane (@xach) 2015年2月27日
この一年はほとんどお休みでしたが、また一段落したら集まってclfreaksを開催する予定です。
おわりに
clfreaksはTumblrで運用されており、Podcastで聞いたりWebページでMP3を直接聞けたりします。詳しくは以下のURLをご覧ください。
明日のアドベントカレンダーは20日目のDexadorについてです。お楽しみに。
*1:先月、運営に主に携わってくださっていた神田(potix2)さんやκeenさんから終了のお知らせがありました。それを残念がる声もありつつ、次期の運営として手を挙げてくださっている方も複数人いらっしゃるので、Shibuya.lispというのはまだ継続する可能性が高そうです。
*2:ちなみにこのアドベントカレンダーは、個々のプロダクトの背景を語ることで全体としての僕の課題意識とストーリーを知れるのではないかという試みから続いています。なので、それぞれのプロダクトの紹介というよりも作られたバックグラウンドストーリーなどが中心の内容になっています。