SlideShare a Scribd company logo
1 of 25
Download to read offline
Overview
2014-06-08
天下一altJS武闘会
@dsuket
about me
@dsuket
Works
フリーランスエンジニア
開発、技術支援、執筆、講演、etc
Community
AITC運営委員, CCエバンジェリスト

Japan Sencha UG
@dsuket
dsuket
コラムはじめました
http://elm-lang.org/
elm 知ってますか?
文法とか言語の
細かい話はしません
Elm
ここがすごい
(小並感)
1. 関数型言語が
すごい!
Functional!!
Haskell + OCaml + F#

+ Agda + SML
関数型言語のいいとこ取り!
コードサンプル
関数言語界の恐い人が多いの
で詳細は割愛
Haskell+独自記法で混乱!
学習コスト高!
2. FRP が
すごい !!
FRP
Functional
Reactive
Programming
ユーザー入力など、時間をかけてダイナミックに変
化する値は、複数のEvent Stream(連続的な時間
とデータのペア)によって合成されたBehavior関
数で扱い、刻々と変化する値を宣言的に表す。
FRPとは
参考: Webフロントエンドでリアクティブプログラミング
Sample
http://elm-lang.org/edit/examples/Reactive/Position.elm
独自言語の上にFRPとか
あって、学習コスト激高!!
→ 面白い!
3. Platform が
すごい!!!
Elm Platform
elm:コンパイラ
elm-server: サーバー (not Server Side)
elm-repl: 対話型IF
elm-get: パッケージ管理
4. Play Ground が
すごい!!!!
http://elm-lang.org/edit/examples/Intermediate/Mario.elm
Hot Swap
&
Auto-update
5. Debugger が
すごい!!!!!
http://debug.elm-lang.org/edit/Mario.elm
残念な点
• 学習コスト激高

Haskell Likeでさえ取っつきにくいのに、RFP+独自言語ってどんだけ、、、

日本語情報ほとんどない
• 既存資産(JS)が活かせない

一応外部JSと連携する仕組みあるけどシームレスじゃ無い
• コンパイラがちょっとね。。

watchして変更したファイルだけコンパイルとかしたい
• 遅延評価がない

Haskellベースだと思うと残念
ちょっと翻訳はじめてみた
https://github.com/dsuket/elm-lang.org
Let's Enjoy!

More Related Content

What's hot

TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
Akira Inoue
 
ラボユース 最終成果報告会
ラボユース 最終成果報告会ラボユース 最終成果報告会
ラボユース 最終成果報告会
shiftky
 
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションサイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
sn_monochr
 
リテラル文字列型までの道
リテラル文字列型までの道リテラル文字列型までの道
リテラル文字列型までの道
Satoshi Sato
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
Genya Murakami
 

What's hot (20)

Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)Rubyの御先祖CLUのお話(原本)
Rubyの御先祖CLUのお話(原本)
 
Boost.Spirit.QiとLLVM APIで遊ぼう
Boost.Spirit.QiとLLVM APIで遊ぼうBoost.Spirit.QiとLLVM APIで遊ぼう
Boost.Spirit.QiとLLVM APIで遊ぼう
 
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
 
TypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービューTypeScript 1.0 オーバービュー
TypeScript 1.0 オーバービュー
 
F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~F#入門 ~関数プログラミングとは何か~
F#入門 ~関数プログラミングとは何か~
 
現実(えくせる)と戦う話
現実(えくせる)と戦う話現実(えくせる)と戦う話
現実(えくせる)と戦う話
 
AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会AngularJS+TypeScript - AngularJS 1周年記念勉強会
AngularJS+TypeScript - AngularJS 1周年記念勉強会
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposium
 
不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray不遇の標準ライブラリ - valarray
不遇の標準ライブラリ - valarray
 
Hacking Ruby with Python
Hacking Ruby with PythonHacking Ruby with Python
Hacking Ruby with Python
 
