Closed fommil closed 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.
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.
I used 7.3 for ScalaZ because I assumed it would naturally be faster / better / shinier than 7.2. Is 7.2 more representative?
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?
@fosskers https://github.com/djspiewak/shims
re: shims. Alright, I'll have to test that library and correct the ecosystem section.
@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.
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.