parsonsmatt / QuickLift

Web application to quickly and easily log your weightlifting sessions
MIT License
38 stars 2 forks source link

Front End Framework #1

Open parsonsmatt opened 8 years ago

parsonsmatt commented 8 years ago

There are two main points to this project: 1) Build an application with functional programming techniques, 2) Make something useful to fill a perceived void in the market. Since learning is a big part of what I want to accomplish here, I'm going to document what I want to do for a "minimal implementation" for each framework/methodology I want to attempt (unless I decide one is simply superior).

I'm intending on attempting a build for the following:

If none of the above end up being nice enough, I'll just do it with a JavaScript front end and call it a learning experience. This thread will document my general experiences with the various approaches as well.

On a general level, the big pros/cons that I can see for JavaScript are:

Pros:

It's JavaScript.

parsonsmatt commented 8 years ago

PureScript Halogen

(this comment will be edited to reflect my current opinion as I feel like doing so)

I'm finding that I'm writing a ton of boiler plate around lenses, AJAX, serializing and deserializing my types, etc. Halogen is a fantastic framework for building out the UI, but there doesn't seem to be a good solution in PureScript-land for doing AJAX conveniently.

parsonsmatt commented 8 years ago

Elm

Elm was a very nice and friendly experience when I was briefly demonstrating it, but the lack of type classes (or similar means of abstraction) and the verbose de/serialization code negated many of the benefits. There seems to be good work around generating Elm client from Servant, and the Haskell-Elm bridge. These would make Elm much nicer to use, and potentially give it the leg up over PureScript despite having a less powerful core language.

kozak commented 8 years ago

I would be very interested in your current opinion :)

parsonsmatt commented 8 years ago

I'm pretty sold on PureScript these days. Since I wrote that evaluation, they've done a lot of work on reducing boilerplate, and it's pretty easy to do PS codegen from Haskell types.