I dismissed elm about 10 times. But once I tried it, it was great. The pure functional approach of elm is like solving an equation. Once it is solved, it's done, you can go home. In the sense of that you write elm code only once, if it work, it will always work. And if it doesn't work, it won't compile anyway.