Hacker News new | past | comments | ask | show | jobs | submit login
IHP v0.17.0 has been released (github.com/digitallyinduced)
50 points by todsacerdoti on Dec 14, 2021 | hide | past | favorite | 17 comments



Taking a look at the code, it's a web framework for Haskell with a good amount included like authentication, routing, client-side auto refresh (probably built with web sockets and powered by pglisten), web sockets, a job queue based on postgres.

Very neat project!


Thank you for adding a line to explain what the project is. So many releases are posted here without explaining what they even are.


The main repository description [1] mentions:

> The fastest way to build type safe web apps. IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness

Hence even without that line you could've figured that out with one click. Don't have to spam every release about what the program does, as long as the main repository description (including README.md) does.

[1] https://github.com/digitallyinduced/ihp


> IHP is a new batteries-included web framework optimized for longterm productivity and programmer happiness

To be fair, the latter half of that description doesn't have any objective meaning.


You're right, it doesn't mention Haskell or Nix either.


The people that would want to know about a new version of some software are surely already familiar with that software, no?


Sortof depends on the software.

If it's specific to some domain, then a description won't make it more useful if you're not in that domain.

If it's more generally useful, there are plenty of wonderful tools people might not have heard of.


Happy to see another great release!


Looks really heavy for a Haskell application. You have to install React via NPM as a dependency for IHP to process the JSX, effectively resulting in a framework for Haskell riding a big JS framework.

You can more directly achieve a purely functional approach to DOM interaction without the declarative cleverness of JSX from a tiny understanding of how the DOM works.


There's no react dependency. You can combine it with React if you want to make a hybrid of server-side and SPA, but the standard IHP method is to do just server-side rendering with only a tiny bit of js glue for prefetching and such (IHP has its own HSX syntax that looks a bit like JSX, but is turned into html before being sent to the browser).


The React dependency is mentioned in the documentation linked from their code example: https://ihp.digitallyinduced.com/Guide/realtime-spas.html


Even if you post this twice, it's still not a dependency. It's an optional addon for a specific pattern or, as the page you've linked says

> This guide will help you understand the best-practices of building hybrid applications with IHP and React.


I'd not say React is big. Sure it's big in name. But compared code-wise to Angular it's tiny, and just handles the view-side of things.

Besides that I'm not sure what you say is correct. It seems IHP uses HSX, something similar to JSX, but not JSX itself, nor React. The only place I see React mentioned is as a dependency of their "Guide" (some documentation hub their run):

https://ihp.digitallyinduced.com/Guide/index.html

The search widget in the top right uses React, but that's all...


The React dependency is mentioned in the documentation linked from their code example: https://ihp.digitallyinduced.com/Guide/realtime-spas.html


The first header after Introduction:

> Todo List App

> Adding React to your IHP project

The first sentence of that section:

> To access the JavaScript ecosystem we need to add NodeJS to our project.

Both the header and this first sentence imply that this is an optional add-on, not a dependency.

I can also speak from experience and tell you that there is no dependency on react. I've played around with IHP and in its default form the stack resembles Rails: Haskell renders HTML with forms, which submit data to the Haskell server via POST. No JavaScript required at all, much less React.


Personally I am using DataSync like described in the docs, but with Elm, so React is just an option for using this API, not a requirement :)


Any link to an example project or details on how to achieve this?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: