Line 1: Error: Invalid Blog('by Esehara' )

または私は如何にして心配するのを止めてバグを愛するようになったか

>> Zanmemo

あと何かあれは 「esehara あっと じーめーる」 か @esehara まで

Vim Conference 2013とオープンソースの精神

 Vim Conference 2013にお邪魔。

 基本的に、自分は何か思いついたことがあるとすぐに「何か発表させてくださいよー」ということで、LT枠か、発表者枠でネタを提出するわけですが、今回も「じゃあEmacsのevil-modeの話をするわ」という変化球を投げたところ、あっさりキャッチされてしまったので、発表させていただきました。少々準備不足の点もあって、退屈であった点は幾つかあったと思います。というわけで、自分のスライドは下にあげて、今回は自分の話を飛ばして話させて頂ければと思います。

オープンソースの精神

 自分が、そもそもエンジニアの世界に入ろうとしたきっかけというのが、オープンソースというありかたがとてもキラキラしていたから、というのは、実は一つあります。オープンソースというのは、基本的には「自分が必要だから」「自分が楽しいから」書かれるものですが、どうせ自分で書いて、それが企業のミッションステートであるとか、あるいは黙秘するべきものでないのなら、公開すればみんなの役に立つかもしれないよね、という理念を感じとったという側面は一つあると。

 また「自分が修正しようとしている問題って実は他人も同じように抱えている問題かもしれないよね」という部分がある。それが個別に動いていたら、各人が個々のものを修正しているだけの状態であって、一つのオープンソース・プロダクトとしては全く成長しない。しかし、もし個々の修正が、ちゃんと集約されるとするならば、それが一番いい。それが全部ではないけれども、ソースをオープンにすることのキモだと思っている。

 とはいえ、オープンソースだからといって、「これは問題じゃないの」とその人が思っていても、実は他の人にとっては全く問題ではなかったりする可能性がある。例えば、Vimには:help developmentというコマンドがあって、それをみると、明確にVimが目指すべきゴールが語られていたりする。そこにあてはまらないものは、本人が「問題だ」と思っていても「いや、そもそもそれはVimの目的じゃないし」ということになる。

 少なくとも、今日の発表者の方二人がパッチの話をするというのは、Vimが何によって支えられているかということがよくわかるし、つまり、それはオープンソースの精神と実践なんだと思った。

 例えば、How to suggest new features for Vimのスライドは、確かにGitHubでpull requestは美談的な話になるものの、もっと実践的な泥臭い話だ。泥臭いというのは、要するに「パッチの通し方」という話である。問題が曖昧なままの状態のやつは、パッチとして送らない。なぜならそれは上手く問題の所在を伝えることができないからだ。現状として書かれたパッチはkoron / vim-kaoriya-patches — Bitbucketで見られるが、その中から、送るべき価値のあるパッチだけを厳選し、整えてから送るというのはとても凄いなーと思ったりした。

 またHow to write patches for Vimも、パッチの話である。こっちは「送る」というよりも「どういう風にして書くか」というほうに重点を置いている。発表では「自分お気に入りのパッチ」という言葉がさらりとして出てきて、非常にかっこいいなあと思ったりもしたし、こういう人達のお陰で快適なVim生活が送れていると思うと(たまにはVimも使うよ!)感謝もある。

 また、もう一人のかたも、Vimに含まれているRuntimeの数々を紹介していた。Vimにしろ、Emacsにしろ、把握できないほどの樹海のような機能があるので、こういう振り返りみたいな紹介というのは本当にありたがったりする。自分のように、1年前まではyank(コピーのことね)一つ満足できないくらいに意識が低い人間にとっては、こういう機会がないとおぼえなかったりする。

 上のような話は、すぐには実務につながらないかもしれないけど、そういう意味で、VimからGitの操作について説明したものは、普通に「うお、役に立つ!」と思ったりもした。そういう風に、実際の開発で役に立つという部分も必要で、その意味ではバランスが取れていた気がする。

 あとは……暗黒美夢王の話なんだが……(ちなみにGoogleでは「暗黒美む」まで打ち込むとサジェストされる)、そんなことよりも、進撃のVim(Attack on the Vim)第一期 OP 紅蓮のVimなんかや、世界に一つだけのエディタの歌に心を引かれたりしていた。「暗黒」と名乗っているけど、「デーモン小暮」みたいな立ち位置になっていた。たぶんデーモン小暮が相撲が好きなようなものなんだと思うし、好きなものを好きなように使えばいいと思う。事実、Vimだけで実現できないことはあるわけだし、そういうものに関してはEmacsを使えばいいと思う。

 事実、現状としてVimでは上手くいかないけど、Emacsだったらうまくいく開発環境というものはあるわけで、むしろそういうのはVimだから、Emacsだからという風にこだわるべきではないと思うし、またEmacsだからといってEmacsのキーバインドになれなきゃいけないというのも、僕は変な話だと思う。Vimの環境は素敵だけど、Emacsのキーバインドのほうが良いというのなら、そういう風に使うべきだ。キーバインドとエディタをセットにするのは、僕は前時代的だと思うし、むしろそういう風に自分が「これがいいと思う」といったようにカスタマイズすることのほうが、僕はとても重要な要素だと思っている。

 YAPC::Asia Tokyo 2013が、それこそPerlだけではなく、Perlを取り巻く環境について語られたように、Vim Conferenceについても、もちろんVimというのが中心にありつつ、それこそ色々な環境との関わり方を話せればいいと思うし、そうであるならばとても有意義だなあ、と思いながら、またたまにはgvimを立ち上げて、ふるさとに返ろうと思う。

 ちなみに、パッチの話は特別ではない。例えば「Cが読めなきゃいけないんでしょ……」とか、そういう風に敷居の高い行為だと見られがちだけれども、実は貢献できるところなんてたくさんある。ちょっとujihisaさんがClojureの話をしていたので、Clojure関係の話をすると、例えばmodern-cljsという、ClojureScriptの入門の翻訳とか、やったりしている。そういう風に、英語じゃないと振られない領域をどんどん狭める行為も、実は大きくユーザーに貢献できるものだと思う。あるいは、Vim Advent Calendar 2013 : ATNDに参加するのもいい。ドキュメントが増えれば増えるほど、他のユーザーの手助けになる。

 Vimでももしかしら貢献できる部分はあるかも。vim-jp/vimdoc-ja · GitHubを見て、issueを見てみるといいかもよ!

 そういうわけで、Vim Conferenceおつかれさまでした。発表者、スタッフの方、そしてujihisa++!