The Engage Weblog


Adopting Elm

By Brian Dukes on 6/17/2016

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.

Brian Dukes

Brian Dukes has been working with Engage professionally since 2006, but has been writing code since around 1998. Brian is very passionate about writing code that is easily maintainable, and helping others to do the same. He has been a leader in the DotNetNuke Community, and can often be found speaking at conferences and helping others on twitter, github, and stackoverflow. DNN recognized his community efforts by awarding him the DNN MVP in 2012. Outside of work, Brian spends time with his family, serves Jesus at City Lights Church, as well as supporting social justice, fair trade, local, seasonable food, and international adoption.