八発白中

技術ブログ、改め雑記

Common Lispのコミュニティ事情

初対面の人と二人きりで話すという機会はあまりない。

「普段どんなお仕事をされてるのですか」

──もし訊いても良ければ。そう遠慮がちに言い添えた彼は、コタツを挟んで斜め向かいから好奇心旺盛な目でこちらを見ていた。

プログラマですよ」

そう答えてから、それが十分な情報にならないことに気づいて、「Webアプリケーションとかを作ります」と慌てて付け加えた。とはいえ、それでも大した情報量ではない。

彼はそれを聞いて感心したような表情を作ってからもまだ何か僕の言葉を待っているような様子だったが、僕がそれ以上は口にしないのを感じ取ると言い訳するように言った。

「いや、平日に急に三連泊なんて珍しくて」

その日唐突に山口県萩市を訪れることにしたのに大した理由があったわけでもない。この町は吉田松陰高杉晋作のふるさととして知られる。今も古い城下の残るちょっとした観光地だが、日本海側に面しており新幹線の停車駅からも空港からのアクセスにも恵まれず、訪れる人はそれほど多くない。いつか行こう行こうと思ってなかなか機会を得なかった土地だ。心が決まったのがたまたまこの三月だったというだけだった。普段から仕事は自宅でしているし、自宅に限らずどこにいてもリモート勤務ができる。数日の間、萩でする仕事も悪くあるまい。

「普段から自宅で仕事していますからね。実際どこにいたっていいんです」

東京のIT企業でもまだ浸透しているとは言えないリモート勤務について、この観光地でゲストハウスのオーナーをしている彼に理解が及ぶかという不安もありつつありのままを言ってみた。しかし、意外にも彼は納得したようだ。

「知人にもそういう人が何人かいます。プログラマでね。物を作ってメールで送ればいいんだそうです」

彼にはさまざまな「知人」がいるようだ。考えてみれば自然なことだ。ゲストハウスは多くの人が訪れて一夜して去っていく。宿泊客同士はなんらかの偶然で一時を共有する。多くの人の体験や思想が集って拡散していくハブとしての役割をゲストハウスはしており、各地に広範なネットワークを作っている。彼自身も旅好きのようで、冬の休みに観光に行く際は各地のゲストハウスを訪れて情報を得たりしているらしい。自分には全く馴染みのない世界である。

その日は僕の他に宿泊客はいなかった。障子を通して中庭の柔らかい光が居間に広がっている。平日の昼にゲストハウスに人がいる、というだけで珍しいのかもしれない。彼は視線を手元のPCに移しながら尚もひとりごとのように言った。

「それなら、ほとんど人と会う必要もないでしょう」

彼の意図するところがわからなかったが、僕はそれに答えて言った。「まあ、たまに決まった人とは会いますけれどね」

決まった人。顔が浮かぶのはよく会うCommon Lisperたちだった。「たとえばこの前の週末には友人を僕の家に呼んで、話をしたりお互いのプログラムについて意見を言い合ったりしました」

ほう。彼は顔を上げて意外そうに言った。「プログラマもそのように一箇所に集まったりするんですね」

プログラマといえば日がなコンピュータに向き合って、人にはあまり興味がないというステレオタイプが彼の頭にあるのかもしれない。もしくはすべてをWebで完結すればいいという先進的な人種だと思っているのだろうか。いずれにしても、正解からは遠い。僕は彼の方に向き直り、ゆっくりと言葉を選びながら言った。

プログラマというのは世間で思われている印象とは違って、存外に社会的な生き物なんですよ」

僕は周りで日常的に為されているオープンソース活動について話をした。プログラムを書くときは大抵一人だ。けれど、作ったプログラムを他人にも使ってもらいたいと思う。それを公開する。そこで賞賛や批判を得る。そうすると、それを一緒に改善しようという動きが出てくる。そういった独特の社会性が、プログラマの間では構築されている。

どれだけ伝わったかはわからない。けれど、彼はそれを静かに、ところどころで相槌を打ちながら聞いていた。

「積極的な人だと週末などに勉強会のようなものを開いて、新しい技術を一緒に学ぼうという活動もありますよ」

もちろん、個人的にはむやみに人に会うことは好きではありませんがね、と僕は少し笑って見せた。

今思えば彼にとって不思議だったのは、仕事では人に会わないという選択を良しとしておきながら、週末にはわざわざ人に会おうという二面性にあったのだと思う。だとすればその疑問には全く答えられていないわけだが、彼もそれ以上詳しく訊こうとはしなかったのでうやむやのままである。

