Fluid to use PureScript
November 28th, 2017
Code generator constraints
While Fluid has noblier ambitions by targeting support of 40+ languages, the generator can only be written in one. So I can afford to be picky about which one. In fact, I should be. It's the glue that holds everything together. It needs to be strong.
Target language representation
PureScript vs Haskell
Because PureScript is deeply inspired by Haskell, it has many of the same core features. And with this project, PureScript's goals happens to be more aligned than with Haskell's. I'm not dropping Haskell. However, it's been a refreshing change not dealing with historical quirks.
Contribution and language barrier
PureScript is niche, being even smaller than Haskell's community. Warranted or not, Haskell has been notoriously difficult to learn. While the barriers are lowering with Haskell and PureScript, I don't expect anyone using another language to jump in.
At the same time, this could be moot. Most OSS projects don't have many contributors.
Can support a web app
I'd like to have a playground web app. One which generates a test client on the fly.
Minimally, Fluid reads the JSON spec, creates a directory, and writes files. While I like PureScript's Effectful system with Monads because of how powerful they can be, the IO needs are basic. And both work fine—for now.
Distribute as a binary
All code will eventually be deleted, forgotten, or legacy code. One day, I hope Fluid will become honorable legacy code.
Overall, PureScript feels as though it's been on the upswing. I'm happy to jump in and create.