DEV Community

Discussion on: "Haskell for the Front-End" :: Elm vs. PureScript

Collapse
 
wolfadex profile image
Wolfgang Schuster

Not my words, but copy pasted from Elm Slack:

"I dont have a dev.to account but:

PS can compile to JS, C++, Go, and (recently/?incompletely?) Erlang.

You can write TEA-style code in PS but you can't write all PS-style code in Elm. There's lots of webapp frameworks(React-wrappers, Pux(TEA), Halogen(VirtualDom), FRP-style, etc.) with different tradeoffs instead of being limited to Browser.element & friends.

PS doesn't force you to a global model or message - sub-units can store their own state & perform effects without having to wire them through all the parent units.

PS's FFI produces PS functions instead of async Cmds like Elm.

PS has typeclasses(Monads + do notation!), HKTs, explicit foralls, derivable/generic JSON encoding/decoding, etc.

While Elm simply has elm make, elm install, etc. PS has different tools you can use, bower for pkgs, pulpfor building,psc-packagefor package sets,spagofor building & package sets,pscid` for quick rebuilds/test-running, etc.

Elm has an implicit Prelude/Basics with much more to work w/ while PS makes you import Prelude and that doesn't even include the Either & Maybe types or constructors!

Elm has way more users.

Since Elm has only TEA, there's many more UI component libraries & they all work together. With PS you're limited to UI libraries that are structured for the framework you use.

You'll probably have to set up you're own routing flow in PS. In Elm you can just use Browser.

Elm enforces SemVar in package versions, PS doesn't.

Etc etc...

Here's some PS code I wrote:
github.com/prikhi/quickbooks-for-c...

And some Elm:
github.com/Southern-Exposure-Seed-..."

  • @lysergia
Collapse
 
steshaw profile image
Steven Shaw

Given your experience with both Elm and PureScript, which do you prefer?

Collapse
 
wolfadex profile image
Wolfgang Schuster

I don't have experience with PureScript, I was quoting someone from the Elm Slack who has used both but doesn't have a dev.to account.

Thread Thread
 
steshaw profile image
Steven Shaw

No worries, I missed that bit. You're enjoying Elm though? I seem to recall that it's a completely total language (with perhaps an escape hatch or two).

Thread Thread
 
wolfadex profile image
Wolfgang Schuster

I absolutely love Elm. It definitely has its flaws, but it's the friendliest language I've ever used. Not just for someone who's never programmes before, but also people with many years of experience. I've been doing front end development for 8 years now and if I could I'd only write Elm with a sprinkling of JS here and there.

I even spent 3 months writing up a proposal for work about why Elm was the best choice for a project we started back in June.

I think my favorite part is that the community and the language aren't about being the most concise or "the best". The focus is all about communication, both between the developer and the language, and between developers. Good communication, for me, is more valuable than almost anything else.