Why Elm is a technical advantage

Choosing what language you use is often seen by programmers as a personal one made by their team. However it affects everyone I'm the whole company every single day.

What programming language you choose to build an app in is analogous to what material you choose to make a building out of. It determines how it wears over time, how expensive it is to do renovations, and even how it feels to be in. I'll talk about each in turn.

How it wears over time

You can build a beautiful house out of popsicle sticks and Elmer's glue. It's all well and good till someone does something unexpected like leans against a wall or jumps on the stairs. Perhaps you could even fix the issues given enough popsicle sticks and time. However wouldn't it be nice if the materials you used didn't break so much and weren't so tedious to put together.

Code has different properties than physical materials but it does break and rot. Breaking would equate to runtime exceptions (as opposed to wrong behavior which is analogous to bad design). Rotting is analogous to getting harder to understand or being deprecated over time. How long does your codebase take before you start to regret it? How does the language encourage error prevention and recovery?

These things matter to your end users because they are the ones who have to work in the building you built. If your app requires a page refresh frequently to get it to work they probably won't stay around. I mean if you kept falling through the floor and having to climb the stairs to get back to where you where would you want to work in there either? Bottom line is that runtime exceptions are always a bad user experience.

Renovations

The Experience