I never enjoyed frontend programming until I came across Elm. Not only that Elm turned out to be a gateway drug to Haskell. Now I write frontend and mobile apps in Haskell using Functional Reactive programming (FRP).
The lead paragraph is a bit worrying.<p>> Since July 2017, I’ve been leading the frontend rewrite of their flagship product. The codebase was at 16k LoC when I started. Since then, I’ve rewritten the various subsystems at least once (I'm looking at you generic form component). Now we hover around 45k LoC with most of the common SPA structures stabilizing. We are about a third of the way to completion.<p>I don't know if it's common for rewrites to triple the amount of code while being only 1/3rd complete, but it certainly doesn't feel like "these are the facts I should lead with."<p>Edit: I read more of the prologue, and it turns out that the initial 16kloc application was not complete.
A bit of a side-track, but I feel like I'm in a weird waiting phase with Pure FP JS.<p>With Elm, I don't really feel like introducing it to my team before 0.19 hits, because it "feels" like it's around the corner, but it has felt like that for a while.<p>With Haskell, I'm not entirely happy with GHCJS and the tooling surrounding it. I'm dreaming of the WebGHC[0]/WASM being nicer, if it ever gets done.<p>I don't exactly know what keeps me off PureScript, perhaps that most frameworks just seem to compile to React, and that the community still hasn't settled on one (at least it seems so from the outside).<p>Honestly, Miso[1] is the one I feel the most optimistic about atm.<p>[0] <a href="https://github.com/WebGHC" rel="nofollow">https://github.com/WebGHC</a><p>[1] <a href="https://haskell-miso.org" rel="nofollow">https://haskell-miso.org</a>
All the ML inspired languages seem to fall over on compile time. This post is a good example, where it describes design choices driven specifically by compile time, which is not a dimension I usually want interacting with the way I structure my code. I love the rest of the story (full disclosure: I have years of experience with Scala and Swift, which are no better) but until sufficiently advanced compilers arrive these languages are going to continue to be a hard sell for a substantial group of developers.
I also shared my elm experience a few days ago:<p><a href="https://news.ycombinator.com/item?id=16750842" rel="nofollow">https://news.ycombinator.com/item?id=16750842</a>
I've only used Elm for a hobby project. Given how much I enjoyed the experience of web app programming for once, it's nice to read how well it scales to a large application.
Thanks for writing this. It's encouraging to read about others' experiences using Elm in production. After a couple small side projects in Elm, I'm finally using it in a few low-risk areas at work.
Took me a while to realize this wasn't about the Elm email client <a href="https://en.wikipedia.org/wiki/Elm_(email_client)" rel="nofollow">https://en.wikipedia.org/wiki/Elm_(email_client)</a>