Senior Software Engineer (Backend)

You should really try Elm. Nobody talks about it but it’s such a good technology. We tried React but it was so heavy and cumbersome, so we decided to use VueJS, which was fine but it can get quite complicated and chaotic with bigger projects (Vuex just adds another layer of complexity and doesnt really make the code simplier) then we tried Svelte, which felt like a summer breeze, we really liked it (it was so good that VueJS team used the whole idea for Vue3). We’ve been using VueJS for many years now but I realized we are dealing with the same problem, over and over again: uncertainty coming from a change in code

No matter what I said to my guys they were from time to time too brave and too self confident about the changes they made in Vue or Svelte applications and they didn’t test the change properly or they didn’t think it through. OR they just felt like the code is too complex and they ought to make it more effective, understand broken, not tested, not covering all cases.

And then I stumbled over Elm.

First of all, both React and Vue are based on Elm the same way Java and .Net are trying to be Erlang but they are not and never will be because they added too many layers of complexity. So what is the point of using something that pretends and like to be simple but it’s not and never will be.

Secondly, Elm comes as a whole package. It replaces npm, webassembly, typescript, and so on. Compilation of our projects(nothing big but still) takes approximatelly 2seconds on very average SSD.

Thirdly, you as a programmer really have to cover all corners of your code and for me as a business owner that was really beautiful to see because in Vue you didn’t have to do that and so now I started to see new warnings displayed to users instead of just wondering what happened and looking into dev console hoping there will be something useful: but of course, “undefined property”

Another awesome thing is that the code is always the same for all applications, all programmers, all levels of programming experience, a “skilled” junior can make a mess in any programming language but here at least it has to be compilable. You have four main blocks of code and that’s it, everything else is just a helper function.

It’s really fast! Sometimes it’s so fast it feels to me like it was render on server. And it’s small. I remember way back when I started with React that React’s HelloWorld application had, after npm i, 480MBs [UPDATE: now it’s only 170MBs] of downloaded packages. The whole application had only TWO files the rest was the framework itself. (?!?!!???!!).

HelloWorld in Elm has 540kb, I’ve just tested it. So it’s the same range but different magnitude. :-)))

It’s pluggable into React applications. So if you are stucked with React you can still use Elm.

And lastly, it has very stable code base. Every once in a while there is a new version of Elm but all packages have time to grow with it and then it’s stable for another year or so.

Sorry for the of topic but whenever I see React I have to ask WHY?

4 Likes