That is a good summary of the options for Haskell web development. The author of this slide deck also wrote "Beginning Haskell." I bought this book and like it. That said I have an addiction to buying Haskell books :-) Personally, I use Yesod for complicated apps, otherwise Spock.
Developing Web Applications with Haskell
11–20 of 33 posts
Re: Developing Web Applications with Haskell
#12Does it support a "React" style of building web applications?
Re: Developing Web Applications with Haskell
#13Does it support a "React" style of building web applications?
I also use purescript[2] with purescript-halogen[3] as does slamdata[4]. There's also a video on Purescript halogen[5] that's very interesting.
Purescript is great because the JavaScript it generates is so readable, that if you really need to you can understand the output and make micro-optimizations.
0: https://github.com/ryantrinkle/reflex
1: https://github.com/ryantrinkle/try-reflex
Re: Developing Web Applications with Haskell
#14That is a good summary of the options for Haskell web development. The author of this slide deck also wrote "Beginning Haskell." I bought this book and like it. That said I have an addiction to buying Haskell books :-) Personally, I use Yesod for complicated apps, otherwise Spock.
That was definitely a good book, would recommend it as well.
I almost got stuck not reading on because I couldn't figure out how to do some exercises but I'm glad I didn't because hindsight shows me that would have been a mistake.
Re: Developing Web Applications with Haskell
#15Earlier quoted context omitted.
That was definitely a good book, would recommend it as well.
I'll also chime in and say the same. I've been meaning to go back and complete the exercises I couldn't at first. I almost got stuck not reading on because I couldn't figure out how to do some exercises but I'm glad I didn't because hindsight shows me that would have been a mistake.
http://www.apress.com/9781430262503?gtmf=s
Nice timing. Buying now. Thanks for the tip.
Re: Developing Web Applications with Haskell
#16It looks like a good start. I've been trying to learn Haskell and F Sharp and other functional languages and always wondered if there was a web option.
Re: Developing Web Applications with Haskell
#17Does it support a "React" style of building web applications?
Don't forget about reflex[0], you can try it here[1]. I also use purescript[2] with purescript-halogen[3] as does slamdata[4]. There's also a video on Purescript halogen[5] that's very interesting. Purescript is great because the JavaScript it generates is so readable, that if you really need to you can understand the output and make micro-optimizations. 0: https://github.com/ryantrinkle/reflex 1: https://github.com/…
Do you think that Purescript's row typing (as seen in records and the Eff monad/effect system) is a viable replacement for monad transformer stacks? I "get" MT stacks but I find them heavyweight when what is most often desired is commutative set building of capabilities rather than MT-style stacking.
Re: Developing Web Applications with Haskell
#18Earlier quoted context omitted.
Don't forget about reflex[0], you can try it here[1]. I also use purescript[2] with purescript-halogen[3] as does slamdata[4]. There's also a video on Purescript halogen[5] that's very interesting. Purescript is great because the JavaScript it generates is so readable, that if you really need to you can understand the output and make micro-optimizations. 0: https://github.com/ryantrinkle/reflex 1: https://github.com/…
Thanks for the links! I'm really curious about what Haskell can come up with for a front-end story. Do you think that Purescript's row typing (as seen in records and the Eff monad/effect system) is a viable replacement for monad transformer stacks? I "get" MT stacks but I find them heavyweight when what is most often desired is commutative set building of capabilities rather than MT-style stacking.
Some effects in PureScript look a lot like the effects provided by certain monad transformers (StateT/ST/Ref, ExceptT/Exception, etc.), but there are differences in terms of how things compose. Take StateT and ExceptT for example: you can compose them in two ways, and get two different monad transformer stacks, with different behaviors (surrounding how state propagates when an exception occurs). There are valid use cases for each, but with the ST and Exception effects, there is only one way to combine them: the way the underlying (Javascript) runtimes chooses for us.
There are things which each one can do which the other cannot. Fortunately, we can mix and match in PureScript since we have the purescript-transformers library. A typical arrangement is to stick Eff on the bottom of a monad transformer stack.
_Edit_: of course, everything you can do with a monad transformer can be done more verbosely with pure functions and the underlying monad, so you _could_ replace monad transformers with Eff in many cases, but in practical terms, it might not be all that useable in some cases.
Re: Developing Web Applications with Haskell
#19Earlier quoted context omitted.
Don't forget about reflex[0], you can try it here[1]. I also use purescript[2] with purescript-halogen[3] as does slamdata[4]. There's also a video on Purescript halogen[5] that's very interesting. Purescript is great because the JavaScript it generates is so readable, that if you really need to you can understand the output and make micro-optimizations. 0: https://github.com/ryantrinkle/reflex 1: https://github.com/…
Thanks for the links! I'm really curious about what Haskell can come up with for a front-end story. Do you think that Purescript's row typing (as seen in records and the Eff monad/effect system) is a viable replacement for monad transformer stacks? I "get" MT stacks but I find them heavyweight when what is most often desired is commutative set building of capabilities rather than MT-style stacking.
Re: Developing Web Applications with Haskell
#20Does it support a "React" style of building web applications?
On the other hand, much of React is a natural play out of Haskell's sweet spot. The challenge will be in making Js-alike APIs which handle the flexibility well while maintaining sufficient typing. React-like rendering, virtualdom, data flow... this will all be incredibly naturao.