Shibuya.lisp

とはいえ、ここ数年はあまり積極的にいろんな勉強会に参加することはしなくなった。唯一渋谷のLispコミュニティ「Shibuya.lisp」にだけはできるだけ参加し、まとまったネタがあれば発表するようにしている。

Shibuya.lispPerlコミュニティの「Shibuya.pm」にインスパイアされてhigeponさんやg000001さん、naoya_tさんを中心に作られたLispコミュニティだ。Common Lispに限らずLisp方言を全般に扱う。

当初は「Technical Talk」という、聴衆を多く集めてLispに関する発表を皆で聴くというスタイルのイベントを数ヶ月置きに開催していたのだが、最近では毎月開催の「Meetup」という小規模なものをメインに運営されている。

「Meetup」は毎月一度、平日の夜に渋谷のサイバーエージェントの会議室を借りて開催される。参加者と発表者はWebで募集され、毎回二〇人ほどが参加する。独特なのは月替りでテーマとなるLisp方言が変わるという趣向だ。Common LispSchemeClojureが順繰りにしばらく回っていたのだが、今年一月を最後にSchemeの参加者不足によりScheme回はスキップされており、今はCommon LispClojureが交互にテーマに選ばれている。

小規模ながらUstreamでの同時配信と、開催後の録画の公開も行っており、この点は非常に意欲的だ。これから参加しようか迷っている人はまずはShibuya.lispのWebサイトを見てみることをお勧めする。

知らない人も多いかもしれないが、実はShibuya.lispの運営は数年前にすっかり入れ替わっている。Technical Talkの定期開催も途絶えて二年ほど経った頃、g000001さんの提案により運営の見直しがなされたときに運営を担っていた人々は解散した。それと同時に、Shibuya.lispの継続を望む人々が手を挙げ、新たに第2期Shibuya.lisp運営チームが組織された。今Shibuya.lispを運営しているのはその人たちである。

新しい運営の最初の仕事はコミュニティの運営方針を考えることだった。今までの運営チームと同じである必要はないし、メーリングリストには新しいメンバーでできそうな意欲的なアイデアがいくつか挙げられていた。が、当然ながらそれらの方向性は、考えたメンバーによってバラバラだった。

メーリングリストで手を挙げただけの、互いに顔を合わせたこともない人々で話をまとめるのは難しい。特に、これからの運営どうしましょうかね、といった曖昧な内容をメールのやり取りだけでまとめるのは至難だろう。そこでまずは、新運営陣の顔合わせも兼ねて渋谷で対面のブートストラップミーティングを開くことになった。そのときは僕も新運営の一人として参加していた。

そのミーティングの席で僕はこんな発言をしたのを覚えている。

「そもそもShibuya.lispが何を目的として存在するのかを考えなくちゃいけないんじゃないですか」

単にイベントを開催するにしても、なぜ、というのが明確でなければいずれまた目的を見失う。Shibuya.lispは何かの手段であって、目的ではないんじゃないか、と。

僕のその言葉に一同黙り込んだ。さあ、Shibuya.lispをやる目的とは何だろうか──。

そのとき前運営の立場として参加していた佐野さんが言ったことは、図らずも新しい運営方針を決定付けたものかもしれない。

──「理由はそのコミュニティに集まった人々で作ればいいことで、我々はただその箱を用意すればいいんじゃないかな。だとすれば、『続ける』ということも十分目的になるよ」

そうして、今はTakehiko Nawataさん、Katsunori Kanda (potix2) さん、κeenさんを中心に「Lisp Meetup」が二年半の間、毎月続いている。東京のLispコミュニティは彼らに支えられている。

ELS 2015 @ London, UK

話は変わって、今年の四月にロンドンで「ELS (European Lisp Symposium)」が二日間に渡って開催された。僕は登壇者の一人として初参加、佐野さんは常連参加者の一人として日本から参加した。

ELSはヨーロッパのLisp方言全般のコミュニティだ。一年に一度、大学の講堂やホテルの一室を借りてイベントを開催し、ヨーロッパのさまざまな国から人々が集まる。共通言語は英語だ。

世界規模のイベントと言えば、数年置き開催の「ILC (International Lisp Conference)」というものもある。こちらは北米での開催が多いが、「International」と冠していることからも分かる通り、特に開催大陸が決まったものではない。二〇〇七年はケンブリッジで、二〇一二年には京都でも開催された。

