# \[Pre-ANN\] JuliaPackageComparisons

**URL:** <https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567>\
**Category:** Community\
**Created:** [September 6, 2023, 11:16am UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567 "2023-09-06T11:16:06Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 6, 2023, 11:16am UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/1 "2023-09-06T11:16:06Z")

</div>

Edit: New [repository](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io).

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

# [JuliaPackageComparisons](https://github.com/KronosTheLate/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.

---

<div class="post-metadata">

**Author:** ![caleb-allen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/caleb-allen/32/14054_2.png) [@caleb-allen](https://discourse.julialang.org/u/caleb-allen)\
**Post date:** [September 6, 2023, 12:10pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/2 "2023-09-06T12:10:21Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Nathan\_Boyer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nathan_boyer/32/14825_2.png) [@Nathan\_Boyer](https://discourse.julialang.org/u/Nathan_Boyer)\
**Post date:** [September 6, 2023, 3:56pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/3 "2023-09-06T15:56:21Z")

</div>

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](https://github.com/jkrumbiegel/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.

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 6, 2023, 11:07pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/4 "2023-09-06T23:07:15Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [September 7, 2023, 7:38am UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/5 "2023-09-07T07:38:29Z")

</div>

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

> [@The graphs ecosystem](https://discourse.julialang.org/t/the-graphs-ecosystem/99463):
>
> Hey everyone, The very fruitful discussion on [fixing package fragmentation](https://discourse.julialang.org/t/fixing-package-fragmentation/98712) started from a remark I made on Slack about graphs, which is why I’m asking the community for ideas and support. In my opinion, the most important things we can do (by order of priority) are: List existing packages to allow comparison Redesign the core interface to make it more usable Ensure reliability of the main packages for the long term What follows is a brief summary of each item, but feel free to suggest more!…

---

<div class="post-metadata">

**Author:** ![xiaoxi](https://avatars.discourse-cdn.com/v4/letter/x/a9adbd/32.png) [@xiaoxi](https://discourse.julialang.org/u/xiaoxi)\
**Post date:** [September 7, 2023, 8:02am UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/6 "2023-09-07T08:02:28Z")

</div>

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

> [@Awesome Julia: a list of anything-Julia worth of seeing](https://discourse.julialang.org/t/awesome-julia-a-list-of-anything-julia-worth-of-seeing/103371/11):
>
> Inspired by your great work, I also tried to make Julia resource lists: [https://gensjulia.pages.dev/](https://gensjulia.pages.dev/) (and the [repo](https://github.com/sosiristseng/gensjulia)) based on Julia.jl. I removed some outdated packages (especially pre-1.0 ones) and added some entries I met. The Markdown documents were written with [Obsidian.md](https://obsidian.md/) and rendered by [quartz](https://quartz.jzhao.xyz/) (for the graph view, wikilinks, and backlinks). My Julia resource lists might not meet the requirements of an awesome list (a long README.md), but feel free to try it out and (perhaps) leave some sug…

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 7, 2023, 11:59am UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/7 "2023-09-07T11:59:55Z")

</div>

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](https://github.com/KronosTheLate/JuliaPackageComparisons/issues/6) is an issue to remind us to do this, whoever find the time first 🙂

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 7, 2023, 12:14pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/8 "2023-09-07T12:14:22Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)\
**Post date:** [September 7, 2023, 12:22pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/9 "2023-09-07T12:22:55Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![xiaoxi](https://avatars.discourse-cdn.com/v4/letter/x/a9adbd/32.png) [@xiaoxi](https://discourse.julialang.org/u/xiaoxi)\
**Post date:** [September 7, 2023, 1:18pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/10 "2023-09-07T13:18:27Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 8, 2023, 5:26am UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/11 "2023-09-08T05:26:44Z")

</div>

Perhaps [https://mesamatrix.net/](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.

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 19, 2023, 2:34pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/12 "2023-09-19T14:34:33Z")

</div>

There is now a [new repository](https://github.com/JuliaPackageComparisons/JuliaPackageComparisons.github.io) that hosts an actual [website](https://juliapackagecomparisons.github.io/)! 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](https://juliapackagecomparisons.github.io/pages/plotting/), and [Triangulations / Tessellations](https://juliapackagecomparisons.github.io/pages/triangulations_or_tessellations/).

---

<div class="post-metadata">

**Author:** ![Datseris](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/datseris/32/13406_2.png) [@Datseris](https://discourse.julialang.org/u/Datseris)\
**Post date:** [September 19, 2023, 4:35pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/13 "2023-09-19T16:35:34Z")

</div>

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 !

---

<div class="post-metadata">

**Author:** ![roflmaostc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/roflmaostc/32/30123_2.png) [@roflmaostc](https://discourse.julialang.org/u/roflmaostc)\
**Post date:** [September 19, 2023, 5:08pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/14 "2023-09-19T17:08:54Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [September 19, 2023, 6:02pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/15 "2023-09-19T18:02:30Z")

</div>

> [@roflmaostc](#):
>
> A better approach could be if each package is its own file which we can assign multiple tags

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…

---

<div class="post-metadata">

**Author:** ![roflmaostc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/roflmaostc/32/30123_2.png) [@roflmaostc](https://discourse.julialang.org/u/roflmaostc)\
**Post date:** [September 19, 2023, 6:22pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/16 "2023-09-19T18:22:15Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 19, 2023, 8:56pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/17 "2023-09-19T20:56:46Z")

</div>

> [@tbeason](#):
>
> that the language of the comparison could use improvement. Also, probably the tldr should go at the top…

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.

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 19, 2023, 9:12pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/18 "2023-09-19T21:12:51Z")

</div>

> [@roflmaostc](#):
>
> But, I think in the current form it’s rather hard to find a package? The sidebar is not quite searchable.

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!).

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 19, 2023, 10:05pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/19 "2023-09-19T22:05:42Z")

</div>

> [@roflmaostc](#):
>
> But, I think in the current form it’s rather hard to find a package? The sidebar is not quite searchable.

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

---

<div class="post-metadata">

**Author:** ![TheLateKronos](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thelatekronos/32/12824_2.png) [@TheLateKronos](https://discourse.julialang.org/u/TheLateKronos)\
**Post date:** [September 19, 2023, 10:10pm UTC](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567/20 "2023-09-19T22:10:42Z")

</div>

> [@roflmaostc](#):
>
> 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.

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?

[Next page](https://discourse.julialang.org/t/pre-ann-juliapackagecomparisons/103567.md?page=2)
