I’m 78% of the way through Elm For Beginners, a free course about the Elm programming language. I first read about Elm in Seven More Languages in Seven Weeks but did nothing with it until this week.

My reasons for learning Elm are simple:

  • It compiles down to HTML, CSS, and JavaScript, the three languages used to build web applications
  • It’s a functional reactive language with strong types and immutable data structures

Though I’ve had some experience with HTML and CSS, web development isn’t the first thing that bubbles to the top when I consider the software development that I’ve done in the past. I fiddled around with JavaScript because it’s become the lingua franca on the web and I felt I should know it better but there are some things about it that leave me cold.

I’ve read a lot about functional languages in the past, about how their immutable data and lack of side effects help you develop code that is easily maintained, easily testable, and easily refactored. Given that most of my coding has been in C# .NET over the past years I figured I would check out F#, Microsoft’s functional language.

But when I looked at F# I just wasn’t excited about it (I still might use it for cross-platform development with Xamarin down the road) and I had this nagging feeling that I should beef up the web development side of my resume but I didn’t want to start at the HTML/CSS/JavaScript level.

So I took another look at the Elm, checked out the home page and some of the documentation and decided that this is the language that I want to use for creating web front ends. Down the road I can figure out how to make it interop with either  ASP.NET MVC or learn another functional language like Elixir, combined with the Phoenix framework.

I’ll leave you with Richard Feldman’s excellent Introduction to Elm.

This entry was posted in Software Development and tagged , , . Bookmark the permalink.