The creators of Julia have been focusing on technical, numerical, scientific computing first, however, the language was always intended to also be a good general purpose programming language (which it is) [I was lucky enough to attend Jeff Bezanson's Ph.D. thesis defense at M.I.T. 3 years ago - and was able to ask him that question there].
I used to be a full-time C/C++ programmer, focused on performance of large systems, however, since learning Julia I haven't had to go back to writing C or C++ even once in over 3 years, since I can write even the sort of low-level code I typically do in Julia, faster and easier than in other languages, and get the same performance.
> It will be interesting to see exactly how <i>nothing</i> and <i>missing</i> play out in-practice. I feel like if all things go well, then in most circumstances operating with a <i>missing</i> should return a missing (i.e. properation), and operating with a <i>nothing</i> should throw an error (Much like a NullReferenceError).<p>We all know that having a null value in your language is a mistake, but i have to admit that it had not occurred to me that the fix was to have <i>two</i> null values.
What is the target market or prime use case for Julia? What makes it better than alternatives? I've _heard_ of this language but haven't studied it; I'm trying to understand if this is more of a niche language or something which could see more mainstream adoption like Go or Rust.
I'm surprised the author didn't touch on the massive changes to Pkg. Now Pkg is a lot more like npm, allowing for "project" level packages rather than requiring global packages.
I had a look at Julia like 2-3 years ago and thought it seemed really nice to use.<p>The performance is of course also awesome.<p>So I hope we get more traction for Julia as a general purpose language. But for now I'm sticking with Node.
Can you run it with the plotting libraries loaded and have whos() return in less than 10 seconds yet?<p>I was excited about v0.6 but then when I learned it took >15s to do whos(), I completely gave up...
Would anyone recommend using Julia for things like web servers? Python is used for web servers, and is slow. But Julia doesn’t really seem marketed to that application domain, despite that I would expect it to do a better job with the demands on a server due to its performance.<p>I know web frameworks exist for Julia, but I’m wondering how practical it is to actually use this language for that purpose?
Honest question, just how fast is Julia anyway? Because performance is typically the main reason anyone would want to use it over alternatives. A lot of people justify Julia because, as noted in other comments, it is both high-level yet claims to be nearly as fast as C:<p>> "Julia is the fastest modern open-source language for data science, machine learning and scientific computing...with the speed, capacity and performance of C, C++..." [4]<p>That's a bold claim! And there is much evidence to the contrary. I often find that the language falls into a similar trap of many other languages where the creators are evangelists not quite sharing the whole picture. Writing fast Julia code is not always a pleasant experience as you often need to fight the easier idioms. It is marketed as fast, but really, how fast is it?<p>[0] <a href="http://www.zverovich.net/2016/05/13/giving-up-on-julia.html" rel="nofollow">http://www.zverovich.net/2016/05/13/giving-up-on-julia.html</a><p>"What’s disappointing is the striking difference between the claimed performance and the observed one. For example, a trivial hello world program in Julia runs ~27x slower than Python’s version and ~187x slower than the one in C."<p>[1] <a href="https://www.ibm.com/developerworks/community/blogs/jfp/entry/A_Comparison_Of_C_Julia_Python_Numba_Cython_Scipy_and_BLAS_on_LU_Factorization?lang=en" rel="nofollow">https://www.ibm.com/developerworks/community/blogs/jfp/entry...</a><p>"We can code in Julia in a way similar to Python's code. However, that code is slower than it should. One way to speed Julia is to take into account the Fortran ordering it uses by looping on j before looping on i in the second loop. We also add decorators to speed up the code."<p>[2] <a href="https://www.codementor.io/zhuojiadai/julia-vs-r-vs-python-string-sort-performance-an-unfinished-journey-to-optimizing-julia-s-performance-f57tf9f8s" rel="nofollow">https://www.codementor.io/zhuojiadai/julia-vs-r-vs-python-st...</a><p>"...comparing R's sorting speeds to Julia's is not the complete story, even though on the surface R appears faster, and from a users' perspective, (once the data is loaded) R is still the king of speed."<p>Stackoverflow has quite a few user posts [3] from folks trying to get their code to perform at the advertised speed vs popular alternative languages. It's not so easy.<p>[3] <a href="https://stackoverflow.com/questions/20613817/julia-julia-lang-performance-compared-to-fortran-and-python" rel="nofollow">https://stackoverflow.com/questions/20613817/julia-julia-lan...</a><p>[4] <a href="https://juliacomputing.com/" rel="nofollow">https://juliacomputing.com/</a>
Where are we compared to then (<a href="http://www.zverovich.net/2016/05/13/giving-up-on-julia.html" rel="nofollow">http://www.zverovich.net/2016/05/13/giving-up-on-julia.html</a>)?
One thing I always dislike about julia is the .+ .* .< ... all those dots for element-wise operations. It is inherited from Matlab, but is a bad design because more common usage should have shorter operators.
Julia always was one of the languages I wondered whether I should have a closer look at (do python data-science stuff mostly, so it is an interesting project). However, reading Dan Luu writing about his experiences with members of the Julia community <a href="https://danluu.com/julialang/" rel="nofollow">https://danluu.com/julialang/</a> I try my best to not get anywhere near it. Directly cited:<p><pre><code> Update: this post was edited a bit to remove a sentence about how friendly
the Julia community is since that no longer seemed appropriate in light of
recent private and semi-private communications from one of the co-creators
of Julia. They were, by far, the nastiest and most dishonest responses I've
ever gotten to any blog post. Some of those responses were on a private
discussion channel; multiple people later talked to me about how shocked
they were at the sheer meanness and dishonesty of the responses. Oh, and
there's also the public mailing list. The responses there weren't in the
same league, but even so, I didn't stick around long since I unsubscribed
when one the Julia co-creators responded with something bad enough that it
prompted someone else to to suggest sticking to the facts and avoiding
attacks. That wasn't the first attack, or even the first one to prompt
someone to respond and ask that people stay on topic; it just happened to
be the one that made me think that we weren't going to have a productive
discussion. I extended an olive branch before leaving, but who knows what
happened there?
Update 2, 1 year later: The same person who previously attacked me in
private is now posting heavily edited and misleading excerpts in an attempt
to discredit this post. I'm not going to post the full content in part
because it's extremely long, but mostly because it's a gross violation of
that community's norms to post internal content publicly. If you know
anyone in the RC community who was there for the discussion before the
edits and you want the truth, ask your RC buddy for their take. If you
don't know any RC folks, consider that my debate partner's behavior was so
egregious that multiple people asked him to stop, and many more people
messaged me privately to talk about how inappropriate his behavior was. If
you compare that to what's been publicly dredged up, you can get an idea of
both how representative the public excerpts are and of how honest the other
person is being._</code></pre>