ラボユース 最終成果報告会
ラボユース 最終成果報告会ラボユース 最終成果報告会
ラボユース 最終成果報告会
 
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーションサイボウズ・ラボユース 最終成果報告会プレゼンテーション
サイボウズ・ラボユース 最終成果報告会プレゼンテーション
 
ECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミングECMAScript6による関数型プログラミング
ECMAScript6による関数型プログラミング
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
Algebraic DP: 動的計画法を書きやすく
Algebraic DP: 動的計画法を書きやすくAlgebraic DP: 動的計画法を書きやすく
Algebraic DP: 動的計画法を書きやすく
 
中3女子でもわかる constexpr
中3女子でもわかる constexpr中3女子でもわかる constexpr
中3女子でもわかる constexpr
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
リテラル文字列型までの道
リテラル文字列型までの道リテラル文字列型までの道
リテラル文字列型までの道
 
Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理Windows ストア アプリでスレッド間排他処理
Windows ストア アプリでスレッド間排他処理
 
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだconstexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
constexpr関数はコンパイル時処理。これはいい。実行時が霞んで見える。cpuの嬌声が聞こえてきそうだ
 

Viewers also liked

Viewers also liked (7)

Haskell Backpack 事始め
Haskell Backpack 事始めHaskell Backpack 事始め
Haskell Backpack 事始め
 
Haskell Lecture 1
Haskell Lecture 1Haskell Lecture 1
Haskell Lecture 1
 
型! 型!
型! 型!型! 型!
型! 型!
 
Haskell で LINE Bot を作ってみた
Haskell で LINE Bot を作ってみたHaskell で LINE Bot を作ってみた
Haskell で LINE Bot を作ってみた
 
「7つの言語、7つの世界」を読む
「7つの言語、7つの世界」を読む「7つの言語、7つの世界」を読む
「7つの言語、7つの世界」を読む
 
Elmで始めるFunctional Reactive Programming
Elmで始めるFunctional Reactive Programming Elmで始めるFunctional Reactive Programming
Elmで始めるFunctional Reactive Programming
 
ADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with HaskellADVENTAR の Bot を作る with Haskell
ADVENTAR の Bot を作る with Haskell
 

Similar to Elm overview

Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
Esehara Shigeo
 
融合変換による最適化の理論的基盤と正当性 (2006-06-27)
融合変換による最適化の理論的基盤と正当性 (2006-06-27)融合変換による最適化の理論的基盤と正当性 (2006-06-27)
融合変換による最適化の理論的基盤と正当性 (2006-06-27)
Masahiro Sakai
 

Similar to Elm overview (20)

TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介
 
Swiftでの関数型プログラミングについて考えていること
Swiftでの関数型プログラミングについて考えていることSwiftでの関数型プログラミングについて考えていること
Swiftでの関数型プログラミングについて考えていること
 
Scala Daysに行ってみて
Scala Daysに行ってみてScala Daysに行ってみて
Scala Daysに行ってみて
 
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
 
Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp
Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jpLearn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp
Learn Languages 2017 従来言語で理解する次世代言語の概念 #ll2017jp
 
WebエンジニアがXR業界へ転職した話
WebエンジニアがXR業界へ転職した話WebエンジニアがXR業界へ転職した話
WebエンジニアがXR業界へ転職した話
 
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
Flang kkd1
Flang kkd1Flang kkd1
Flang kkd1
 
自前言語を仕事に使う話
自前言語を仕事に使う話自前言語を仕事に使う話
自前言語を仕事に使う話
 
Expectation for cloudSearch
Expectation for cloudSearchExpectation for cloudSearch
Expectation for cloudSearch
 
関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング関数型っぽくROSロボットプログラミング
関数型っぽくROSロボットプログラミング
 
Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -Scala Daysに行ってみて - あるいはスイス旅行記 -
Scala Daysに行ってみて - あるいはスイス旅行記 -
 
おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
 
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
 
