Hacker News new | past | comments | ask | show | jobs | submit login

I think PostgREST is the first big tool written in Haskell that I’ve used in production. From my experience, it’s flawless. Kudos to the team.



Having a bit of experience with OCaml, I hoped to see what production-ready Haskell code looked like with this library. I tried to read some files of the project and... IMHO "production-ready" Haskell code is still not easily readable, for example, the main file for the tests :

https://github.com/PostgREST/postgrest/blob/master/test/Main...

and

https://github.com/PostgREST/postgrest/blob/master/test/Quer...

I don't know, maybe it lacks comments ? The code is really not easy to follow if you are not using Haskell 100% of your coding time.

While the library may work well in practice, it's a maintainability red flag and, by using this library, you rely on rare Haskell programmers for the future.


There are companies that use and sponsor[1] PostgREST development now.

There are also Haskell shops that use it. So, if a bug happens, at worst you'd have to open an issue, offer a bounty and watch it get solved.

> Having a bit of experience with OCaml

When I started as a PostgREST contributor I had zero experience on Haskell(not even a college course). I think the bar to contribution is not that high given that you know the domain — PostgreSQL and REST.

Not to say the codebase couldn't be improved. Commenting and refactoring is happening continuously.

[1]: http://postgrest.org/en/v6.0/#sponsors


I’m just a user and o have no visibility in the internal code (I can’t code in Haskell).

What I feel, as a user, is that most features that I use are already implemented and unlikely to bit rot, since PostgreSQL itself doesn’t change a lot.


it is hard to read if you don't have some knowledge of haskell indeed and the comments part is true but it's not any harder then folowing other codebases if you don't know the particular language so i don't think this is a strong argument.

Another point is - it's not a library and you are not the one maintaining it :) the same way you are not maintaining, but still using things like postgresql,nginx,redis, rabbitmq.

I bet it's a lot easier to learn haskell and patch postgrest then to know C for 10 years and patch postgresql :)


> you are not maintaining, but still using things like postgresql,nginx,redis, rabbitmq

I don't maintain them because they are written in either C or C++, which has many more practitioners, guidelines and tools to trust.

On the other hand, I can easily see people using postgres' extensions have to quickly make a patch to fix a bug or change a behavior, extensions being smaller.

The issue is that, eventually, you would like to patch, review or audit the extension. All of these operations will require you to find third-party Haskell developers, Haskell auditors, Haskell reviewers, who are rare in the job market, and therefore it represents a risk for your project.

If the core developers stop to maintain the extension, no one else might be available to maintain it, and now you have code debt and code that no one can fix


> no one can fix

Really? No one? I learned haskell (my first FP lang) and rewrote the core of PostgREST (in my spare time) in about 6m... so stop scaring people :)




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

Search: