typelevel.github.com icon indicating copy to clipboard operation
typelevel.github.com copied to clipboard

Curated projects

Open Slakah opened this issue 6 years ago • 3 comments

This is partly prompted by some thoughts after my tweet in response to the question of how to improve Scala adoption.

Trusted cohesive library ecosystem. A lot of library usage is built on trust, most folks have been bitten at one points by a lib with some gotchas. This is why I think building trust and branding of libs with shared ethos is very important.

It feels like the typelevel projects page could benefit by curating the functionality provided by the libraries in question. An example of the type of curation I think could be beneficial would be https://github.com/lauris/awesome-scala or https://github.com/rust-unofficial/awesome-rust, in that libraries are grouped based on functionality provided.

An example hierarchy could be:

"Web Server":
  - "http4s"
  - "Finch"
"HTTP Client":
  - "fetch"
  - "Hammock"
  - "http4s"
"JSON":
  - "argonaut-shapeless"
"Functional Reactive Programming":
  - "cats-effect"
  - "fs2"
  - "monix"
Database:
  - "doobie"
"Front End":
  - "OutWatch"
Configuration:
  - "Ciris"
  - "Extruder"
  - "PureConfig"
Serialization:
  - "scodec"
"Science and Data Analysis":
  - "Algebird"
  - "coulomb"
  - "Frameless"
  - "Libra"
  - "spire"
  - "squants"
"Testing":
  - "cats-scalatest"
  - "ScalaCheck"
  - "scalacheck-shapeless"
  - "Specs2"
  - "discipline"
"Linked Data":
  - "banana-rdf"
"Generic Programming":
  - "shapeless"
"Command Line":
  - "decline"
"Extensions":
  - "cats"
  - "cats-tagless"
  - "eff"
  - "kittens"
  - "monocle"
  - "mouse"
  - "refined"
  - "singleton-ops"
"Misc":
  - "algebra"
  - "paiges"
  - "scala-steward"
  - "scala-exercises"
  - "Scoverage"
"Macros and Compiler Plugins":
  - "export-hook"
  - "imp"
  - "kind-projector"
  - "Machinist"
  - "macro-compat"
  - "simulacrum"
  - "TwoTails"

Hopefully this would make it easier to navigate the typelevel ecosystem and find the correct library for the job.

The following projects have been removed, based on lacking recent commits, or being known to be unsupported:

  • Alleycats - redirects to cats.
  • shapeless-contrib - no commits in 3 years.
  • catalysts - can't decipher what the intended use of this project is? Is it a way of know which scala version is being used at runtime?
  • structures - not updated in 5 years.
  • tut - README suggests using mdoc tut is deprecated. Please switch to mdoc. See the migration guide..
  • CaseClassy - project abandoned.
  • Sonic - 3 years since last commit.

Notes

If there are any analytics available for the typelevel website. It would be very useful to know how much the projects page is used.

Slakah avatar Dec 21 '19 17:12 Slakah

I agree that the current presentation leaves a lot to be desired, and like your approach.

shapeless-contrib and structures are both archived. I think catalysts and machinist are both on the way out. We could either flag these in their sections or leave a section for historical relics at the bottom.

We might also want to highlight distinguished projects. Currently, we have "full members" and "incubator." We might continue that distinction, or flag projects with a certain number of stars (~1k shows projects people tend to think of when they think of Typelevel). Some sort of visual distinction within the category would be good.

I am not aware of any analytics, but that could also be a nice addition.

Thank you for this great suggestion. Would you be interested in submitting a PR to make it happen, or let someone else run with the idea?

rossabaker avatar Dec 23 '19 17:12 rossabaker

Thanks for the feedback @rossabaker .

Thank you for this great suggestion. Would you be interested in submitting a PR to make it happen, or let someone else run with the idea?

Yeah, I'll try and open an in progress PR in time. Hopefully I'll get round to it within the week.

I am not aware of any analytics, but that could also be a nice addition.

I don't have a huge amount of experience with this, but I expect just bunging in google analytics could be a tad controversial. So will raise under a separate issue for further discussion.

Slakah avatar Dec 27 '19 13:12 Slakah

Thanks! I agree with deferring the analytics to a different discussion.

rossabaker avatar Jan 02 '20 04:01 rossabaker