Adventures in Elm Lang

Last week Will and I headed to the West London Hack Night meetup group for a specially organised Elm Lang hack, with Elm’s creator, Evan Czaplicki. Having both played a small amount with Elm we were keen to meet Evan and other Elm developers to see what they thought about the language.

Elm is a typed, functional language that’s aimed at JavaScript developers wishing for a little more structure and safety in their applications. It boasts an intelligent compiler that is great at catching errors, a debugger that lets you go back in time and a very performant HTML library for rendering your application. Elm compiles into JavaScript and is great for building browser based games and applications.

Despite being a relatively new language, Elm is steadily picking up support – people are finding the benefits of a typed language and compiler really useful in building complex applications. Elm’s surface area is small; the standard libraries included are kept purposefully slim. This means it’s really easy to get up and running without having to learn a huge library, and for the times when the standard library isn’t enough Elm’s package manager will help you use 3rd party modules or publish your own. Of the open source libraries out there we’ve found Elm List Extras to be one of our favourites.

At the hack night we split into groups; some tackled working with the Spotify API to list album results from a search query and others took on implementing a simple Tree structure in Elm. If you’d like to try the challenges yourself, you can find the starting code on GitHub. We picked the tree challenge and set about implementing the methods asked for in the starting code, the most challenging of which was the fold function for reducing a tree to a single value. In about 45 minutes we managed to complete the challenge, and our solutions are up on GitHub .

Huge thanks to Kris Jenkins for organising the hack night and to Evan for giving up his time to help us with the challenges. It was great to be in a room along with so many other Elm enthusiasts and we’re really excited to see what the future holds for the language.

Ready to begin?

Start building your realtime experience today.

From in-app chat to realtime graphs and location tracking, you can rely on Pusher to scale to million of users and trillions of messages