fosskers / scalaz-and-cats

Usage examples and benchmarks between Scalaz and Cats (w/ Haskell ground-truth).
489 stars 28 forks source link

include section about available educational material #1

Closed fommil closed 6 years ago

fommil commented 6 years ago

I appreciate that you had a section at the end about resources, but I think this is the no. 1 factor for any tech lead when making a decision about using FP in the first place. Most Scala developers have come from an OOP / Java background and the availability of these books is critical to being able to train your own team. I tried to learn FP through the cats documentation, websites and forums and... frankly... failed. I lost several weeks of unpaid time doing so, and got very frustrated. That is why I decided to write FP Mortals: I wanted to write the book that I wanted to read. I found that just pulling up the source code and reading was far superior to any existing material.

I'm not sure which cats ecosystem libraries you're talking about when you refer to it being richer... but I don't really want to get into what constitutes an ecosystem. Shims makes this redundant as everything is now compatible.

I think the scalaz community would be super interested in working with your benchmarks to improve the core performance. These are very interesting numbers, thanks for sharing! Is it hard to change to target the stable 7.2.x line? One thing you're missing there is compiler performance and hopefully that is addressed by (fast) magnolia / scalaz-deriving vs (slow) shapeless.

fosskers commented 6 years ago

Thank you @fommil ! Yes I am interested in making all content here as fair as possible. If there are better ways to approach the benchmarks I'll do whatever is necessary. As I said at the top of the README, I have no natural inclinations toward either library.

Caveat: I haven't actually announced this repo yet, and I still have work to do on it next week. It's technically R&D for my company.

fosskers commented 6 years ago

It would be fortunate if this repo became the go-to for helping other teams/companies decide on FP things in Scala. In which case yes, having links to books front and centre would be important. I also intend on a mini "best practices" section, including foremost Eq and Show examples.

fosskers commented 6 years ago

I used 7.3 for ScalaZ because I assumed it would naturally be faster / better / shinier than 7.2. Is 7.2 more representative?

fosskers commented 6 years ago

Shims makes this redundant as everything is now compatible.

Are there general-purpose shimming libraries out there, to make say, decline or circe usable with scalaz for free?

fommil commented 6 years ago

@fosskers https://github.com/djspiewak/shims

fosskers commented 6 years ago

re: shims. Alright, I'll have to test that library and correct the ecosystem section.

fommil commented 6 years ago

@fosskers it has only very recently started to work (as in within the last few days). It's very exciting. I advise contacting Daniel directly to ask questions, and use scala 2.12.2 for now.