Skip to main content
  • ChevronChevron
    Elm at the helm: Working with a ...

Elm at the helm: Working with a new programming language

At TotallyMoney.com we are using Elm to create an internal administration tool. Elm, being a functional programming language, was quite different from what I am used to working with as the bulk of my experience is with Javascript. Despite this, having Elm at the forefront of our interface has been working well. At first it was intimidating facing a new language with a syntax that was completely different from what I had worked with before. However, as I dove deeper into Elm I was able to get over the hurdle of unfamiliarity and began to see its many benefits. As well as being quite easy to pick up, Elm is also enjoyable to use. The tools make it simple and frictionless to develop, and the compiler makes refactoring a breeze. Some tasks that would usually take days in alternative languages can take only a day or less in Elm. We’ve had zero run-time exceptions and fewer bugs, largely because Elm’s type system forces you to model your domain more carefully. One benefit of this is you can write code that doesn’t need tests, which increases productivity. Here's image of the code and one of the administration tool itself.

Screen Shot 2017-05-31 at 14.52.57
Screen Shot 2017-05-31 at 14.55.13
While using Elm has been a positive experience, there have been some hiccups along the way. Learning how to structure a large application, or at least one that had the potential to scale, proved difficult in the beginning. Eventually I found a solution that was well suited for our administration tool. I would point out that Elm is still a young language, which requires a bit more effort than you'd expect with some alternatives. A compromise must be made between no runtime exceptions in practice, descriptive compile-time errors, an easy and robust refactoring experience and the drawbacks of having to do a bit more work. This is notable in scenarios where the requirement is so bespoke that there isn’t an Elm package available for it yet. For now, accepting this exchange has proved successful. There is no doubt a lot more to discover in Elm that could be implemented in other areas of production at TotallyMoney.com. After all, ignoring new methods rarely leads to good things, whereas constantly evolving and experimenting will keep you in the game.

TotallyMoney Logo

We're on a mission to improve the UK's credit score and help people move on up to a better future.


TotallyMoney is an independent credit broker, not a lender. Our comparison service works with most leading lenders, covering the majority of the market. Though we may be paid a fee by lenders or brokers this never influences how our products are ranked.

We don't provide financial advice. Product information is obtained from independent sources and rates displayed may vary depending on your personal circumstances. While we make every effort to ensure that information is up to date, you should always confirm the terms of the offer with the product provider.

TotallyMoney is owned and operated by TotallyMoney Limited which is registered in England and Wales (Company Registration Number 06205695). TotallyMoney Limited is an Appointed Representative of TM Connect Limited, which is registered in England and Wales (Company Registration Number 06967012) and authorised and regulated by the Financial Conduct Authority in respect of consumer credit related activities (FCA FRN: 511936). Trading Address and Registered Office: Chapter House, 16 Brunswick Place, London N1 6DZ. Credit is available, subject to status, only to UK residents aged 18 or over.

We use cookies as described in our Cookie Policy. Continue browsing or click to accept.