Elm Bug-Free Web App Development

Kaspar L. Palgi
CrewNew.com
Published in
4 min readApr 22, 2022

One of the guarantees of Elm is that you will not see runtime errors in practice. Elm treats errors as data so there can’t be any crashing! And it doesn’t have NULL — so there are never any surprises. Coding without the surprise crashes means hours and hours saved in debugging = cheaper total cost & less stress for programmers when the apps scales. And happy programmers means better software and less money spent on recruiting new programmers!

In Elm impossible states are made impossible. No need to write unit tests!

Source>>

And Elm is blazing fast! It’s faster than it’s competitors React, Vue and Angular.

Elm is fast for the end-user because it has runtime system that might sound something big but actually, Elm is way smaller than it’s competitors (see the pic).

So far: no bugs, fast & small. Let’s move on!

And then there’s Elm UI that means that writing and designing the layout should be as simple and as fun as possible. And many layout errors (like you’d run into using CSS) are just not possible to write in the first place! Layout and style are explicit and easy to modify. CSS and HTML as tools for a layout language are hard to modify because there’s no central place that represents your layout.

Elm — Unbreakable apps development

So why not is everybody using Elm? One of the reasons is money! React has the Facebook’s bucks, Angular has the Google’s bucks! And Vue is actually nothing drastically new — just little simpler and a bit better React. But they’re all just JS (JavaScript). And people are religious! I mean with this that if you’re told since the beginning of your career JS, JS, JS and you’re been doing your whole life JS then you’re religious to JS and you deny to see something different and way better.

Elm is a delightful functional language for reliable webapps. It compiles to JavaScript, has great performance, no runtime exceptions, and can be embeded easily into existing JS projects without the need for huge rewrites or time investment. freeCodeCamp.org

OK, and finally some downsides of Elm:

  1. The biggest downside is the number of developers available is small compared to for example React developers. But when we started at CrewNew looking around Elm communities we found out that the average Elm developer is in general way better developer than for example React developer. And Elm developers are all Elm fans and don’t want to move away from Elm. Now we just don’t have great Elm developers on board but also some of our old team members started learning Elm (hey, it’s just bit more than 20 pages manual).
  2. In Elm, you can’t leave small bugs in and move on. You must fix every tiny bug to move on because otherwise, it won’t just compile. In React you could maybe go 15min earlier to enjoy your free time and leave some small bugs in but in Elm you can’t. But it will pay you back later. For example, 3 months later you might be asked to add some functionality and then you can’t remember those small bugs and spend hours thinking why that important feature now doesn’t work! So if you’re building your MVP and want to get everything done super fast = cheap then Elm isn’t the way to go but if you’re building something bigger than you want to scale then in long run Elm means fewer headaches and way less money spent over the years.
  3. Less working hours for developers means less money for developers. There’s even a video on YouTube: I used Elm in production and it cost me my job. He built a news portal for a major US magazine in Elm and once it was ready he had nothing else to do so he lost his job. With some other stack, he could keep his job by endlessly debugging and fixing.

Source: Elm crash course — Building unbreakable webapps fast

Elm is like chalk and cheese difference to the kind of development. I’m finding it increasingly difficult to program on other languages since I met Elm. Elm has decreased my confidence in other languages.

--

--

Kaspar L. Palgi
CrewNew.com

Backend programmer and veteran tech enthusiast. Mentoring and writing tech books. Team lead at CrewNew.com / lead developer at Klarity.app