日本からの参加者として見ればどちらも遠い「海外カンファレンス」ではあるけれど、ヨーロッパのコミュニティはILCとは参加者の顔ぶれや雰囲気は異なる。ELSはILCよりも若い参加者が多く、発表もアカデミックなものより実務寄りのものが目立つ。参加者もELSのほうがいくらか多いように見えるが、これはチケット代やビザの取得のしやすさの違いもあるかもしれない。

余談だが、以前は「ECLM (European Common Lisp Meeting)」というCommon Lisp限定のヨーロッパコミュニティもあった。しかし、種々の事情によりここ二年開催されなくなっており、こちらのイベントには僕は一度も参加したことはない。運営を担っていた人が抜けたこともあって、今後の開催も期待はできない。

海外の技術イベントに参加するときに興味深く思うのは、トークの間にある「休憩 (Coffee Break)」だ。二時間置きに三十分の休憩があるという具合で、その時間は皆席を立って思い思いの人と話をする。廊下に出るとコーヒーポットやクッキーが並ぶ。この休憩は文字通り休憩という意味もあるが、交流という意味が強い。登壇者に聞きたいことがある場合はこのタイミングでつかまえる。

https://twitter.com/meymao/status/590459858199130112/photo/1

一日目の最初はQuicklispの作者として知られる「Zach Beane」のKeynoteスピーチで始まる。「Quicklisp: On Beyond Beta」というタイトルで、Quicklispの概要と、プロジェクトのこれからについての話だった。

そのトークの中で意外にも彼は日本のコミュニティについて言及した。

日本語圏のCommon Lispコミュニティは本当に盛況のようで、Clack、qlot、fast-http、optimaなど多くの素晴らしいプロジェクトが見られる。 There also seems to be a real boom in the Japanese-speaking Common Lisp community, and I see some of the effects with great projects like Clack, qlot, fast-http, optima, and many others.

── els-london-2015/script.txt

敢えて彼が特別に「日本」について言及したのは、北米に住む彼にとっても、またおそらくヨーロッパから集まった聴衆にとっても、「日本」という国の人々の活動が意外で馴染みのない場所からのコントリビューションだと見えるからかもしれない。

その後の休憩で、佐野さんと共に、Zachと話す機会を得た。と言っても、会話はほとんど佐野さんに任せて、僕は隣に立っていただけなのだけど。

話は日本のCommon Lispコミュニティについてだ。彼は自身のトークで日本のコミュニティは「盛況」だと言及した。ヨーロッパに招待スピーカーとして登壇するCommon Lisperの彼にとって日本のコミュニティはどのように見えているのか。

──日本語が読めないからよくは分からない。ただ、日本人が作ったCommon Lispライブラリを多く見るから。

Tokyoという場所

日本のCommon Lispコミュニティについて考えると、Common Lispプロダクトを作っている日本人の多くは東京近郊に集中しており、Lisp Meetupで作者本人と出会うことも多い。これは東京に人口や企業の多くが集中しているという日本の地理的事情が無関係ではないだろう。

数年前に京都に住んでいたときに「Kyoto.lisp」というコミュニティを立ち上げようとした。しかし、京都の場合は近郊に人材が足りなさすぎた。初回は良かったが、二回目からはぐんと参加者の数も減った。最後には参加者も発表者も、兵庫や愛知、東京からの参加者を入れてようやく一〇人足らずという有り様だった。あるときその数少ない参加者の大学生から、東京の企業に就職が決まったので四月から参加できません、と聞いたときには東京という土地の引力に眩暈がしたものだ。その後コミュニティは運営に携われる人も見つけられず、数度のイベントを開いたきり続かずに終わってしまった。

GitHubで開発し、メールやTwitterでやり取りができるとはいえ、実際に会って話すことによるメリットはまだ確実にある。お互いに情報を交換し、問題意識を共有し、家に帰って形にする。このサイクルが東京のコミュニティではうまく回り、結果として海外カンファレンスで言及されるほどの存在感を得ているのだと思う。

僕は東京を住みやすい街ではないと思うけれど、人に会うということに関してはこの街ほど魅力的な場所はない。コミュニティの存在に感謝しつつ、今日も一人プログラムを書く。


この記事の下書きを読んで意見をくれた友人のMasatoshi Sanoと妻の@meymaoに感謝します。