BT

Elmを使って失敗のリスクを軽減する

| 作者: David Iffland フォローする 4 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2015年10月12日. 推定読書時間: 2 分 |

原文(投稿日:2015/09/29)へのリンク

Strange Loop 2015の実際に試してみようというセッションで、Richard Feldman氏が、失敗のリスクを軽減してウェブアプリをより高速に回すため、彼のチームがどのようにElm言語を使い始めたのか紹介した。

どこのJavaScript開発者もおそらくundefined is not a functionというエラーに遭遇してきただろう。Feldman氏はこの苦しみを使って、開発者の体験をより良くするElmの力について理解させようとした。Elmコンパイラは素のJavaScript開発者を悩ませる多くのエラーをキャッチする。Feldman氏によると、Elmアプリでは「いったんコンパイルすれば、通常はリグレッションやランタイム例外なしに、一度で動作する」という。

なぜ私がElmを使っているのか、なぜそんなに心地良いユーザ体験なのかを考えてみると、それは日々素晴らしいと感じさせる、ほんの細かなこと、ちょっとした洗練さ、ちょっとしたユーザ体験のためです。

なじみのない人のために説明すると、ElmはEvan Czaplicki氏によって作られた関数プログラミング言語で、ウェブUIの構築が簡単になるよう設計されている。ElmはJavaScriptにコンパイルされ、Reactのように、インターフェイスを操作するのにバーチャルDOMを使っている。Elmのブログによると、あるベンチマークでは、Reactよりも劇的に高速だという。

Bar Graph of Runtime Speeds for TodoMVC app in various languages. Shows Elm as very performant.

Elmの最もシンプルなコード例は次のようなものだ。

import Html exposing (span, text)
import Html.Attributes exposing (class)


main =
  span [class "welcome-message"] [text "Hello, World!"]

「Elmにあるものはすべて、イミュータブルなデータとステートレスな関数、この2つのどちらかです」Feldman氏はいう。この関数的純粋さ(関数に副作用がない)は理論的には素晴らしいが、ウェブ開発者はたいてい、他のさまざまなシステムとやりとりしなくてはならない。これをうまく避けるため、Elmには「task」と呼ばれるものがある。Feldman氏によると、これは「あなたがやりたいことのデータ表現であり、命令のリストだ」という。

Elmは「port」を使って既存のJavaScriptライブラリとやりとりできる。開発者はアプリの一部をElmコードで入れ替え、portを使って2つをつなげることで、Elmにつま先を踏み入れることができる。

Feldman氏のトークビデオは他のセッションと共にYouTubeに置かれている。また、Feldman氏はElmを使ったサインアップフォーム構築に関するチュートリアル記事を書いている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT