At Engage, we've been excited to embrace a new technology for creating web applications that are more maintainable, performant, and reliable. As we keep up on what's changing in the web development landscape, there are too many tools, technologies, and techniques to even read about them all, much less give them a try. But as we entered 2016, we knew that what we had been doing wasn't going to keep up with us as more and more functionality moves to the browser in more and more complex interactions. As we surveyed the landscape of front-end web application frameworks, we found that we were continually hearing about interesting new frameworks and libraries that were influenced by Elm. Elm is a programming language that compiles to JavaScript, designed from the ground up for creating web applications, in a way that guides developers towards well-architected code, in the way that only a new language can.
Learning a new language can be daunting, but Elm also has a wonderful focus on being easy to learn, from helpful documentation and a very welcoming community down to the error messages from the tooling itself being amazingly helpful, straightforward, and complete. And the reality was that, if we didn't use Elm, we were going to be using most of these same concepts anyway in one of these frameworks or libraries that Elm inspired.
We've started making use of Elm on a couple of projects, and have been very happy with the results. The Elm Architecture lets these projects grow in a way that doesn't require major changes to introduce new features. Elm also provides guarantees that the application won't just stop working in the middle from some mysterious error, which is always a possibility that we have to be aware of with JavaScript-based solutions. And, on top of all of that, Elm is super easy to test, allowing us a achieve a much higher level of confidence in the business logic contained within the application.
At Engage, we love being able to solve our customers' problems, and having a tool that gives us a better way to do that is great to have in our toolbox. We're enjoying the benefits of Elm and looking forward to continuing to make it more a part of our solutions. If you're a developer and looking for more specifics on Elm, I've writing another post that focuses on the specifics of Elm from a developer's perspective.