Julia: a post-mortem

I have been interested in Julia for some time and I wanted to use it in part of my work. I have been learning it with the help of resources such as the courses available at Julia Academy. Reading a post a few days ago made me wonder if at this time learning Julia is a wise thing to do or a waste of time.
The following is a blogpost by CHRIS VON CSEFALVAY. The author of Julia in Action:

I wanted to see Julia Community feedback on this post to use their comments on my decision to continue learning this programming language.

3 Likes

I wouldn’t put too much stock in one individual’s opinion. Here is another recent article that presents a totally different view:

Whether or not Julia is right for you will depend entirely on what kinds of problems you are trying to solve with it. Give it a try and don’t hesitate to engage the very helpful community here if you need advice or if you get stuck :slightly_smiling_face:

21 Likes

Skimming through it for me it seems to be a lot of feelings and expectactions and not so much facts.

In my opinion the best bet is to be first and foremost a “programmer” and then choose the relevant tool, whether it is Python, Matlab, Julia, C/C++ etc.

What I like about Julia is that it allows me to express code in a way I like to. I am sure C/C++ / Python etc. could be written in a way which I like to, but for me personally it comes naturally in Julia. So this is not a factual argument, but more of a personal stance, which most of all of these blog posts usually boil down too :slight_smile:

Kind regards

15 Likes

It depends somewhat on your expectations. The first paragraph of the post contains this

We were all going to heaven, and that right soon. The language wars would end, we would finally get a lingua franca for anywhere code performance mattered, Julia would take over the TIOBE Index, and we’d all be home for tea and medals.

By this standard, Julia has failed, so far.

Much of the criticism revolves around adoption, which I find unpersuasive, while I just don’t understand the technical criticism. I simply don’t find Julia messier and more difficult than Python, quite the contrary.

29 Likes

I wonder how long it took Python to overcome C (as the dominant language at the time), and how many people thought it would never come to dominate given the gargantuan size of the C ecosystem.

5 Likes

To clarify, adoption is important, imho. It’s just that adoption seems to be going just fine. These things takes years, even decades, like with python. I wish it were going faster, though, so if that is very important to you, perhaps you should wait a bit longer.

5 Likes

This chart is interesting (clipped from this page), given that Python 1.0 was released in 1994.

10 Likes

I think it is hard to point out if it is worth it without knowing better your circumstances. I would make the same comment if you were asking about Python or any other language. I use Julia in my PhD and I am very much happy with it, I programmed with C++ before, and if I can just use Julia everywhere I would use C++ for the rest of my life I will be a very happy man.

I must say the post is a slight more fair than other posts comparing Julia to Python that appear here cyclically. I do agree with the first main points, this is: it is hard to dislodge an incumbent and ecosystems in Julia sometimes are a little lacking. However, at the third point the author starts to lose me: the author puts a lot of emphasis on Julia having a single selling point or being easy to categorize, Julia strength is exactly being a general-purpose language that has the quality of life benefits of a dynamically typed language while being as fast as C/Fortran, and also is out-of-the-box easy to use for maths (linear algebra, probabilities, etc…). The author ends up concluding Julia is not worthwhile on face of Python&C, what I completely disagree. Pỳthon has made some design decisions that will make impossible to reach where Julia will someday reach. What brings me to the next point that is time and communities: Julia community, while smaller than Python, is very active, engaged, and growing; time is necessary. The author in the end goes:

“Give it time” is not how programming languages or software projects grow. If anything, it’s closer to “build it, and they will come”, […]

The first phrase to me is just plain wrong, and the patch does not make it better: the two things are not exclusive. Things take time to build, and people take time to notice new things and try them. Someone gets a copy of the Mythical man-month to this man.

15 Likes

Big problem with many of these metrics is how recent they are compared to the languages they track. The TIOBE seems to go back to just 2001, while Python reached v1 in 1994. By 2001, Python was on v2 and had a rating above 1% (still before the rating skyrockets), which Julia has yet to reach.

As an aside, I noticed a couple spikes in Julia’s TIOBE ratings that seem to coincide with v0.6 and v1.4.

1 Like

It seems to me that the criticism of multiple dispatch is based on misunderstanding what it is good for and how to use it.

3 Likes

I read it yesterday. However, who have learnt several languages until now are reluctant to think that a new language is going to replace the other ones, and less do it very quicky. The current languages have a lot of libraries, extensed ecosystems, more developers … so no-one language is going to do it, even if it was perfect (which is clearly not thecase with Julia).
I prefer the vision of More Programming Languages, Please! | by Erik Engheim | Star Gazers | Medium, in which @Erik_Engheim “sell” the advantages of new languages.
For me, I am happy that I can starting use Julia in my research works, I do not want everybody use it instead of Python, specially one with experience in Python and Cython/Numba and happy with it, but if I meet someone that think that their alternatives are difficult languages like C++ Java, Python that sometimes is slow, or MATLAB with their license problems and resources, I would suggest Julia, because it is works for me, and maybe for him/her.

12 Likes

What kind of work do you want to use Julia for?

I think that depends a lot on what you want to do.

1 Like

Heya folks, let’s not overly dog-pile on here.

Welcome Walter. If you’re interested in the view of the community, you may find reading other topics here informative, too.

Sometimes I think the best responses to posts like this can come from outside our community; of course most of us here don’t think Julia is dead. You can check out the comments on hacker news, too:

https://news.ycombinator.com/item?id=26384133

31 Likes

