Runner in the High

技術のことをかくこころみ

Elmに興味があるなら見ておきたいIzumiSyのスライド3選

過去に「NoRedInk*1の筋肉の人」としておなじみリチャード・フェルドマンをフィーチャーする記事を書いたので、今度は自分をフィーチャーしようと思う。 izumisy.work

おすすめはやはり一番最後の「jQueryからElmまで」だが、正直このスライドはElmに関する説明成分が少なかったと反省しているところがある。なので、個人的にはこの記事で並べている順番に見てもらうほうが、Elmに対するわかりが生じやすいと思う。

Elm, the functional frontend

Elmの基本的な部分をざっくり説明するスライド。このスライドは関数型プログラミングカンファレンス2019で使った。Elm意外にもRustやElixirなどの関数型プログラミングのエッセンスを持つ言語の人たちとコラボレーションするタイプのイベントだったので、関数型的な部分に言及するのは少なめでElmの良さをアッピルするような内容にした。

Elmというとその文法がHaskellライクな部分に焦点が向きがちだが、個人的にもっと重要なのはやはりシンプルかつ必要充分な型システムと、そして万人にとって優しいエラーメッセージであると思う。型のある言語というと、絶対に型パズルから逃れられないような気がしてしまうが、Elmで型パズルをすることはそうそうない。あるとしても1年に1回あるかないかくらいだ。今年はElmで型パズルしてない。

また、フロントエンドという画面的な仕様変化の激しい領域で求められるのはMaintainabilityとProductivityの両立であり、そこにはやはり大胆に変更を加えることを恐れさせない型安全性が重要だというメッセージも込めた。このあたりのはなしはとても齟齬なく伝えられてよかった。 izumisy.work

Elmのあるきかた2019

Elm Meetup in Summerで使ったスライド。Elmのイベントだけあって、もうElmがなんたるかはある程度すっ飛ばした話にした。ひとつめのスライドでも、末尾の方でこのスライドに言及している。

Elmを学ぶ情報はググるといろいろと出てくるが、なかでも意外とあまり知られてないのがリチャード・フェルドマンのトーク動画だろう。あまりカンファレンスの動画というのは学習資料にならないようなイメージが自分の中にもあったが、しかしScalaやElmの動画というのは比較的具体のコードを交えた設計に関するトークなどがちらほらある。僕の所属する事業部では、Elmを書くフロントエンド・エンジニアが集まって彼の動画を見る会を開催したりしていたくらいには、リチャードの動画は学びが多い。 izumisy.work

なお、スライドの中で言及している一丁目ラボ技術報告は以下のリンクから購入できる。本当にElmの初歩的な内容をカバーしたものだが、それでも何も読まないよりはいいと思う。 1chome-lab.booth.pm

jQueryからElmまで

初夏のJavaScript祭り2019で話すのに使ったスライド。自分意外の登壇者がほとんどまじめな(?)JavaScriptばなしであったのに対して、自分だけElmでなかなかアウトサイダー感があった気がする。

内容的にはこれまでのフロントエンドでよく見られたカオスが、いかにしてFluxアーキテクチャによって統治され、そしてElmの持つパラダイムへと向かっていったかをそれっぽい雰囲気で話すもの。これまで触ってきたAngularやVue.js, Reactの経験を集約してフロントエンドの大変さがどこにあったのかを改めてアウトプットできたのは、常にいい経験になった。社内のLT会でも比較的好評だったので、それだけでも作ったかいはあった。

このスライドを見ると、やはりこれまでの自分のフロントエンドの経験というものが、改めてElmに対する思いや向き合い方に出ている気がするなと思った。特に「フロントエンドは大きな関数である」という考え方も、Elmをやるまでの自分には絶対になかったと思う。しかし、様々なフロントエンド・フレームワークに触れてからFluxを知り、そしてReduxに触れ、さらにその元になったElmに触れて、と来るともはやフロントエンド・アプリケーションが関数の組み合わせとして考えること自体が、むしろ自然で当然だったかのように思えてくる。 izumisy.work

総括

こう見ると結構Elmのトークしてるなぁ。これからもElmのあれこれをガンガン盛り上げていきたい。

あとmentaでElmのメンタリングやってるんで誰か(いまんとこゼロ人) menta.work

*1:Elmを開発するEvan擁するアメリカの教育系スタートアップ。Elm開発者のメッカ。