I don’t think Julia is going to beat Python. Python just has so much momentum. Julia seems destined for HPC usage and not much else, imo.
Multiple dispatch is a concept that I struggled with initially, but the more I learnt about it, the more I found it unwieldy and subpar. Reading julia code is cognitively intense. It doesn’t have the same clarity as python, and it doesn’t have enough guarantees to convince a Typing module user to give up on python. I can’t see myself trying to teach recent graduates how to do things in Julia, but Python has a great track record of being powerfully, succinctly taught to new programmers.
Additionally, as performance goes, I don’t think Python is in as much trouble as it may seem. Mypyc is a very promising project, and with more work and love, it could lead to extensively enhanced Python performance.
Anyhow. I’m betting on Python for the next ten years in STEM. Maybe someday, Ocaml.xyz will save us all from dynamism in sci-* code.
Why does it have to beat it? It is an alternative to, and alternatives are good. I use Python and Julia everyday. The first because of all the packages that exist, and the second because I prefer its Matlab-like syntax for matrix manipulation. Also, I don’t think that class based object oriented syntax (like Python’s) is suited for scientific programing in general but that is more of a personal preference/opinion.
Anyway, both languages are FOSS and independent from big corporations so I think people should be grateful for having the possibility of choosing either. Some years ago people almost had to use Matlab because there weren’t any good alternatives to it.
For lots of users, including Lyndon (the author of that blog), the main benefits of Julia are not related to speed.
Instead, they value Julia’s expressiveness (the base language is great, and we also have very fancy things like Cassette.jl) and tooling (Pkg.jl is the best package manager I’ve ever used, @code_native is great, etc).
Obviously it’s fine that you don’t like multiple dispatch, but I think it makes an awful lot of sense for many people. Personally, I’m a big fan of it and of the way it makes all our classes open.
Re: typing, compile time errors are neat, and they’re something that most Julia developers don’t benefit from at the moment, but the flexibility of Julia means that this can change. You can already use a Julia package to type check your functions (it uses Julia’s compiler) and there is work afoot to let us compile Julia programs ahead of time to on-disk binaries (we can already compile a subset of Julia to binaries for GPUs).
Why is this tagged lisp?