It seems that the author may have hit the trough of disillusionment in the hype cycle. That’s fine, it happens, but it’s not necessarily reflective of the full reality.

I’ve been dipping my toes in the water again recently, after mostly watching from afar for a few years, and my own impression is that the community has exploded in size and in competence – I see tons of names I don’t recognize making substantive core PRs as well as interesting new package announcements.

Another flawed-but-interesting metric is the github PR activity by language: GitHub Language Stats (note that this reflects relative share, where github activity continues to grow quickly overall). Julia is neck-and-neck with R there – as well as languages like Haskell and Ocaml – neither of which are remotely considered to be “dead.”

If the question is: will Julia be around 5 years from now, and much better than it is today, I think the answer is an unqualified yes: there are many people and institutions deeply invested in Julia’s continued success (see recent DARPA and DoE funding announcements, for example).

If the question is: will Julia reach X level of adoption in Y years, who knows. Anecdotally, I had to argue with people about whether Python was a viable or wise choice for scientific research (over MATLAB or R) in 2013, and I worked in a building full of die-hard MATLAB users (medical imaging) in 2016 who never had any interest in Python and didn’t consider it to be viable until they saw the explosion of deep learning at that time, and all the best tools built in Python. From that perspective, Python’s success happened “slowly, then all at once”, and I think there is a very good chance that the same thing happens with Julia as first-class libraries continue to be released and mature, and more tooling and quality-of-life issues are sufficiently resolved.

26 Likes

Couple thoughts:

  1. The arguments in the blog are not new. The strengths and momentum of other languages and their libraries are frequently acknowledged, but obviously Julia developers and users came to a different conclusion and would contest many of the arguments. For example, this blog post argues Julia has performance capabilities that language-mixing compilers don’t.

  2. Whether you learn a language should depend on your needs and priorities instead of the big question “will Julia replace all languages”. You could ask the Julia discourse community about what sort of packages you might use for whatever projects you want to do. If this is for a career, you should also ask your colleagues or people in the same field what languages and libraries they use. Ask around, weigh your options, do what’s best for you.

1 Like

Thank @dmolina, I recently read that same article. I did feel like writing some kind of response to that. I’ve been interested in programming languages for so long and see them rise and fall that I think it is a bit premature to write off Julia. I certainly did not expect Julia to be dominating the world at this point. I know stuff takes time. I remember being totally hyper about Ruby way back. Yet almost nobody was using it. It took a while for Ruby on Rails to get created for the ball to really start rolling.

I think Julia is also waiting for similar moments in time. That inflection point where some key software is written in Julia, that makes everybody’s life so much easier and everybody just wants a piece of it and cannot stop raving about it.

It is crazy to think that will happen just 2 years after a v1.0 release. I am pretty sure though that in 5 years, people will laugh at the notion that Julia never stood a chance. Sure it would not have unseated Python, just like Go has not unseated Java. Yet we know key software that everybody uses such as Docker is written in Go. Ruby had their Rails moment. Go had their Docker moment.

I have a feeling that for Julia this will end up being some kind of deep learning framework. That seems like a sufficiently large field, with enough hype and importance where Julia actually has a chance to dominate.

2 Likes

I hope Julia will have a great future because I like it, but I cannot be sure about that.

What I can be sure is that learning Julia is NOT a waste of time. The combination of high-level syntax with low-level control of the code puts you into contact with concepts of programming which you will not easily learn using other languages. Apart of Julia specifically, I have learned a lot about programming in general in the last year, when I started to focus on implementing my things in Julia seriously. My previous programming experience was with Fortran, some Python and TCL, and working with those languages didn’t give me near the learning experience I am having learning Julia. I am sure that even if Julia disappears and I go back to Fortran, I will be a much better Fortran programmer, and I will also be able to understand much better why my Python code is slow and how I can improve it, when that is possible.

32 Likes

I think the article starts from two wrong premises, first that Julia will become the language and second that it will do so in only a few years.

As to the latter: As others in this thread have said, language adoption is a non-linear process and starts very slowly. In fact, given Julia’s age I think adoption is actually growing a lot faster than for “yet another xyz” languages and more in line with “breakthrough” (at the time) languages such as Java, Rust or C++.

Concerning the former: I think it would be overly optimistic and also completely unnecessary to assume that Julia will become a majority language in the vein of C, C++ or Python. The language started out with a very clearly defined niche in mind and success should be measured relative to that niche.

And within that niche, I think Julia is a game changer and my prediction is it will become the language within the next ten years or so.

In any case, all of that is kind of academic from a practical and the OP’s question’s point of view. What matters, though, I think is that Julia is in no imaginable way a dead or dying language, to the contrary. That means the only relevant consideration for the question whether to learn/use it is whether it works well for your project.

Finally, I want to add some personal experience. I have been writing simulations for 30 years, mostly in C++. I actually always liked C++ even though it can be incredibly annoying at times. But as soon as Julia was fast enough (within 10-20% of C++ for my problem area) I switched and didn’t look back. And I have to say it was a close to life-changing experience.

20 Likes

I like to remember things like this

In 1983, the DynaTAC 8000x was the first commercially available handheld mobile phone.

whenever people start talking about failed technology. Even after 20 years, cell phones hadn’t taken the world by storm. Now, you can live your life on them if you want.

People in general tend to be overoptimistic on timelines. How many flying cars should we have by now? Or 1000 year batteries?

4 Likes

Compared to new languages like Go and Kotlin, why hasn’t Julia been able to attract so many people? What keeps people from using it?