State of JS '18 results

My theory is that there are two big issues Reason solves. The first is on the company side there is a fear of finding new users and the language being abandoned. On the developer side it has a scary foreign syntax and learning curve. We see this being echoed in the survey.

One thing reasonML pushes is it's familiar syntax. I think this is Reason's big leg up against Elm on the design side since they both are designed for Javascript users. A familiar syntax makes it easier to onboard new users. These users can also more easily transfer their knowledge from Javascript. People without experience of ReasonML can also look at code samples and understand what is going on. This makes ReasonML perceived as easier to learn thus making it a more appealing choice for developers. Then the fact that it is being backed by a big company gives the impression that it won't be abandoned anytime soon. So it manages to solve two of the big concerns that Elm suffers from, both from a business perspective and developer perspective. It does this while still providing a lot of the same perceived benefits.

However in my experience, a grad student who has previously worked in React can get somewhat productive in Elm within a week. So the learning curve is not that bad for Elm with mentoring. People report that they dislike the small ecosystem. I think however a small ecosystem is okay since the libraries are of much higher quality. Small things like libraries being sold on merit not by marketing makes them also easier to learn and quicker to get started with. Since Elm is pure it also lowers the chances that some random, low popularity library tries to steal information from your site so you can feel a lot more relaxed importing it.

NPM ecosystem is a security nightmare in comparison. It is very hard to check that the code doesn't do anything shady and everyone just imports dependencies for everything. Reason doesn't solve this issue, but for a lot of people this doesn't affect them since they don't see it as a risk. They see it as a feature rather. I also think it's a fallacy to trust big businesses more with frameworks/languages. For example Angular 1 or Facebook's Parse. So even if Reason can be perceived as a better choice, I don't think it is. Sadly perception is all that matters for adoption.

/r/elm Thread Parent Link - 2018.stateofjs.com