There's a joke (well, not really) that if you want to teach your child how to swim, just throw them in the swimming pool. This is basically how I got my introduction to Elm: straight up writing a project in it. And having used only OOP for my entire career, that FP approach was... mhhh, not easy on me. Having the functools module in Python along with iterators and generators helped a bit, but seeing terms like
monad made me a little nervous. Yes, I should have just looked these up the moment I saw them. And I finally did. This week Scott Wlaschin did an amazing stream called the "Functional Programmer's Toolkit" which explains many of those concepts in great detail with a language that a beginner would get:
Morphir is a multi-language system built on a data format that captures an application's domain model and business logic in a technology agnostic manner. Having all the business knowledge available as data allows you to process it programatically in various ways:
- Translate it to move between languages and platforms effortlessly as technology evolves
- Visualize it to turn black-box logic into insightful explanations for your business users
- Share it across different departments or organizations for consistent interpretation
- Store it to retrieve and explain earlier versions of the logic in seconds
With Elm frontend you can write domain models in Elm which then gets translated to the intermediary representation and can run on one of the backends like Scala or F#.
The summer is over, and Alex Ionkov has shared his experiences participating in the Google Summer of Code. He has used Elm to build the UI for Kodi, a software media player. Alex's mentor in this task was no other than Kolja Lampe who you might know under the handle Razzeee. Alex explains how he approached the task, where most of the time went, and what it takes for a person new to Elm to write a project in it. He says...
It is a different way of thinking about programming which I found very challenging at first but ultimately, really intriguing and surprisingly easier than I anticipated.
It looks like the summer holidays are over and people are getting back to work. Jetstream Cloud is looking for student for paid Elm internship. It's a remote position, but looks like you need to be based in the US. Pretty cool nevertheless.
Quote of the week
Paul Graham has a dedicated page of quotes about Lisp, and I'll pick one from there:
Programs must be written for people to read, and only incidentally for machines to execute
by Abelson & Sussman, SICP, preface to the first edition