web framework

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

web framework

Dennis Raddle
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.
Reply | Threaded
Open this post in threaded view
|

Re: web framework

Gregory Popovitch
Hi Dennis, I've read lots of good things about purescript (http://www.purescript.org/).
 
greg


From: Haskell-Cafe [mailto:[hidden email]] 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.
Reply | Threaded
Open this post in threaded view
|

Re: web framework

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.
Reply | Threaded
Open this post in threaded view
|

Re: web framework

David Johnson
In reply to this post by Gregory Popovitch
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 <[hidden email]> wrote:
Hi Dennis, I've read lots of good things about purescript (http://www.purescript.org/).
 
greg


From: Haskell-Cafe [mailto:[hidden email]] 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

_______________________________________________
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.
Reply | Threaded
Open this post in threaded view
|

Re: web framework

Gregory Popovitch
In reply to this post by Dennis Raddle

Purescript is very close to Haskell, check it out!


From: Dennis Raddle [mailto:[hidden email]]
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

_______________________________________________
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.
Reply | Threaded
Open this post in threaded view
|

Re: web framework

Matt
In reply to this post by Dennis Raddle
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 <[hidden email]> 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.
Reply | Threaded
Open this post in threaded view
|

Re: web framework

Steven Leiva
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 <[hidden email]> wrote:
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 <[hidden email]> 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.



--

_______________________________________________
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.