I am a proficient user of Mathematica and I love its functional programming style and its way of programming by means of lists. However, I would like to move most of my programs from Mathematica to Julia. The main reason to make this step is because I like the Julia community, which is much more active than the Mathematica community, and I would like to run my programs on large clusters which do not have enough Mathematica licenses.

I work in quantum many-body physics, and so most of my programs build very large and sparse matrices to diagonalize.

Given these preliminaries, do you know some resources particularly tailored on how to learn Julia coming from Mathematica?

So Iâ€™d suggest using juliahub.comâ€™s search tool to find all the packages and tools you need. Using just the packages you need is kind of how Julia works.

And Iâ€™d also suggest you spend some time mastering git/github and Juliaâ€™s package manager, Pkg, as these donâ€™t always feature in some Mathematica workflows.

There are occasionally discussions about functional programming here on Discourse:

I donâ€™t have much of an opinion, myself, although I remember I grew to be a bit wary of Mathematica usersâ€™ desire to write code that was so compressed as to be almost un-parseable by ordinary humans. These days I prefer to code in Julia-flavoured pseudocode, which is easier to read many years later.