Awesome Julia: a list of anything-Julia worth of seeing

Inspired by this really good list of shiny extensions and this gigantic list of machine learning packages in several languages, I created a small repo to host any kind of suggestion you have. For example: what are the GUI tools currently in use in Julia? What are good sources of dataframe handling? What about databases? I’ve found this old awesome-julia repo, which can be a good start.

The link to the new repo is GitHub - vituri/awesome-julia: A curated list of Julia packages, resources, books and so on
and I look forward to suggestions on how to structure this list.

6 Likes

GitHub - svaksha/Julia.jl: Curated decibans of Julia programming language. is more recent. I think a merging and cleanup of those files to one file might be better.

5 Likes

Would it be possible to unify all the resources in a single awesome-Julia repository and share it on Hacker News?

3 Likes

I agree, the entire list need to be on one page. And it appears that several of the linked packages are abandoned (some in 2015).

1 Like

It would be very helpful if someone from each Julia Github organization could check if their organization’s resources are up to date.

1 Like

I agree that this repo is better maintained, but I also agree that the name awesome-julia would be more appropriate. First, it enjoys wider recognition in the programming community. And second, Julia.jl looks like a package name, which this repo isn’t.

7 Likes

The Big Book of Julia is also worth taking a look at. As the name implies, it’s a big exhaustive list, so I still like the idea of awesome-julia, as a more curated list of interesting and exciting stuff.

1 Like

Very nice! I did not know it. For such a big list, it would be good if we have a table of contents on the side, like the ones generated by Quarto documents. I can easily convert the .md to a .qmd doc and generate the correspoding github page on my repo.

2 Likes

I’ve merged all files from GitHub - svaksha/Julia.jl: Curated decibans of Julia programming language. into a single README.md file. Now we got to do some cleaning and structuring.

2 Likes

I added some packages, books and youtube channels on the “clean list” (upper part of the .md).

I also generated a github pages using Quarto and a nice table of contents on the right side. Some magician of quarto/css can give a hand to make it look nicer.

Here is the first draft:

https://vituri.github.io/awesome-julia/#metric-space-and-clustering

ps: after the “==========” block is the part where I merged the entire julia.jl markdown. It is temporary, until we pass on things to the clean list (upper part).

4 Likes

Inspired by your great work, I also tried to make Julia resource lists: https://gensjulia.pages.dev/ (and the repo) 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 and rendered by quartz (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 suggestions on my repo.

7 Likes

Hello, Wen!

Your list is excellent! The site is very nice, and easy to browse! That is exactly what I was looking for. I will update my README to link to your site, and start contributing with PRs.

1 Like

That’s awesome! Would you mind sending it to Hacker News?
https://news.ycombinator.com/news

1 Like

@Wen-Wei_Tseng, thank you, very nice looking and impressive job.

One of the problem with “curated decibans” is, they cannot be both really curated and decibans. Curating would at least assume the curator has installed and tried all packages, and also defined some minimal requirements (documentation, tests) - and re-checked them after each minor Julia update and each breaking package update, which could probably be only realistic in a fulltime job. Another typical FOSS problem is that the author loses interest to his pet project in a couple of years. It is not that bad in the case of a software package, if the bit rot is slow enough. But the impact of an obsolete or semi-supported software list like Julia.jl is negative IMO, as it pollutes the information space.

Now, there is https://juliapackages.com/ and JuliaHub . They also offer important additional informaton on the first glance - last update, new users, badges. So what would you say, what are the advantages of your package list over those two tools above?

The packages is only one part of your resource list, I cannot say anything about other sections.

Sorry for sounding negative.

1 Like

Hi @Eben60, thanks for your reply.

Actually, I share some of your opinions, so I’ve kept this “modified Julia.jl” list to myself until @vituri posted, which inspired me to make my list publically visible. I hope someone will find it useful.

I must admit that https://juliapackages.com/ and JuliaHub provide more complete lists of Julia packages and are updated regularly against the General registry. Therefore, I give the links to them in the “Find packages” section (also the first section) on the homepage of Gens Julia.

Another typical FOSS problem is that the author loses interest to his pet project in a couple of years.

It also has a FOSS solution: someone else could fork and maintain it.

1 Like

Shouldn’t this type of effort be a byproduct of package registration with a simple automation to

  • catalog any new package,
  • classify it to subfields and
  • provide a TL;DR blurb description?

In addition, crowdsourcing, to provide up-down voting and mini-reviews?

Have a look at the excellent arxiv-sanity-lite by Andrej Karpathy for inspiration.

I believe the idea of an “awesome X list” is that some people will extract just some items from topic X that they believe are most important: most useful packages, most interesting books and articles, etc. Having all Julia packages listed by some criteria like popularity would be like sorting them by github-stars.

The part of up-down voting and mini-reviews of your link is very interesting (like app reviews in play store), but would demand a high participation of the community, which I think is hard to attain at this level.

1 Like

https://juliapackages.com/ doesn’t seem to be updated all that often, and I try to avoid it for that reason (it’s unfortunate that it appears high on search results usually). It has outdated information about packages a lot of the time, and doesn’t have packages like FieldFlags.jl which was registered a few months ago.

It also seems to have picked up a not-yet-registered old version of PropCheck.jl, so it doesn’t seem to be based on the General registry either. It seems that they have a script that scrapes Github for repositories ending with .jl, and they run it occasionally once in a few months, to update the site. The fact that packages like AccessorsExtras.jl and Parquet2.jl (which are on Gitlab) are missing seems to indicate this too.

3 Likes