[Pre-ANN] JuliaPackageComparisons

Edit: New repository.

Hello Julia community! I just created a repository to host a vision I have had for a long time:

JuliaPackageComparisons

The goal of the repository is to create a canonical and updated web resource to help users navigate the complex and ever-changing julia package ecosystem. The readme says it all, so please check it out! (The title is a link)

The project is in an early phase. Thoughts on how to structure it are very welcome, as well as content contributions. Once the actual website (not a github readme) is up and running, and the sections have some content, I will make a propper release announcement.

The linked repository is my effort to roll up my sleeves and get the project running, but I am very much looking for someone more suitable (Such as @logankilpatrick ?) to take over ownership of the project. Comment below or message me if you have thoughts about ownership.

20 Likes

I don’t have much to contribute, just want to say that a resource such as this would be very handy to have! Thanks for the initiative on getting it rolling

4 Likes

Thanks, this will be very convenient!

Regarding,

“Some packgages try to alleviate this problem by having a “See also” or “Related packges” section in the bottom of their readme. This is a bandaid-fix, as a) work is duplicated if each package repository has this section, and b) there are few guidelines on this section, and it style, existence and scope varies wildly.”

I just want to point out a package that does this very well and could be a good model: Chain.jl. The example table at the top clearly shows the differences, and the Motivation section below explains why it chose to be different. I think this is critical information to introduce early, especially if you developed a package because existing packages weren’t satisfactory enough for some reason.

2 Likes

Those are good points. So piping packages could use that comparison more or less directly! I will make an issue to remebmer to do that.

In case it’s any inspiration, I recently did that work with the graphs ecosystem. Will try to contribute it to your repo when I find the time

2 Likes

Would it be possible to join efforts with https://gensjulia.pages.dev?

1 Like

That post of yours is amazing! It is exactly the type of content I want to make discoverable and keep updated. A PR adding that section would be very welcome! Here is an issue to remind us to do this, whoever find the time first :slight_smile:

1 Like

That webpage looks a lot like what I am hoping to create, and it looks great! My vision is however slightly different than what I see there:

My aim is to create a resource that takes the role of an experienced user/developer that guides a new user through the relevant packes. This means that a lot of interpretation/narrative/judgement is needed. That resource currently has very little such content, and only uses a single sentence to summarize a package. Furthermore, it does not make comparisons. So it is a great resource for discoverability, but less so for informing new users about the most appropriate choice.

I also want users and developers of the relevant packages to write about what it is actually like to use them, and not a curated list written by one or a few individuals. Some bootstrapping is needed, but ideally JuliaPackageComparisons should take on a life of its own, being as organic and ever-changing as the package ecosystem.

I am very open to joining efforts, but feel like JuliaPackageComparisons needs to take a little more shape before we can evaluate if the resources are unitable. If however @sosiristseng (github username) agrees with what I have in mind, I would love to add the interpretation/narrative/judgement to their resource.

1 Like

Maybe two parts of the same website would be better than two website?

2 Likes

I envision a website with a per-field/organization comparison matrix that compares packages with important algorithms/functions in that field, like mesamatrix.com does.

Perhaps https://mesamatrix.net/?

Comparison matrices are an important tool for comparisons of packages. But I definitively want much more than that as guidance when I chose between packages. I know that often will mean subjective content, but as long as it comes from the users and developers together, that is exactly what I believe new users will find most helpful.

1 Like

There is now a new repository that hosts an actual website! In other words, the project is shaping up.

There is still a lot of content that could be improved, and even more that is not yet added. If you want to help out, PRs are welcome. If you want to become a maintainer, please send me a message here on discourse.

EDIT: I have added a minimum of content for the last few sections added, so they are good for showcasing some content. Other sections with notable content are Plotting, and Triangulations / Tessellations.

8 Likes

This is awesome and fantastic and seems to be exactly what a newcomer would need! I will definitely try to contribute to this project! Thanks @TheLateKronos !

3 Likes

I think we all can contribute our small bits.

But, I think in the current form it’s rather hard to find a package? The sidebar is not quite searchable.

A better approach could be if each package is its own file which we can assign multiple tags (plot, optimization, ML)? Sometimes packages fit in more than one category.

1 Like

That would hamper the ease of comparison, no?

I like the site so far but I think (and I know this should be a community effort) that the language of the comparison could use improvement. Also, probably the tldr should go at the top…

2 Likes

Yeah, I agree on the comparison.

Maybe it might be worth still do the comparisons. And we write comparisons to all tags? So packages can occur both in a ML tag but also in the optimization tag. And the text considers that.

1 Like

Based on the last sentece it sounds like you are referring to the Plots section. Currently it is just a copy of a comment @ChrisRackauckas allowed me to use that he made here on discourse, without any real changes. It just serves as a starting point for now, as it was a fast way to add some content.

I agree, I am currently scratching my head wondering how to improve it. I will file an issue with detailed thoughts I have in the coming days (unless someone beats me to it!).

100%. I opened “Make website searchable #3” and “Tag pages with mentioned packages? #7” to adress this.

1 Like

There is nothing wrong with a package appearing in multiple sections. But because the comparisons are (should be) very hand-crafted to the specific domain and julia ecosystem status, I dont really see how automating anything will ultimately save labor and not degrade the quality. Do you see a concrete way content could be generated that is coherent and with a good reading flow?