purescript-concur / purescript-concur-react

Concur UI Framework for Purescript
https://purescript-concur.github.io/purescript-concur-react
MIT License
267 stars 17 forks source link

What are the downsides of this approach? #58

Open Eugleo opened 3 years ago

Eugleo commented 3 years ago

Hey, concur looks very interesting (I just had a quick read through the docs), however, due to it being such a unique idea, I'm unable to accurately assess its pros and cons in solving different problems. That could lead me (and probably a bunch of others) towards the more traditional "safer" libraries, like Halogen.

The pros I can somehow extract from the docs (but I'd still prefer a concise head-to-head comparison with the other frameworks, similarly to what you've done for FRP in the FAQ), but the cons, the problems? No mention of them anywhere. Not only does it make me immediately suspicious, but it hinders my decision process. The examples are great, but as a Purescript newbie, they can only take me so far (plus to ensure readability they're fairly small, so maybe not representative of Concur as a whole).

For example, in an old Reddit thread I read that it's complicated to maintain local state and return a value to parent. It seems that signals are now the way work around this. What about their drawbacks, though? And more importantly, are there any other things one would expect to be easy to do, but which aren't?

To conclude, I think a general document comparing the popular web frameworks (Concur, Halogen, react-simple-hooks, maybe others?) would be tremendously helpful. [^1] I propose you start with the passages mentioning use-cases and examples where concur doesn't work so well (yet), especially if it's unintuitive that it is so.

[^1]: That's a really big undertaking, of course, especially because you probably don't have much experience with all of the other frameworks. But even a concur vs [other framework you know] would be very useful.

prescientmoon commented 3 years ago

From my own experience,

Cons:

Pros:

Eugleo commented 3 years ago

Thanks, that's an amazing answer. I'd love to gather more opinions here. I find it rather weird that in a strongly typed language we don't have typed props. I guess it's more a fault of purescript-react than concur's, but still.