I was recently attempting to formulate a concise list of the things that I liked about Julia. This is what I came up with so far:
- automated and practically invisible build system (no more configuration files, make files, compilers, linkers),
- multiple dispatch is a natural framework for program development (much less constraining than OOP),
- the language is expressive and “obvious”, so that design and coding are relatively easy,
- high-performance implementation is possible in a single language, which is both high-level and sufficiently expressive to allow implementation of fine-granularity operations (loops)
- reproducibility is easy and built-in (projects can be completely reconstructed at any time in the future),
- great community of Julia users and experts that are happy to provide guidance and assistance with “Julian” software development.
If you were to compile your own list, what would it look like?
I am on the fence about the ability to write in Unicode. Well, I am really on the other side of the fence now. I think writing in Unicode breaks the 'obviousness" (explicitness) dictum. See Unicode Look-alikes · GitHub, for instance.
I like the
@code_xyz macros that allow for introspection. It’s like a game trying to figure out the compiler while you’re coding. I enjoy it
I don’t know enough about computer science or scientific computing to appreciate/understand most of the other alleged advantages of Julia, but the above is important to me. It is the same reason I like Lyx instead of regular Latex.
I like the fact that, with a little bit of knowledge of performance hints, one can quickly write code in the “obvious” way, and it will be quite performant. I also like it for teaching, as it is free, runs well, is easy to install on all operating systems, and is a good path for reproducible research. I feel like recommending Julia to students is a responsible thing to do.
I am somehow on both sides. Being allowed to write this
julia> θ = 2π
is great. On the other hand, this
julia> a = 3
julia> а + 1
is… confusing, indeed.
And I am literally frustrated by
julia> a = 1
julia> b = 2
Just because you have a beautiful silver table knife set doesn’t mean you stab yourself with it
Is it though…
(I guess Stefan says “you can decide for yourself whether Julia qualifies” so you can only be correct )
I think editors will highlight ambiguous characters for you, though it doesn’t seem to actually work for me in VS Code.
With the following VS Code setting checked:
It works partially for me in the example above: OK for the letters but not for the ₊ symbol.
Very nice! Works for me too, now. I just didn’t find the right setting, I find setting navigation very difficult in VS Code.
Why not a constructive “What do I dislike in Julia”?
Go for it! I was interested in the “like” list.
It’s hard to have a coherent problem-solving discussion in a big thread with lots of people listing problems. Usually easier if they’re separated into their own threads.
this thread is actually much nicer than what it could be, I find this kind of open question difficult to maintain focused. Opening the “What do I dislike in Julia" thread, I fear the TTX, Debugging coming back like a boomerang
There is only one simple reason I like Julia: the way it (seems to) work conforms with my expectations. Of course this can be said for any (person, language) pair, which leads to the proposal that perhaps different people would like different languages, both out of familiarity or how it matches one’s thinking.