Unipos engineer blog

Uniposの開発者ブログ

行ってまいりました、elm-conf US 2017へ!

Fringe81エンジニアの関(@jshosomichi)です。 首題の通り、会社に全面バックアップして貰う形で、現地時間9/28朝から夕まで、新卒二年目のElmer古渕くんとともにelm-conf USに行ってまいりました!

Elm-conf US

f:id:fringeneer:20170929120107j:plain

アメリカはセントルイス、ホテルのボールルームにて開催され、200人から300人くらいの世界のElmersが集結していて、熱の高まりを感じてきました。 お天気も雰囲気も良くて、スタバと提携して美味なコーヒー飲み放題だったり、人は入っていましたが会場はゆったりと使えるくらいの混み具合で、とても快適でした。

今回面白いなと思ったのが、恐ろしい速度で同時通訳の方がリアルタイムで話している内容をタイピングで書き取ってくれてサブディスプレイに写してくれていたので、話についていきやすく、今後それは公開動画などに字幕として設定されるものと思われます。

全体感としては登壇内容・パネルディスカッションの質問内容などから察するに、「Elmが良いものだ、ランタイムエラー無い」といったあたりはもう前提化し、プロダクションで使うために周囲にその良さを理解してもらったり浸透させて行くためにはどうしたら良いのか、とかプロダクションで使っている人たちも一定数いて、さらにBetter Wayをどのように見出していくのか、といった感じの話が多かったように思います。

そもそも自身の英語力が自分が思っていた以上に貧弱であったことを痛感し、英語学習は勿論、何か強制的に英語を使わざるを得ないような環境を、チーム含めて整備していく必要があるなと強く感じたりもしまして、内容の解釈に誤りがあったりもするかもしれませんが、あくまでラフに幾つか個人的に印象に残ったスピーチを紹介させてもらいます。

Keynote: Evan Czaplickiさん

  • roadmapにあるような、どうやってSPAを構成するのかの話。
  • どんなことがコアな課題なのか?その課題について詳しく学ぶこと、Elmにフィットする解決案ってなんなのか?
  • 表示のためのプロセス改善やファイルサイズ圧縮などの手段により、よりUXを向上させるような、効果的にプログラムを実行出来るようなモノを今後のリリースで実現していきたい
  • Elmのコアプラットフォームとしてはじっくりと良い方法を適用していくので、具体的な実装時期などについては、そう急かさないでほしい
  • 登壇後にお話させていただき、Elmを使って弊社サービスUniposのプロダクション開発していることや、Elmのお陰で思考に集中できてとても生産性が上がっていることなどお礼を伝えさせてもらい、とても幸せな時間をいただきました。とても暖かく聡明な方でした。 f:id:fringeneer:20170929120108j:plain

The Inportance of Port: Murphy Randleさん

  • Elmのポートはサポートしてない方式のサードパーティAPI等への非同期通信の送信/受信の代替物ではない。もっとポートの力を引き出せる捉え方で使おう
  • PortはPromiseとして捉え、1リクエストにつき送/受信の2ポートを用意するのではなく、複数の操作を行なう事が出来るものとして捉える
  • サブスクリプションは個々の値ではなく、アプリケーションの抽象モデルを受け取るようにし共通化することで、無駄なポートを作成しない

Putting the Elm Platform in the Browser: Luke Westbyさん

  • Ellieはソースコードをシェアするための最良の手段となっている
  • Ellieの運用は広告費で行っているが、現在はWeb Workersコンパイラを動かし、サーバーリソースの節約ができるようになった
  • 今後は複数人で編集シェアをしたり、GithubとリンクすることでOSS活動と繋げるような青写真がある

Solving the Boolean Identity Crisis: Jeremy Fairbankさん

  • Booleanを2分岐するような状態全てに適用していくと、フラグの塊ができてしまう
    • 数学的な意味合いのBooleanは命題なのに、意味が失われてしまっている
  • 函数呼び出す時の引数にbookFlight "St. Louis" True False Trueの引数たちって・・・何?
    • チームで作るので、使う側が解りやすいものにしよう。コンピュータのためではなく、人の為にコードを書こう
  • これらの課題にUnionTypesで応えていく

Teaching Elm to Beginners: Richard Feldmanさん

  • コードを書く専門家たちは教えることの専門家ではないので、どうやったらElmを上手く伝授できるのかを伝える
  • 授業の設計:生徒は理解できているか?
    • 事実よりも生徒の理解を促そう。「Html msgって何でHtmlじゃないんですか」という素朴な質問にkindというのがあってだな的な話をするのではなく、msg型引数がなくてMsgが文字列だったとして、、という話をしたり
  • 生徒にモチベーションは与えられているか?
    • 型の重要性を説くよりも、コメントは古くなってしまうので型アノテーション書いたほうが良いよね的なところから動機づけを行っていき、UnionTypesの理解などに繋げていく
  • 徐々に、インクリメンタルに知識を増やすように伝える
    • Elmの言語設計は徐々に知識を増やしながら、動かしていくことで段階的に習熟度を高めていくように設計している。Elm in Actionのアジェンダもそのような構成を取っている

色々なお話を聞くことができて、なんだかコードが書きたくなって古渕くんと二人とてもウズウズしてしまったり、あるある話に爆笑したり、良い視点から切り込まれた話に舌鼓を打ったり、とても楽しい一日を過ごすことができました。

英語沢山勉強したい、Elmの発展にも貢献したい、いずれはここで自分の発見をお話したい、などいろんなWillやWantが生まれました。プレゼンテーションの内容はいずれ動画でも見ることができるようになると思いますが、場の持つエネルギーや、世界のリテラシーの高さ、世界のエンジニアのガタイの良さなどを体感できたことはとても良い経験でした!

f:id:fringeneer:20170929120020j:plain