Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In my brief experience of going through the Haskell examples, I am awestruck by the power that Haskell enables yet scared by the huge type level complexity underlying the libraries that enable it.

Just to query a database the example used half a dozen langauge extensions. I could probably learn the base Haskell langauge but that's not enough it seems for real world usage.

Now these langauge extensions ofcourse reduce the boilerplate and enable a nicer syntax but they dramatically increase the cost of using Haskell in production.

My understanding of the ecosystem is that there is a divide between people who want to use Simple Haskell concepts and others that want to advance the state of the start for every library.

https://www.simplehaskell.org/



I worked with Haskell for awhile but never had it fully 'click'. That being said, I think that once someone is fully comfortable with algebraic data types, category theory, and functional programming, most of these extensions and fancy constructs become pretty shallow and easy to understand.

(Would appreciate if any bonafide haskellers care to comment)


Cat theory isn’t needed at all. It just gives you another smell test for recognizing you maybe designed an api nicely. (Aka: oh cool, my api code has some nice mathematical / logical property, maybe it’s not just mud on the wall)


Agree. You don’t need to know category theory to use Haskell or the libraries.

Know category theory or being aware of it just gives you a deeper understanding of the way things work.

I don’t know category theory but aware of it. The way I look at it is c style languages you have design patterns. These are loosely designed patterns with no formal definitions. That makes it hard to reason about or test things.

In category theory you have mathematical laws. Laws are far stronger than a loosely typed designed patterns so using these laws it’s far easier to reason about code.


Also piping in to say you don't need to understand category theory to successfully write production Haskell. It's interesting to learn and does help solidify understanding of some concepts, but by no means required.

Highly agree that most common extensions are pretty shallow and easy to understand. The tricky ones are usually enabled because some library told you to, or you've genuinely leveled up and recognize where to use them yourself.




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

Search: