The psychological reason behind the Julia community's lack of success (not just adoption) and why I'm afraid our future is not so bright

This is not yet another “Julia lacks adoption.” post. In fact, I’d argue later that Julia has enough adoption to compete with major languages at this point. Julia might not be a major language, but the community is not small either. Rather, this is my observation as to why we as a Julia community lack success. This is not to belittle the amazing achievements made by the Julia community but rather how I’m afraid they’re not enough.

Two main types of people
Theoretical people love things like analyzing languages in depth, weighing their features, understanding obscure algorithms, reading advanced numerical methods, and so on. Many of us (me included) are probably of this type, which is why we’ve come to choose Julia in the first place because we’ve evaluated the options and found Julia to be good.
Practical people, on the other hand, like making stuff. They tend to jump into problems they want to solve, pick standard or simple tools, and put in hard work. I might not quite agree with their choice, but I respect them, for they make stuff happen.

The issue is that we as theoretical people tend to love reading theories, writing small microbenchmarks and small scripts, etc. They don’t necessarily like putting in hard work to complete actual large projects.

And here comes the problem. We can come up with all the theoretical reasons as to why Julia would be better for XYZ, but practical people beat us to the race, even when we aren’t that outmatched in terms of numbers or when, as is often the case in software engineering, the numerical advantage doesn’t really matter (as in, adding people doesn’t make the project go faster), because we might not actually like to make actual stuff.

I do not think we lack adoption. We have enough people to do amazing stuff. Let’s look at examples from other languages. lichess.org, for example, is developed mainly by ONE developer and is said to outperform, or at least be able to compete with, chess.com with over 500 developers. So, I don’t think we lack people. If anything, it may be just a measly 10 to 1 or 20 to 1 ratio. We should have enough people to outperform other languages on many things, given that Julia grants us such a huge leverage. However, that doesn’t happen.

And this is why I’m afraid of the future of the Julia community, that we won’t make many large projects, not because we technically can’t, but because we, as a community, are psychologically incapable of doing such a thing.

Now, the question remains, is there a way out?

1 Like

There seems to be a common pattern in all your posts. If you are afraid of committing to Julia, you don’t have to. I would probably say that it might just not be the language for you.

I could respond to more but

And this is why I’m afraid of the future of the Julia community, that we won’t make many large projects, not because we technically can’t, but because we, as a community, are psychologically incapable of doing such a thing.

There are plenty of large projects in Julia? I don’t think this is an accurate generalisation to the Julia community at all. Not to mention, theoretical people can certainly be practical and vice versa.

12 Likes

I’m not afraid of committing to Julia. It’s not like I’ve committed to any other language either. I’ve done many things well in Julia. I think my next big personal project will not be solely Julia but will include Julia.

There are plenty of large projects in any large programming language. There are many large projects in Haskell as well, but as said, maybe not enough.

https://www.tongyuan.cc/release/syslab is a large project using julia heavily, like many other large projects it’ s for profit. Maybe you could spend more of your time doing more meaningful things like learning more human languages rather than repeating various similar posts.

1 Like

Yea… I don’t think this is “the” issue with the Julia community.

At this point, I think the three most impactful improvements for Julia adoption would be:

  • Static binaries
  • Developer tooling
  • A traits system

With Julia 1.12, static binaries start really being something Julia can do. We’ve got a bunch of us (I say “us” as I’m working on About.jl and CheckDoc.jl myself) working on developer tooling, and there’s forceful interest from the community and core devs in interfaces (which I am hoping will be more like Rust’s traits than a “check this list of functions are implemented” bandaid).

I don’t think “Julia developers have their heads in theory-land and can’t do major projects” is an issue. Have you seen JuMP?

10 Likes

Okay. It looks like the Julia community agrees there is no such problem. Maybe this is yet another hallucinated analysis I made? Maybe that’s the case after all?

I tried to explain why… just why… languages such as go had a big success and so on when theoretically go doesn’t have like these or that feature and people just say… it’s a practical language. So, maybe I hallucinated stuff up? I don’t know, but it’s guesswork at this point.

I can give my 2c on this:

  • Go is pushed by a big tech company
  • Go has a best-in-class async runtime + GC
  • Go makes cross-compilation to static binaries really easy
  • Go was released with a rich stdlib, including a networking stack
  • Go is easy to get started with, good developer tooling

These features made Go an extremely compelling option for people developing network-y type applications, hence why you see a lot of server/network type projects using Go.

1 Like

So, I guess the question of why people might prefer simpler languages, why this or that, why Common Lisp didn’t get major adoption either, etc, is not simple. I guess there will only be guesses. I’m afraid there is no easy solution after all.

None of these things have a simple one reason explanation. I’m not too sure what different response you want on all your posts like these about Julia adoption.

1 Like

Okay… I guess this hypothesis fails again?

Okay… that’s the answer.

Closing this thread because we have had plenty of similar open-ended discussions in the past and they rarely lead anywhere.

13 Likes