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?