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.
Programming languages enthusiast. Author of Learn Type Driven Development: https://www.packtpub.com/application-development/learn-type-driven-development
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...
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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.
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: