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

(kantou-emacs #x03) 第3回関東Emacs勉強会を開催しました

関東Emacsとは

Emacs好きが集まって、拡張方法や使い方を紹介し合ったり、今後のEmacsの発展を話し合ったりする関西Emacs勉強会の姉妹イベントです。 今回も簡単にレポートをまとめます。

(kantou-emacs #x03) 第3回関東Emacs勉強会 - 関東Emacs勉強会 | Doorkeeper

発表

@ShougoMatsu さんanything.el/helm.el と unite.vim を比較してみた

資料

内容

  • Shougoさんによるanythingとhelmとuniteの話でした。
  • それぞれの機能を比較しながら、設計思想の比較を行なうものでした。
  • るびきちさんのブログを参考にanythingとhelmの歴史を紹介
  • るびきち氏は互換性を大事にするスタイル
  • 互換性を無視してドラスティックな変更を加えたい Thierry 氏反発
  • 意見の相違からhelm誕生
  • uniteはanythingにあこがれたShouhoさんが作った
  • uniteはvimの設定のかなでも一番設定が難しいものの1つ Emacsでいうとorg-mode
  • uniteはVimプラグインでも有数のドキュメント量(4000行)だが足りない。
  • uniteのfuzzy matchはシンプルに書けるようにしている
  • 平日はvimプラグイン2時間 休日は4時間 クリエイティブ系な仕事。休日のはずだけど休日のほうが疲れる。
  • メンテをしながら新規開発するためには、電車の時間もvimと向き合うし、携帯でもバグ報告を確認する。

と、主に設計思想について話されるものであった。

感想

Vim使いであるにもかかわらず、anything,helmの設計や実装について熟知しており、 Shougoさんより、anything,helmに詳しいEmacsユーザはどのくらいいるんだろうと思うほどであった。 設計思想については、他のプラグインと比較しながら設計方針について話があり、こういった機会を他の技術でも増やすといいのにと思うほど、 勉強になる貴重な話であった。 保守と開発にかける熱い思いと労力について驚くべきものがあった。 開発者の方々に対して感謝してエディタを使わなければならないと思う。 「つまらないプラグインを作って公開して使われないな」って思うくらいなら、メンテを手伝う方が界隈の貢献になるであろう。

@syohex さん dynamic moduleの話

内容

デモとパフォーマンスの紹介がメインの発表であった。

  • 6月にリリースされるEmacs25からの新機能dynamic moduleの話。
  • 拡張をEmacsLisp以外の言語で書ける。
  • LLでは書けないそうで、Cで書いているものを見せてもらえた。
  • 呼び出すオーバーヘッドがあるので簡単な処理をするならelispの方が早い。
  • 複雑な処理をするなら使った方が良い。
  • MLでAPIが貧弱なのもお願いしたけど、反応がない。
  • githubで3人しか書いてなくsyohex さんが90%くらい書いている状況。

感想

dynamic moduleの紹介を見て、面白そうと思う気持ちがでたが、LLでは実装できないので Elispでも良いかなと思ってしまった。あまり、Cを書きたいとも思わないし。 今はAPIが貧弱とのことだが、便利になったら使おうとするとにわとりたまごで、 ユーザが増えないからサポートされない問題になりそう。 大きな処理をするシステムに関して、検討しておく。

@kiwanami さん ブラウザでEmacsを操作する手法について

内容

  • ブラウザからEmacsを操作(モバイル対応)
  • Browser/HTML/JS ← http → Ruby/Sinatra ← EPC → Emacs
  • バッファの表示にはhtmlfontifyを使っている
  • バグが多いのでパッチを当てて使っています
  • deffer.elを使うことで非同期処理を同期的にかけるのではない、非同期処理の構造化、抽象化する
  • DBIは、裏でSQLを叩く人が居て、ちょっとずつ取ってきてくれているから100万件あるレコードを取ってきても大丈夫
  • ユーザが操作している間に止らない。ユーザが触れる時間を長くする。
  • EmacsではS式はすぐに処理できるけどJSONは遅い。
  • S式のエンコード・デコードは他の言語で実装しても楽。JSONの方が6倍くらい時間がかかる。

あとは、デモと並列処理の理論の話を出典の書籍が紹介されながら説明がありました。

参考

感想

モバイルからEmacsのファイルを見ることはできるようにしていたのですが、 モバイルからEmacsを操作するということは考えてすらいなかったので、できたら使ってみたいと思いました。 Emacsにかぎらない技術的に勉強になったことが多かったです。 kiwanamiさんのプロダクトの隠れたユーザへの思いを知り、技術者とはこうあるべきだという姿を見せて頂けたような気がします。 並列処理の話は途中でついていけなくなりましたが、良い勉強になりました。

まとめ

抽象的に、人が使うものやプラグインを作る上での哲学やこだわりに触れられたのは非常に勉強になりました。 前回のブログみたら、次回こそは発表と書いていましたが、やってないですね。。 次回も発表するか分かりませんが、開催はしたいと思います。 また、Emacs好きが集まって情報交換できるような場を作りましょう。

謝辞

  • 会場提供をしてくださった@tadsanさんありがとうございました。
  • 発表をしていただいた、@ShougoMatsuさん、@syohexさん、@kiwanamiさんありがとうございました。
  • 特に、@syohexさん、@kiwanami遠い所から遠征して頂きましてありがとうございました。(把握している方だけ。。。)
  • 発表・参加してくださった皆様ありがとうございました。無事3回目が盛り上がったのも皆様のおかげです。

みなさん、本当にありがとうございました。今後共よろしくお願いします。

次回、第4回もよろしくお願い致します。