Front-end frameworks: Flame, Concur, Halogen or something else?

Personally I just have a “template”-file for a component lying around which makes it really easy to reuse.

I’ve used Hooks too for a project and while it did work out great I found that it’s easier to get spaghetti-code using hooks - “normal” Halogen with it’s TEA approach forces you in a more obvious structuring of the component (mainly because you have the eval/handle functions for the “logic” instead of being able to stick it more or less right into the view part.

Also I found that I tend to use nested functions a lot with hooks (to remove the need to pass along parameters) which is great but sadly you get no type-inference support in the editor with this (something that the Haskell LSP really does a great job with btw).

1 Like

For the parts of the app that are in Concur you could just run all components that you want to talk to each other in the same StateT monad too, global state essentially.

1 Like

does concur play “nicely” with SateT? I’m asking because AFAIK Halogen does not.

I have used it analogously to local state in ReactJS, and have experienced no problems. What problems does Halogen have with StateT ?

There is a Issue where it is discussed and you usually get warnings like this

To be honest that’s from a few years back and maybe current versions don’t have that issue but by now I don’t even think about using StateT instead I either use Vars or something like the store

1 Like