(define -ayalog '())

括弧に魅せられて道を外した名前のないプログラマ

1 ヶ月間 Clojure を書き続けて感じたこと

まえがき

日本で Clojure を使い始めた 1 人の Clojure プログラマとして、この 1 ヶ月で感じたこととか Clojure をとりまく環境とか書いておきたいなと思う。

日本では流行ってない?

2010 ~ 2011 年頃、空前の Clojure ブームがあったらしい。原因は「 Programming Clojure 」の翻訳本である「プログラミング Clojure」が 2010/01 に出版されたからだと思う。

プログラミングClojure

プログラミングClojure

だいたい、日本語で Clojure の情報を検索しようとすると 2010 ~ 2011 年頃の古い記事が結構ヒットしてくる。残念ながらその頃から継続して Clojure を勉強している人はあまり多くないというのが現状だとは思うのだけど…。さらにに 2011 年は「 7 つの言語 7 つの世界」が発売されたので、その影響で始めた人も多少いるとは思う。

7つの言語 7つの世界

7つの言語 7つの世界

それから 2011 年はこういう話もあったらしい。

ここで、自分に転機が訪れます。2011 年の 9 月 23 日。Erlang Workshop 2011 Tokyo に参加した日です。
エリクソンErlang VM を開発している Patrik Nyblom が ETS に STM を実装したという話しをしている中で Clojure は勉強した方がいいよという話しをしていたのです。正直 STM は何が嬉しいのかあまり良くわかっていません、ただ Clojure はやるべき。という話しを鵜呑みにしてやってみようかなと思ったのです。
なぜ Clojure なのか - Twisted Mind

2011 年に初の Clojure Advent Calendar があったようです。
Clojure Advent Calendar 2011 - PARTAKE

そして、残念ながらそのブームは 2011 年で終わりを告げ、 2012 年は空白の年となっている。

空白の年という表現をしたのは Advent Calendar がなかったのと Tokyo.clj が 2011 年を最後に一度終わりを告げているからだ。更に Qiita の投稿件数を見ると 2012 年は 20 件程しかない*1のであまり使っている人は少なかったであろうことが想像に難くない。

しかし、 2013 年を機に少しずつではあるけどまた波が来ているのかなという印象がある。理由としては「プログラミング Clojure 」の第 2 版と「おいしい Clojure 入門」の出版だろう。それに流れをつけたのは Tokyo.clj の 16 回目が登尾さん(@)の手によって再開されたことと、あと個人的な印象で言えばこの辺でちょっと話題になったりしたからかなという気がしないでもない。確か 2013 年の頭くらいにあった LispMeetUp はキャパギリギリの人数が集まったらしいし、他の Scheme, Common Lisp 回に比べると足を運ぶ人が多かったらしい。ついでにいうと Qiita の投稿数は 59 件と増えてきている。

プログラミングClojure 第2版

プログラミングClojure 第2版

おいしいClojure入門 (Software Design plus)

おいしいClojure入門 (Software Design plus)

あとは「ニャンパスー」で思いがけずバズった、ニャンパス株式会社の件で Clojure という言語の認知度はぐーんと上がったのではないだろうか。

Advent Calendar も復活し全ての枠が埋まっているので、 Lisp 系言語としては快挙だろう。
Clojure Advent Calendar 2013 - Qiita

じゃあ昨年の 2014 年はどうだったかというと、「はじめての Clojure 」が出版されたのと Compojure の開発が再開されたり Om といった React.js のラッパーが流行ったりと Web 系の機運が高まった年だったと思う。

はじめてのClojure (I・O BOOKS)

はじめてのClojure (I・O BOOKS)

Qiita の投稿数は 196 件と順調に伸びている。 Tokyo.clj が順調に開催されたり Clojure 夜会で Kotlin アイドルが LT するなどといった事件が起こっているのもこの年の特徴だと思う。

ちなみに Advent Calendar も全て埋まっている。
Clojure Advent Calendar 2014 - Qiita

2015 年現在はどうかというと #clojure_focus という gen-classcore.async といった Clojure の特定機能にフォーカスした勉強会が好評を博している。 Qiita の投稿数は現時点で 37 とそこそこ調子がいい。また Clojure を使うという会社が求人を出したりClojure を使う会社に Clojure のコントリビューターが転職したりと徐々に仕事で Clojure 使って行くという事例も増えつつある。先日行われた JJUG でも 2 件くらい Clojure の話があったはずです。

全体としてはこの数年で Clojure に流れがきつつあるのは確かだけど、ちょっとまだまだかなというのが正しい認識なのかなと思う。

海外では流行ってる?

個人的な印象だけで言えば間違いなく流行ってきていると思う。 2014,2015 年と Clojure の書籍は数冊出ています。さらに Clojure/conj, Clojure/West とか盛況みたいですし、 ClojureBridge という RailsGirls の Clojure 版みたいなもの*2が行われるなどわりと Clojure の波が海外だと広がってるのかなという印象です。
StackOverflow などの質問も 2 件 /day 以上くらいの頻度で飛んできますし、使おうとしている人はどんどん増えているという印象が大きいですね。また StackOverflow のアンケートでも MOST LOVED の 5 位に食い込んできているので英語圏では人気が高い言語であると言えるかもしれません。

じゃあここまで流れ来ているはずなのに何故日本では流行ってないの?

難しいところですが、英語出来る人と英語出来ない人の間を繋ぐアダプタ的な層になる人が少ないんだという印象を僕は今受けています。結局はプログラミング言語として優れているとか優れていないとかに関わらず、自然言語の壁というのがまず日本人に対しては高いんですよね。僕なんかも毎日必死に英語の技術書読んだりしていますが、日本語だったらもう少し楽に読めるのになぁと常々思っています。
出来れば書籍の翻訳などに携われたらな*3と思っていますが、今のところまだ予定はないです*4Cookbook なんかはいい本なので、早い段階で翻訳されて欲しいです。

Clojure 使い何処にいるの?

僕も知りたいです。ただ、確実なのは間違いなく Clojure 使っている/使おうとしている会社はそこそこ出てきているということです。僕の知ってる範囲だと「株式会社テンクー」「ニャンパス株式会社」「株式会社サイバーエージェント」「株式会社ログバー」「サイボウズ スタートアップス株式会社*5」とか、あと京都の方にあるらしい

また、 Clojure といえば「あの人」というのもなんとなく定着しつつあるのかなと。例えば川島さんとか、えいとすさんとか、登尾さんなど。露出度の高さだとこの三人が露出度高いなーという印象です。

正直 Clojure 界隈ライブラリ/ツールとかどう?

たぶん Emacs じゃないと Clojure 書けないんでしょう?って思ってる方結構多いと思うんですが、最近は IntelliJ のプラグイン*6人気のようです。また LightTable なども開発はちゃんと継続して続いているようですし、 Vim ユーザーでも書けるような環境は整ってきているみたいです*7。なのでもし貴方が Emacs 使いじゃないから Clojure 書けない…と思っているならそれはもう既に誤りで、 IntelliJ ユーザーなんかは簡単にプラグイン追加すれば書けるはずです。

ライブラリについては数は豊富です(そもそも Java のライブラリも使えますが、 Clojure でラップされているのも最近は結構あります)。ただ、バグが結構*8あったりして、僕みたいな初心者が使ってても簡単に踏み抜いてしまうケースがちょこちょこあるので、 PR 出すくらいの気概は必要だと思っています。それからトラブったり、どうやったらいいんだろうというときに日本語の情報がないケースもそこそこある*9ので、 SO に質問飛ばすとか GitHub 上で issue 作るとかはやる必要があったりします。

どうやって Clojure の情報仕入れている?

Planet Clojure と StackOverflow と RedditRSS で購読しています。そんなに流量は多くないので毎日読んでればだいたい読み切れます。

まとめ

ということでなんとなく現在の Clojure をとりまく環境をひと通り説明出来たかなと思います(僕視点ですが)。日本でもやや流行りつつある気配を見せつつも、情報量が少ないのでなんとなく敬遠しているとか初歩の初歩で躓いちゃって 2 歩目が踏み出せないという人も多いと思うので、もう少し裾野を広げていくための動きを取れたらいいなぁと思います。
もっと裾野が広がれば Clojure の書籍も翻訳されやすくなるでしょうし、日本の Clojure 界隈広がっていくと思うので頑張りたいところです。

おしまい。

*1: Qiita というサービスが 2011 年 9 月頃開始なのと 2012 年はあまりまだ Qiita がエンジニア全体に浸透していた感は薄いのであまり参考にはならないが…

*2:余談ですが、 RailsGirls の日本での第 1 回を企画したりした方(not sure)が ClojureBridge に関わっているようです

*3:あるいは自分から 1 冊翻訳しに行くか

*4:ただ僕の出来る範囲でわりと嵌りそうな SO での QA を日本語で説明したりは今のところしていますが

*5:僕のいるところです

*6:Cursive

*7:そもそも Emacs ユーザーは SO のアンケートによると全体の 3.8% くらいしかいないはずで、 Vim ユーザーの方が圧倒的に多いので当然と言えば当然でしょう

*8:極稀に

*9:2011 年よりこっちの情報であまりバグ踏んだとかそういうのあまり見たことないかも