# Approaching Julia coming from Mathematica

**URL:** <https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914>\
**Category:** New to Julia\
**Tags:** performance, numerics, functional\
**Created:** [January 2, 2022, 4:34am UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914 "2022-01-02T04:34:51Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dario-Rosa85](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dario-rosa85/32/32358_2.png) [@Dario-Rosa85](https://discourse.julialang.org/u/Dario-Rosa85)\
**Post date:** [January 2, 2022, 4:34am UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/1 "2022-01-02T04:34:51Z")

</div>

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?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [January 2, 2022, 6:55am UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/2 "2022-01-02T06:55:42Z")

</div>

Linking [related thread](https://discourse.julialang.org/t/best-practices-for-converting-a-mathematica-expression-to-julia/18335).

---

<div class="post-metadata">

**Author:** ![Dario-Rosa85](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dario-rosa85/32/32358_2.png) [@Dario-Rosa85](https://discourse.julialang.org/u/Dario-Rosa85)\
**Post date:** [January 2, 2022, 8:02am UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/3 "2022-01-02T08:02:58Z")

</div>

thank you!

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 2, 2022, 9:06am UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/4 "2022-01-02T09:06:14Z")

</div>

That thread has not aged well since it was before JuliaSymbolics started.

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [January 2, 2022, 12:22pm UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/5 "2022-01-02T12:22:45Z")

</div>

In some ways, Mathematica is like a Swiss-army knife, whereas Julia is more of a hardware store:

 ![Screenshot 2022-01-02 at 12.14.28](https://global.discourse-cdn.com/julialang/original/3X/b/7/b7ccb3012529b40c6c02f6bb61505ceb644c8e5d.jpeg)

So I’d suggest using [juliahub.com](https://juliahub.com/ui/Search?q=&type=packages)’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.

Good luck!

(former Mathematica user…🙂 )

---

<div class="post-metadata">

**Author:** ![Dario-Rosa85](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dario-rosa85/32/32358_2.png) [@Dario-Rosa85](https://discourse.julialang.org/u/Dario-Rosa85)\
**Post date:** [January 2, 2022, 1:55pm UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/6 "2022-01-02T13:55:51Z")

</div>

Thank you! it looks a good suggestion! in your opinion, functional programming style is in Julia as elegant and efficient as in Mathematica?

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [January 2, 2022, 2:04pm UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/7 "2022-01-02T14:04:38Z")

</div>

There are occasionally discussions about functional programming here on Discourse:

> [@Functional programming in Julia](https://discourse.julialang.org/t/functional-programming-in-julia/55548):
>
> I’m recently interested in functional programming (FP) style. I sometimes felt that Julia has probably been inspired by FP but it seems that Julia does not officially provide FP tools, for example, lazy evaluation. I found [Lazy.jl](https://github.com/MikeInnes/Lazy.jl) but it looks not being maintained. Is there any project for FP style coding in Julia? Or, FP style in Julia has been disappeared?

> [@What do functional languages (LISP / ML) offer that Julia doesn't?](https://discourse.julialang.org/t/what-do-functional-languages-lisp-ml-offer-that-julia-doesnt/48780):
>
> I picked up some Julia fairly recently. As far as I can see, Julia supports functional programming somewhat better than Python. For example, anonymous functions (lambdas) are not limited to one line, and there is the function pipeline operator |\>, which is convenient for composing functions. Still, I’m wondering if there are good reasons for learning “full-fledged” functional languages like LISP, Ocaml, and Haskell. I hear people promoting these languages all the time, but I never studied them. …

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. 🙂

---

<div class="post-metadata">

**Author:** ![Dario-Rosa85](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dario-rosa85/32/32358_2.png) [@Dario-Rosa85](https://discourse.julialang.org/u/Dario-Rosa85)\
**Post date:** [January 2, 2022, 2:27pm UTC](https://discourse.julialang.org/t/approaching-julia-coming-from-mathematica/73914/8 "2022-01-02T14:27:26Z")

</div>

thank you!
