Hacker News new | ask | show | jobs
by iamwil 3247 days ago
Having started using Elm for side projects over 3 years ago, the article is pretty much spot on.

Programming in Elm had been a delight, especially when you let go of OOP and embrace functional concepts and practices. On one hand, you lose mental tools that you've relied on, but you gain the other tools you didn't even know existed before.

Where I really disliked about Elm is when I had to encode or decode JSON. It's a giant royal pain in the ass. Also, when you find you have to break out to JS often for libraries you don't want to write yourself, it's not a good fit--as I found out when write a toy interactive notebook to render markdown in Elm.

But for most SPA that just manipulate form data and communicate with the server, it's a pretty great fit.

1 comments

Isn't decoding JSON a big part of an SPA though? How do you deal with data from the server?
There exist multiple tools to aid you with writing decoders:

- json-to-elm http://json2elm.com

- swagger-elm https://github.com/ahultgren/swagger-elm/

- elm-graphql https://github.com/jahewson/elm-graphql, https://github.com/jamesmacaulay/elm-graphql

- elm-export https://hackage.haskell.org/package/elm-export

Once you've got the hang of it, it's not that hard either. Just time consuming. That's where json2elm comes in :)

Once you handle a couple of complicated cases, you're ready to solve any JSON decoding within minutes. It's just a small learning curve to go through.

Also, once you get the hang of it, you can use it as your safety layer for incoming data. To guard the app from any invalid response.

I've even used GraphQL for one of my projects, decoding worked fine as well.