融合変換による最適化の理論的基盤と正当性 (2006-06-27)
融合変換による最適化の理論的基盤と正当性 (2006-06-27)融合変換による最適化の理論的基盤と正当性 (2006-06-27)
融合変換による最適化の理論的基盤と正当性 (2006-06-27)
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 
No more Legacy documents
No more Legacy documentsNo more Legacy documents
No more Legacy documents
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
 

More from dsuke Takaoka

Sencha ugデブサミ2013
Sencha ugデブサミ2013Sencha ugデブサミ2013
Sencha ugデブサミ2013
dsuke Takaoka
 

More from dsuke Takaoka (20)

マイ丼5分クッキング
マイ丼5分クッキングマイ丼5分クッキング
マイ丼5分クッキング
 
いまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホンいまさら聞けない機械学習のキホン
いまさら聞けない機械学習のキホン
 
AITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえりAITCオープンラボ IoTx総まとめ これまでのふりかえり
AITCオープンラボ IoTx総まとめ これまでのふりかえり
 
Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談Pepper x IoT x Web 勉強会やってみた話と失敗談
Pepper x IoT x Web 勉強会やってみた話と失敗談
 
littleBitsとIFTTTで超お手軽IoTクッキング
littleBitsとIFTTTで超お手軽IoTクッキングlittleBitsとIFTTTで超お手軽IoTクッキング
littleBitsとIFTTTで超お手軽IoTクッキング
 
03 pepper io_t_web
03 pepper io_t_web03 pepper io_t_web
03 pepper io_t_web
 
AITCオープンラボ: Pepper x IoT x Web
AITCオープンラボ: Pepper x IoT x WebAITCオープンラボ: Pepper x IoT x Web
AITCオープンラボ: Pepper x IoT x Web
 
最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ最近のWeb関連技術の動向あれこれ
最近のWeb関連技術の動向あれこれ
 
IoT概論: AITCオープンラボ IoT勉強会
IoT概論: AITCオープンラボ IoT勉強会IoT概論: AITCオープンラボ IoT勉強会
IoT概論: AITCオープンラボ IoT勉強会
 
データビジュアライゼーションもくもく会
データビジュアライゼーションもくもく会データビジュアライゼーションもくもく会
データビジュアライゼーションもくもく会
 
React.js + Flux
React.js + FluxReact.js + Flux
React.js + Flux
 
D3.js で LOD を Visualization
D3.js で LOD を VisualizationD3.js で LOD を Visualization
D3.js で LOD を Visualization
 
モバイルWebアプリのこれまでとこれから
モバイルWebアプリのこれまでとこれからモバイルWebアプリのこれまでとこれから
モバイルWebアプリのこれまでとこれから
 
モバイルWebアプリケーションを複数端末で動かすために注意すること
モバイルWebアプリケーションを複数端末で動かすために注意することモバイルWebアプリケーションを複数端末で動かすために注意すること
モバイルWebアプリケーションを複数端末で動かすために注意すること
 
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery MobileモバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
モバイルWebアプリのこれまでとこれから。Sencha Touch vs jQuery Mobile
 
Sencha Touch ハンズオン資料
Sencha Touch ハンズオン資料Sencha Touch ハンズオン資料
Sencha Touch ハンズオン資料
 
jQuery Mobile ハンズオン 資料
jQuery Mobile ハンズオン 資料jQuery Mobile ハンズオン 資料
jQuery Mobile ハンズオン 資料
 
5分でわかるSencha Touch
5分でわかるSencha Touch5分でわかるSencha Touch
5分でわかるSencha Touch
 
Senchaを使うエンジニアが知っておくたった一つのこと
Senchaを使うエンジニアが知っておくたった一つのことSenchaを使うエンジニアが知っておくたった一つのこと
Senchaを使うエンジニアが知っておくたった一つのこと
 
Sencha ugデブサミ2013
Sencha ugデブサミ2013Sencha ugデブサミ2013
Sencha ugデブサミ2013
 

Elm overview