
I'd like a recommendation for a way to write web apps in Haskell. Background: I have written code in Python, C++ and Haskell for many years. However I have done no substantial web programming. My goal is mathematics-education-themed apps to run on browsers on any device. At first I'll be happy to run the app on my laptop and connect locally with an iPad or smartphone while I sit with my students. Later I may deploy it at scale "in the cloud" (I mean anyone connected to the internet can run it, and the servers belong to the hosting provider). Why a browser app? I figure it's the best way to get a portable app that will run on phones, tablets, and computers of all OS's. Why Haskell? The goal right now is fast prototyping and experimentation, especially for some fairly complex algorithms. I spent some time with JavaScript, TypeScript, and Scala.JS. I'm just so much more comfortable in Haskell with which I can write clean & sophisticated algorithms quickly. I see lots of mentions of Haskell "platforms" and "stacks" etc. on the Haskell Wiki. But I will confess I don't really know what a "platform" or "stack" is, or which of the options will support my needs. I know close to zero about apps in the browser. Regarding my UI needs, my app will have lots of graphics and lots of things to click on, drag, etc. It will need to be touch-screen responsive. Dennis

Hi Dennis, I've read lots of good things about purescript (http://www.purescript.org/). greg _____ From: Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Dennis Raddle Sent: Friday, February 09, 2018 9:14 PM To: haskell-cafe Subject: [Haskell-cafe] web framework I'd like a recommendation for a way to write web apps in Haskell. Background: I have written code in Python, C++ and Haskell for many years. However I have done no substantial web programming. My goal is mathematics-education-themed apps to run on browsers on any device. At first I'll be happy to run the app on my laptop and connect locally with an iPad or smartphone while I sit with my students. Later I may deploy it at scale "in the cloud" (I mean anyone connected to the internet can run it, and the servers belong to the hosting provider). Why a browser app? I figure it's the best way to get a portable app that will run on phones, tablets, and computers of all OS's. Why Haskell? The goal right now is fast prototyping and experimentation, especially for some fairly complex algorithms. I spent some time with JavaScript, TypeScript, and Scala.JS. I'm just so much more comfortable in Haskell with which I can write clean & sophisticated algorithms quickly. I see lots of mentions of Haskell "platforms" and "stacks" etc. on the Haskell Wiki. But I will confess I don't really know what a "platform" or "stack" is, or which of the options will support my needs. I know close to zero about apps in the browser. Regarding my UI needs, my app will have lots of graphics and lots of things to click on, drag, etc. It will need to be touch-screen responsive. Dennis

Thanks, but what do you think the learning curve will be on PureScript? How similar to Haskell is it? I want to balance some factors here. As my initial goal is rapid prototyping and experimentation, I'd like to use a language I already know well, in other words Haskell. But of course even with a familiar language, I'm going into a quite unfamiliar situation (web programming) and there is a learning curve with that. It may be that a language other than Haskell, i.e. PureScript, although requiring a learning curve, would be more suited to my app's needs and thus save me grief. I don't know. Dennis

Purescript is very close to Haskell, check it out! _____ From: Dennis Raddle [mailto:dennis.raddle@gmail.com] Sent: Friday, February 09, 2018 9:54 PM To: Gregory Popovitch Cc: haskell-cafe Subject: Re: [Haskell-cafe] web framework Thanks, but what do you think the learning curve will be on PureScript? How similar to Haskell is it? I want to balance some factors here. As my initial goal is rapid prototyping and experimentation, I'd like to use a language I already know well, in other words Haskell. But of course even with a familiar language, I'm going into a quite unfamiliar situation (web programming) and there is a learning curve with that. It may be that a language other than Haskell, i.e. PureScript, although requiring a learning curve, would be more suited to my app's needs and thus save me grief. I don't know. Dennis

If you know Haskell, then the remaining bits of PureScript will not take
very long. It's like moving from C++ to Java, or Ruby to Python. Most of
your experience carries over, and you can learn the differences as they
arise. You can likely be productive in PureScript tomorrow.
There's a lot of discussion on PureScript development on the FPChat slack,
invite link here: https://fpchat-invite.herokuapp.com/
In my experience, PureScript has been much nicer to work with than GHCJS or
Elm. PureScript's editor tooling is absolutely fantastic, and the language
has "fixed" a number of warts in Haskell. The record system and interop
with JavaScript are wonderful, as well.
Matt Parsons
On Fri, Feb 9, 2018 at 7:54 PM, Dennis Raddle
Thanks, but what do you think the learning curve will be on PureScript? How similar to Haskell is it?
I want to balance some factors here. As my initial goal is rapid prototyping and experimentation, I'd like to use a language I already know well, in other words Haskell.
But of course even with a familiar language, I'm going into a quite unfamiliar situation (web programming) and there is a learning curve with that.
It may be that a language other than Haskell, i.e. PureScript, although requiring a learning curve, would be more suited to my app's needs and thus save me grief.
I don't know. Dennis
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.

