DEV Community

Discussion on: Should I learn ReasonML or Elm?

Collapse
 
nestedsoftware profile image
Nested Software • Edited

If you're new to functional programming, I think Elm may be a bit easier to get started with, since it is both a language and a front-end framework. The framework part is similar to React with Redux (Redux used Elm as inspiration).

I think ReasonML just lets you compile to javascript out of the box, so (if I am not mistaken) to get a front-end framework, you'd need to add an additional library, like Bucklescript-TEA or ReasonReact

Elm is also a pure functional language. If you haven't programmed in a pure functional language before, learning Elm first may be a good idea. That way you get to appreciate both the pros and cons that are involved.

I think ReasonML is more flexible - you can choose to make functions impure if you wish. This makes it easier to get some things working, but it also places more of a burden on you to exercise your own self-discipline. Maybe you can make more of an informed decision about relaxing those constraints once you've got some experience under your belt in a language where you don't get to make that choice - kind of like learning to ride a bike with training wheels first.

I'm not saying you should stick with Elm in the long run - ReasonML seems to have a lot more industry support - just that of the two, Elm may be simpler and quicker to pick up first.

Collapse
 
yawaramin profile image
Yawar Amin

Basically, you are right. I would just add that ReasonML's JavaScript compiler, BuckleScript, comes with a scaffolding system so it's pretty easy to get started with a ReasonReact project:



# Make sure you have write access to /usr/local/.../node_modules
$ npm install --global bs-platform
$ bsb -init my-reasonreact-project -theme react
$ cd my-reasonreact-project
$ npm install
$ bsb -make-world # compile all dependencies
$ bsb -w # watch mode
# Start hacking...