Haskell is really an underrated super power for building backends and web apps. The ecosystem has improved quite a lot over the recent years. With the Haskell Language Server and the Haskell Plugin for VS Code there's now really nice editor support. The language itself is also improving at a good pace, e.g. the latest release of GHC (The haskell compiler) added support for dot-notation, so you can now write `someValue.someField` as you might know from other languages.
If you're curious about giving it a try and are doing web dev, check out IHP, haskell's largest web framework: https://ihp.digitallyinduced.com/ (Disclaimer: I'm founder of the company that makes IHP)
I've been getting lots of ads about IHP on reddit lately. The ads are really bad, which led me to believe IHP would be of equally bad quality, but looking at IHP homepage now I'll just have to try it out sometime.
Now, I have some questions. As a user, why should I use IHP instead of Yesod or Servant? Can I create rest and especially graphql apis or is it more focused on building old-school server side rendered pages?
Thanks for the feedback on the ads! We've been experimenting a lot with different ad formats recently. I'll make sure this is fixed. (Update: Fixed now, thanks again for the honest feedback)
In a comparison between IHP and Yesod I think that IHP is designed for people that have only very little to no haskell experience. IHP brings a lot of conventions and code generators to get you up and running very quickly, while Yesod gives you more flexibility (flexibility might be more challenging when you're just starting out with haskell. E.g. what DB library do you want to pick? In Yesod you have many options, in IHP we'll provide one out of the box). Check out the IHP documentation and compare it to the Yesod docs, you'll quickly see the difference :) Also if you want to check out some reviews of people already using IHP, you can find a few longer ones on our G2 page https://www.g2.com/products/ihp/reviews
> Can I create rest and especially graphql apis or is it more focused on building old-school server side rendered pages?
At the start IHP was focussed a lot on server-side rendering. Now you can also use it for building REST APIs. GraphQL is not yet supported, but it's coming in the future.
We're also right now working on a generic REST API layer with a bundled JS SDK. It will allow you to query your database, create and delete models and keep everything in sync with a realtime sync engine.
IHP looks like an impressive work, I'm seeing a lot of the kinds of things that drew me from Ruby/Rails to Elixir/Phoenix here, and all of those things are good... plus I love how the type safety is basically all implicit now, which seems like the best of both worlds- ruling out additional classes of bugs but without needing to be explicitly verbose all the time about types.
Quick question - when you change the schema def, does it generate a schema diff automatically and run that? What if you have to do some more complex things like add triggers or stored procs (such as might be necessary if you use Postgres' fulltext search features, which I am wont to do)?
Second question- Is there something I could read to catch up with what's happened to the Haskell language over the last 5-10 years or so, since I looked at it last?
Automatic migration generation has only been added in the last release a few weeks ago. Right now it works by keeping track of all changes you apply via the GUI based schema designer, and then writing that into the migration sql file once you generate a new migration.
When you add a trigger manually to the Schema.sql file of your app, you then still need to copy it over to the migration manually right now.
> Second question- Is there something I could read to catch up with what's happened to the Haskell language over the last 5-10 years or so, since I looked at it last?
I'm not aware about a central place for this. The closest might be the GHC change log, but that also contains a lot of noise.
>If you're curious about giving it a try and are doing web dev, check out IHP, haskell's largest web framework: https://ihp.digitallyinduced.com/ (Disclaimer: I'm founder of the company that makes IHP)
Something ironic about getting a 502 from your domain right now
Haha yes :) Sorry, the IHP website is hosted via https://ihpcloud.com/ (like Heroku but for IHP) and the system just crashed because of too much activity (unrelated to the HN traffic, mostly too many deployments at the same time). We're about to roll out a new more stable system in the next days that fixes the root cause of the downtime today.
If you're curious about giving it a try and are doing web dev, check out IHP, haskell's largest web framework: https://ihp.digitallyinduced.com/ (Disclaimer: I'm founder of the company that makes IHP)