Rewriting to Haskell–Intro
At Lunar Logic we use an internal web application to handle announcements. Stream has been used by the entire company for the last 6 years or so. Over time we have discovered it’s a great place to run tech experiments: production enough to feel real but internal enough not to cause too much damage if stuff goes wrong.
Stream was born as a Rails application, then transitioned to Rails API + Ember and after that Rails API + Elm. Rewriting the frontend to a functional language got some of us hooked into Functional Programming. As a matter of fact, on Slack somebody said “We’ve rewritten the frontend 100%. Do we really want to not have types in the backend too? 😏”. This seed has been growing for a couple of years, until today we decided to take action.
We gathered the FP aficionados in Lunar and decided to rewrite the backend to Haskell. In particular, we want to focus on the following goals:
- no committments, we will go on as long as it’s fun;
- making Haskell accessible to newcomers;
- creating a proof of concepts for future projects;
- small valuable iterations like we did for AirCasting.