読者です 読者をやめる 読者になる 読者になる

Scala Matsuri 2016でLTをやってきました。 #ScalaMatsuri

お疲れ様です。CyberZエンジニアの重村(@shigemk2)です。

先週1月30-31日にScalaをテーマにした日本最大級のカンファレンスがありました。2日間合計で来場者 500人以上、ニコニコ生放送視聴者が16万人以上という大きなイベントです。
1日目のランチタイムでライトニングトーク (LT)の発表者を募集していたので、そちらに応募して発表しました。

資料

こちらが資料になります。

SpeakerDeckかSlideShareにスライドをアップする人は多いですが、私はimpress.jsを使って横スライドできるスライドにカスタマイズしています。Remarkやreveal.jsも便利な気はしましたが、HTMLベースで自由に画像や文章をカスタマイズ出来るので私はimpress.jsを使っています。

発表内容

EmacsScala開発をやった話」というテーマでLTをやりました。アジェンダは以下の2点です。

  • マシンで苦労した話
  • ENSIMEで苦労した話

ほとんどの勉強会やカンファレンスのLTの制限時間は5分*1で、時間が過ぎたら強制終了なので、そんなに多くのことは詰め込めません。LTで言いたいことは1つか2つにまとめる必要があります。できれば1つのほうがいいでしょう。

マシンで苦労した話

Scalaコンパイルに時間がかかる」というのは多くのScalaプログラマのネタになっていますが、これについてはScalaの作者であるMartin Odersky先生がStackOverflowにて以下のような回答をしています。

が、スペックがあまりにも貧弱だとコンパイルが遅い以前の問題でマシンがCPUの熱暴走でクラッシュするというとんでもない展開に見舞われてしまうということを話しました。

それでお金のない私は古いけどスペックの高いマシンに乗り換えてこの問題を解決しました。

ENSIMEで苦労した話

Scala開発をやっているEmacsユーザーのほとんどがENSIMEを使っていると思われます。そう思うだけで実際に使っているかどうかは定かではありません。LTの最初にアンケートを取りました*2が、

くらいな人数で、その場にEmacsユーザーが数人いたのがLTをやって一番の驚きでした。ですが、いかんせん母数が少なすぎるので、EmacsユーザーがどうやってScala開発をやっているのか統計を取ることすら出来ないのがScala界隈におけるEmacsユーザーの悲哀です。

なお、ENSIMEの詳しい導入方法や基本的な使い方については時間がないので割愛しました。

それで、ENSIMEで以下のようなところで苦労したことを話しました。

  • インストールで詰まること
  • 比較的大きなサイズのリポジトリでensimeを実行するとEmacsがフリーズすること
  • ensime-inspect-type-at-pointを実行するとensimeが落ちること
  • 定義ジャンプはあるがIntelliJのCommand + Alt + F7に相当するものがないこと
  • 自動補完機能はIntelliJEclipseほど優秀ではないこと

最後にIDEの機能を知りEmacsに還元するためにも今後はIntelliJなどのIDEを使っていきたいことを話し、Emacsはネバーダイと言って締めました。

応募に至る経緯

もともとこのネタは本セッションに応募したものですが、いかんせん内容が万人向けではないこともあって落選しました。が、「落選してもアンカンファレンスでの発表を狙ってください」と募集要項に書いてあったので、発表するタイミングを虎視眈々と狙いながら年末年始から少しずつ資料を作り続けていました。

勉強会の発表についてはそれなりに場数を踏んでいるので、応募すること自体はさほど苦ではなかったです*3。上司や同僚の前で発表をするとあとで色々とマサカリが飛んできそうなので緊張しますけども*4

まとめ

著者はプログラミングを始めてからずっとEmacsユーザーですが、Emacsを使わない人を悪く言うつもりはありません。達人プログラマーにもありますが、エディタを使いこなすことで生産性が飛躍的に向上するので、「一つのエディタを熟知すること」が重要です。とはいえ、言語によってエディタにしたりIDEにしたりするのも正しいとも思います。

そういうわけで、今年はIDEの良いところをEmacsに還元する程度の技術力は身につけたいと思います。

*1:例えばKernelVM探検隊など、LTが10分や15分の勉強会もあります。

*2:時間が制限されているLTで普通はアンケートは取りません。アンケートを取ったのはアドリブですが、スライドから大きく外れたことをするときは、時間配分を考えましょう。

*3:SHIROBAKO17話でみゃーもりが新人の子に「場数を踏めばなんとかなるから」とアドバイスをしていましたが、場数を踏むことにも才能と工夫が必要です。応募をすることに精神的な障壁があるならば、まずは職場の誰も参加しないであろう5人10人レベルの小規模な勉強会やもくもく会で発表をするところから始めてはいかがでしょうか。

*4:とある勉強会で新人の子が発表をしていたときは、先輩の顔色を伺いながら発表をしていたので、目も当てられませんでした。およそボランタリーな雰囲気の強いIT勉強会で「上司/会社に言われたから」感が出ていると話を聞く側もつらいものがあります。幸い自分のLTは社内からは高評価であったので、とても励みになりました。