BT

InfoQ ホームページ ニュース Elmを使って失敗のリスクを軽減する

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

ブックマーク

原文(投稿日: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

コミュニティコメント

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

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

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。