After using Elm for a while I have dove into a project using GHCJS and reflex dom and I wanted to share some thoughts on the developer experience as I have found it with GHCJS vs elm
GHCJS does not work (Well) on a mac
I have found that trying to use GHCJS under the current version of MacOS does not work well or at all. I have had to resort to using a virtual machine under Vagrant to run it on my laptop which serves as my development machine at least some of the time.
GHCJS is a memory hog
I have found that when I gave that Vagrant box 4gb of RAM that I often would get out of memory errors. All the type safety in the language is not so useful if the compiler can’t actually compile it due to “only” having 4gb of ram.
I ended up doing some development on a cloud machine, which had other issues mostly due to a slow office network.
GHCJS is slow
On my desktop machine (i7 with 4 cores and 32 gb of ram) I found that when I changed 1 50-60 line file it would take as much as 40s to compile the project. This is after a full compile (it has a lot of dependencies) which can take as much as 40 min on a fast computer.
Reflux-dom is immature
A lot of places the only docs are a bunch of type signatures. So a lot of things like “How do I build a wizard” or the like are hard to figure out. I would like to see some examples of existing apps from more than one person so I could have a sense of what are the patterns and anti-patterns for using it.