What are your favorite things about Elm?

Ooh, I agree with this! I appreciate the separate line type annotations in both Elm and Elixir, and every time I have to switch to use a language with inline type annotations it’s a bummer.

1 Like

My new favorite thing of Elm, the website updated design https://elm-lang.org/

14 Likes

haha yay, thank you!! So glad people like it! :heart::blush:

5 Likes
  • The type system and the confidence I get with it: Specially using Result and Maybe to handle errors, how everything works together neatly.
  • How fast it compiles, this makes the dev experience much nicer as I get very quick feedback
  • The focus on being easy to learn: I don’t need to understand what a Monoid or Semigroup is in order to use Elm, libraries are really well documented (unlikely many other fp languages).
7 Likes

I just like elm, I might be addicted to it;

  • Easy to understand where what must go (update, view, model)
  • No Run time errors, is really amazing.
  • Simplicity, I like that the language is getting simpler as it gets older, unlike most languages that gets more complicated as time passes.
4 Likes

Just need to add this thing I imagine is a bit controversial. :slight_smile: I REALLY enjoy the feeling of not having to keep up with the constant updates making me change my code. I can just focus on improving what I have or creating new things. I don’t have to learn a new concept every other week… :hushed:

17 Likes

among many other things, I like:

  • elm-ui – by far the best experience I’ve had with creating web sites, and I don’t have to learn CSS.
  • Elm architecture guides you to good solutions. At times it is frustrating trying to do something in Elm, but after you figure out a solution, you realize it is better than what you were trying to do in the first place.
  • Clean break with Javascript – this is a feature in my opinion. This encourages a rich ecosystem of Elm packages (much like Go) which is better in the long run. If we could intermix Javascript, then everyone would and we’d all still be stuck using complex JS build systems. If most of a project is Elm, there is often no need for a JS build tool.
  • Elm is a good solution for those of us who don’t have time to be front-end gurus.
11 Likes

:+1: to “don’t have time to be front-end gurus”. I (mostly devops/infrastructure person) wanted to start building client-side web apps, but was discouraged by the prospect of working with the JavaScript ecosystem. I also wanted to learn/use functional programming but found other functional languages difficult to approach.

Elm solved both of these problems at once. The learning curve was not shallow but the results were excellent. We grew our first Elm app from ‘hey the demo worked’ to ‘has funding and real people use it for real work’. On that journey, we didn’t need to try 7 different JS frameworks before discovering the correct combination of 4 of them to smush together. We didn’t need to learn byzantine CSS inheritance rules (thanks to elm-ui!).

Elm compiler+libraries+ecosystem delivers “I am not a front-end guru but I know this will work” confidence, every time I touch the code. I don’t need superhuman diligence to defend against unhandled exceptions and corner cases. I wonder when the rest of the world (scripting languages? backend?) will catch up.

9 Likes

Elm doesn’t let you make something ugly and hide it under the rug. If you make one, Elm punches you in the face until you get it right.

Downside of that is, every other language seems weak in comparison. :smiley:

10 Likes

:rofl:

I was thinking - its a bit like having your mom telling you to tidy your room all the time.

9 Likes

but now she is checking the drawers and opening all wardrobes as well :smiley:

6 Likes

When I first started with Elm, I made lots of mistakes, and I thought “Oh another naggy compiler.” But very soon I realized that the compiler was my friend, indeed, an expert collaborator who could help out with both simple mistakes and tricky situations. Viva the compiler!

5 Likes

That’s elm-analyse :smiley:

6 Likes

Elm’s operators such as <| are sexy, unlike Haskell’s spaghetti operators which are literally random

2 Likes

Tooling! With a smart, syntax-aware IDE like Intellij, I can see and correct errors immediately. This means longer stretches between compiles, and that means more time “in flow” and much time saved.

2 Likes
  • Package manager, so i don’t have to use npm.
  • Simple, consistent ML syntax, so i don’t have to know all weird corner cases of Js.
  • Out of box cross-browser compatibility.
3 Likes

What I like about Elm the most is how fast you can implement your ideas and how consistently easy and reliable it is to build more things upon that.

2 Likes

Yeah, we like those punches :joy:

2 Likes

The clear and consistent communication from the BDFL about the future of the language. You really feel included in the process of moving from one release to the next.

1 Like

I think I haven’t seen this here: if I have to use a JavaScript package/framework, I spend hours finding the magic incantation. You never can now it works, until you have tried it. Extremely time consuming.

With Elm you simply have to find the incantation that compiles, and you’re done. Such a time saver!

7 Likes