えんじにゃーず・ハイ

主にエンジニアや技術情報についてつらつら書き連ねるブログです

Elm入門ハンズオン(2019/09/22)に参加してきました

Elmハンズオン!

f:id:areph:20180923035200p:plain:w200

そんなわけでElm入門ハンズオンに参加してきました。

elm-jp.connpass.com

Elmという言語はご存知でしょうか?関数型で記述できるフロントエンド言語です。

と、まるでElmを触ってきたかのように語っていますが全然触っていません。受け売りです。

Elm Architecture はFlux Architechreの元となる考え方らしく、現在React+Reduxで死にそうになっている私としてはとても気になる言語です。

楽しみー!とか言いながら40分ほど遅刻したのは内緒です。

ハンズオン

ハンズオンの資料はこちら

gitpitch.com

ハンズオン自体はスライドを主催のABさんが解説しながら進められました。進行がとても上手い!

「信頼できるWebアプリのためのめっっっっっちゃ楽しい言語(Elm公式ページ意訳)」だそうです!

「初学者がHTMLを学ぶよりElmを学んだほうがいいんじゃないか」という発言が飛び出すぐらいです。

ハンズオンは資料の通り進めていけばある程度の文法やできることがわかってきます。この資料がちゃんと失敗→成功と順序立てて作られていてとても良いんですよ。是非試してみてください!

関数型言語ってとっつきにくいな…」という方でもとても読みやすく感じると思います。

シンプルな言語でできることは少なくて覚えやすい。何よりコンパイルエラーがとても素晴らしく、実行時例外を起こすのが難しいと言われるほどです。 今回のハンズオンでも実行時例外を出せた人は誰もいませんでした。素晴らしいですね!

コンパイルエラーのメッセージもとても親切で易しく、マニュアルのリンクまで貼ってくれるほどです。やさしい。

演習

ざっくり学んだら演習問題です。テキストフィールドに文字を入力すると候補の辞書からインクリメンタルサーチで絞り込みを行えるアプリを作成します。

これもハンズオンをやっていれば難なくできる問題で、楽しく進めることができました。

さらに発展問題も用意されていて、もくもくとElmを学ぶにはとても良い環境だったと思います。メンターも4人いて対応してくれていました。素敵です。

私は遅刻分を取り戻すのに必死で時間ギリギリでした。

LT

LTは10分枠で行われました。登壇者はみんなElm激つよエンジニアさんばかりです。

Elmでライフゲーム by matherさん(@mather314)

speakerdeck.com

Elmでライフゲームを作ったよ、というお話。

Main

qiita.com

ソースコードを読むとシンプルな小さい関数が色々と定義されていて、とても読みやすいなと感じました。

正確には「ハンズオンをやったおかげで、読める、俺にもElmが読めるぞ!」という状態です。

判定処理にはライブラリを使わずListの考え方だけで設計しているのがミソとのことでした。私は頭がアレなのでよくわからなかったけど…。

github.com

StoryBookを作った by の人生は刺繍をするには短すぎるさん(@miyamo_madoka)

ElmでStoryBookを作ったよ、というお話。

Main

StoryBookはUI開発に使用されるツールですね。これをElmで作ったそうです。凄い。

とはいえ私も含めて使ったことが無い人が大半だったのであまり反響が薄く…。知っている人が見ればこれは凄い!となったんだろうなあ。

なお、貴重なClojureエンジニアで普段はReact+Reduxを使って業務をしているらしいですが転職活動中とのことですので是非Elm激つよエンジニアをお探しの会社さんは声を掛けてあげてください。

私はStoryBookより刺繍されたQRコードの方がたまげました。ちゃんとカメラで読み込めましたよ!

Elmでユーザーストーリーマッピングのツールを作ってみた by ジンジャーさん(@jinjor)

Elmでユーザーストーリーマッピングのツールを作ったよ、というお話。

speakerdeck.com

簡単なTODOアプリまで作れたけど、ちゃんとしたアプリが作れるのか…という迷える子羊へ送るLT。

ElmでSPAアプリも書ける!

http://story-notes.herokuapp.com/

デモを見ると本当にリッチなSPAが作られていて凄いです。ElmはJavaScriptとポートという技術で素のJavaScriptとやり取りできるのですが、このアプリはAll Elmとのこと。

特に苦労したのは同時編集だったそうですが、それも解決しています。

僕がReact+ReduxのつらさからElmへ逃げたくなっていたのですが、このアプリをみて見事に背中を押されました。

ちなみにElmでSPAを作るにはサンプルがあるそうです。これを読んで実装したいですね!

github.com

エルムで物理法則と戦う by アンドレイ(@unsoundscapes)

Elmでサイコロを転がしたいから物理エンジンを作ったよ、というお話。

エルムで物理法則と戦う

elm-webglの開発者がドイツからスペシャルゲストとして参加!

カンペ見ながらでも日本語が凄くうまくて、普通に日本語会話できるんじゃないかと思ったら質問は英語で、とのことでした。リスニングが難しいのかも?

WebGLでゴリゴリアニメーション書いてて凄いなとしか言いようがありません。色々ゲームを作っているとのこと。

ドイツに来たら呼んでね!と言っていたのでみんなでベルリンへ遊びに行きましょう。

おまけ

Elmのことでわいわい賑わっているDiscode

discordapp.com

ほぼ毎週オンラインもくもくしているイベント。次回は今日!

elm-jp.connpass.com

おわりに

めっちゃ楽しかったハンズオンでした。Elmを全然知らなくても学べたし、何より思ってた以上に実用可能なアプリが作成できるということがわかっただけでも収穫だった気がします。

erlangとかもそうなんですが、できることが少ないと言語仕様もシンプルで覚えやすくてよいですよね。高機能なのって本当に必要だったの?と思います。

次はバックエンドとの繋ぎこみやFirebaseで実用的なアプリが作れるハンズオンとかあったら最高だなあとか思いました。簡単なチャットアプリならさくっと作りたいなあ。

普段はElmとScala信者で主催のABAB↑↓BAさん、運営さん、東京ゲームショウがあるのにありがとうございました!