Stack funcionalcom Elm
View Slide
Olá, eu sou o Éber!Elixir & Elm - Radify
Agradecimentos
Me interrompam!
JavaScript... é complicado
JavaScript... é complicado● dinâmica e flexível
JavaScript... é complicado● dinâmica e flexível● cheia de *wats*
What the… JavaScript? - Kyle Simpsonshttps://youtu.be/2pL28CcEijU
JavaScript... é complicado● dinâmica e flexível● cheia de *wats*● ecossistema populado
JavaScript... é complicado● dinâmica e flexível● cheia de *wats*● ecossistema populado● as coisas estão melhorando...
Alternativas
Alternativas● CoffeeScript, PureScript, Dart,Reason, Haxe…
languageHipster
Alternativas● CoffeeScript, PureScript, Dart,Reason, Haxe…● TypeScript
Alternativas● CoffeeScript, PureScript, Dart,Reason, Haxe…● TypeScript● LiveView
Alternativas● CoffeeScript, PureScript, Dart,Reason, Haxe…● TypeScript● LiveView● Lumen
Uma linguagem agradável…… para webapps confiáveis… sem exceções em tempo de execução… com mensagens de erro amigáveis
Elm● Evan Czaplicki, 2012● Puramente funcional● Fortemente tipada● Haskell, OCaml, F#● Compila para JS● Compilador escrito em Haskell● 0.19.1 (Out/2019)
Linguagem &arquitetura
Linguagem● Funcional
Linguagem● Funcional● Sintaxe
Linguagem● Funcional● Sintaxe● Compiler (runtime exceptions & error msgs)
Linguagem● Funcional● Sintaxe● Compiler (runtime exceptions & error msgs)● Fortemente tipada
Linguagem● Funcional● Sintaxe● Compiler (runtime exceptions & error msgs)● Fortemente tipada● Alias types
Linguagem● Funcional● Sintaxe● Compiler (runtime exceptions & error msgs)● Fortemente tipada● Alias types● Union types
Linguagem● Funcional● Sintaxe● Compiler (runtime exceptions & error msgs)● Fortemente tipada● Alias types● Union types● Maybe
[ 1, NaN, NaN ]
Linguagem● Funcional● Sintaxe● Compiler (runtime exceptions & error msgs)● Fortemente tipada● Alias types● Union types● Maybe● Funcional² (sem efeitos colaterais)
Arquitetura● The Elm Architecture (MVU)
https://elmprogramming.com/model-view-update-part-1.html
Arquitetura● The Elm Architecture (MVU)● Commands & Subscriptions
https://elmprogramming.com/subscriptions.html
Exemplo
Trade-offs
Quem usa?● thoughtbot● Rakuten● NoRedInk● Stone● Cálculo Jurídico● PivotalTracker● Emirates● Vy● ...
Como aprender?● https://guide.elm-lang.org/● https://elmprogramming.com/● https://www.manning.com/books/elm-in-action● https://cuducos.me/2016/10/24/vamos-aprender-elm.html● https://www.twitch.tv/eberfreitas
Dúvidas?speakerdeck.com/eberfreitastwitter.com/eber_freitasgithub.com/eberfreitaslinkedin.com/in/eberfreitas[email protected]