- functional reactive programming language
- compiles to JS
- the compiler catches most errors immediately and provides a clear and understandable error message
- purely functional
- statically typed
- looks like Haskell
- time-travelling debugger
- uses type inference
- has its own virtual DOM implementation
- very fast DOM diff implementation
- your CSS and HTML are written in code :( - looks declarative (YAML-ish), breaks the separation principle
- a steep learning curve for JS devs
- helps dramatically, as the reactive paradigm is part of the language’s architecture