On the backend, there are a lot of options for you.
- Snap
- Servant
- Yesod
- Happstack
I personally love Yesod, and am very grateful for that framework getting me
to the point where I am writing real-world web applications. The other
frameworks have a lot ot offer, but I think Yesod will be the quickest in
getting you to write your app, it has a book, there are a lot of examples,
and the community is very helpful.
On the front-end, I myself am very confused. Please verify everything below:
- PureScript is a completely programming language; you'd use it in place
of JavaScript
- *Halogen*, *Pux*, *Thermit* are UI libraries written in PureScript. I
believe that Pux / Thermit are wrappers around React (or follow the React
paradigm).
- Another popular option for the front-end is *Elm*
- I didn't even know of Miso but it looks fantastic.
While I strongly recommend Yesod on the back-end, I'm hesitant to recommend
anything on the front-end. Gun to my head, I'd pick Elm, only because it is
giving me the static type safety I value highly (they all do that), and it
seems like there are more UI libraries in Elm. I'm terrible at the
front-end so I really very heavily on ready-built components, and Elm seems
to have more of those that the rest.
On Fri, Feb 9, 2018 at 9:00 PM, Matt
If you know Haskell, then the remaining bits of PureScript will not take very long. It's like moving from C++ to Java, or Ruby to Python. Most of your experience carries over, and you can learn the differences as they arise. You can likely be productive in PureScript tomorrow.
There's a lot of discussion on PureScript development on the FPChat slack, invite link here: https://fpchat-invite.herokuapp.com/
In my experience, PureScript has been much nicer to work with than GHCJS or Elm. PureScript's editor tooling is absolutely fantastic, and the language has "fixed" a number of warts in Haskell. The record system and interop with JavaScript are wonderful, as well.
Matt Parsons
On Fri, Feb 9, 2018 at 7:54 PM, Dennis Raddle
wrote: Thanks, but what do you think the learning curve will be on PureScript? How similar to Haskell is it?
I want to balance some factors here. As my initial goal is rapid prototyping and experimentation, I'd like to use a language I already know well, in other words Haskell.
But of course even with a familiar language, I'm going into a quite unfamiliar situation (web programming) and there is a learning curve with that.
It may be that a language other than Haskell, i.e. PureScript, although requiring a learning curve, would be more suited to my app's needs and thus save me grief.
I don't know. Dennis
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Steven Leiva 305.528.6038 leiva.steven@gmail.com http://www.linkedin.com/in/stevenleiva

Miso supports touch events, has many examples, and is fairly
straightforward to get started with: https://haskell-miso.org
https://github.com/dmjio/miso
On Fri, Feb 9, 2018 at 6:42 PM, Gregory Popovitch
Hi Dennis, I've read lots of good things about purescript ( http://www.purescript.org/).
greg
------------------------------ *From:* Haskell-Cafe [mailto:haskell-cafe-bounces@haskell.org] *On Behalf Of *Dennis Raddle *Sent:* Friday, February 09, 2018 9:14 PM *To:* haskell-cafe *Subject:* [Haskell-cafe] web framework
I'd like a recommendation for a way to write web apps in Haskell.
Background: I have written code in Python, C++ and Haskell for many years. However I have done no substantial web programming.
My goal is mathematics-education-themed apps to run on browsers on any device. At first I'll be happy to run the app on my laptop and connect locally with an iPad or smartphone while I sit with my students.
Later I may deploy it at scale "in the cloud" (I mean anyone connected to the internet can run it, and the servers belong to the hosting provider).
Why a browser app? I figure it's the best way to get a portable app that will run on phones, tablets, and computers of all OS's.
Why Haskell? The goal right now is fast prototyping and experimentation, especially for some fairly complex algorithms. I spent some time with JavaScript, TypeScript, and Scala.JS. I'm just so much more comfortable in Haskell with which I can write clean & sophisticated algorithms quickly.
I see lots of mentions of Haskell "platforms" and "stacks" etc. on the Haskell Wiki. But I will confess I don't really know what a "platform" or "stack" is, or which of the options will support my needs. I know close to zero about apps in the browser.
Regarding my UI needs, my app will have lots of graphics and lots of things to click on, drag, etc. It will need to be touch-screen responsive.
Dennis
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
-- Cell: 1.630.740.8204
participants (5)
-
David Johnson
-
Dennis Raddle
-
Gregory Popovitch
-
Matt
-
Steven Leiva