Julia is Ranked 35th on the TIOBE Index

Now we are in position 42 (0.210% of the total usage)

There’s a ton of noise in the Tiobe rankings. It goes up, it goes down. It’s an upwardly trending random walk.

3 Likes

To add to that, note that 0.210% is likely indicative of a sample size that’s prone to huge statistical fluctuations.

It’s funny, recently I’ve had some conversations with people who had less positive experiences than I have with getting involved in open source projects. Some questioning revealed that much of their frustration was likely due to the enormous popularity of the projects to which they wanted to contribute. There are definitely certain advantages to not being super popular. I personally would be perfectly content if Julia were a top 30 to 50 language indefinitely (though I suspect eventually it will be a top 10 to 30 language).

3 Likes

Yes, I totally agree. Popularity is completely irrelevant in my opinion, as long as Julia enables all the things I want to do. It doesn’t matter to me if my neighbor uses it, the community is thriving.

The ranking is interesting to watch, but I don’t think it matters and it shouldn’t be the end goal.

1 Like

To me, unfortunately, it does make a significant difference. Since none of my colleagues use it, and none of our customers have even heard about it, I cannot use it for work, except for very experimental or personal toy projects. I’ve only once in the past 3 years met anyone IRL who knew about Julia who hadn’t heard about it from me.

More popularity would make a very big difference. I don’t mean to complain, though, it’s without doubt my favourite language.

8 Likes

That’s a good point; however, a technically competent colleauge wouldn’t base a decision on rankings.

The rankings don’t matter, it’s the name recognition and the lack of use among customers and peers. So it’s only indirectly related.

1 Like

The problem is not the colleague, but the company that calls the shots!

Same problem here: Julia is still too new to use it in most projects. It’s a matter of time though before it becomes enough popular imo.

1 Like

personally, i use julia because it has killer apps (ForwardDiff, DiferencialEquations.jl, JuMP, Flux), the more killer apps, the better, i think

2 Likes

there is this ranking too, and it directly mentions julia:

  • Julia : For a language that isn’t even in the Top 30, Julia continues to attract questions about its performance and future. Its growth has been more tortoise than hare, but it’s up another two spots to place #34. While there is no technical basis for comparison, it is worth noting that three years ago in our Q1 rankings TypeScript made a similar modest jump from #33 to #31. That is not to say that Julia is destined to follow in TypeScript’s footprints, of course, but rather to serve as a reminder that while it’s uncommon languages can transition quickly from periods of slow, barely measurable growth to high, sustained growth quarter after quarter.

I also find myself in an environment where a lot of people wouldn’t even consider using Julia because of its relative obscurity. However, I nevertheless find that the modern concept of “microservices” is the primary thing that allows me to use Julia for work. Since nobody is likely to use the code I produce as a proper API, it doesn’t really affect me that it might be difficult to do that in the languages others are using (primarily Python and Go). What I really need is for the serialized IO of Julia to be good. Thanks to packages such as ProtoBuf, FlatBuffers (which I can’t get anyone to use), JSON (which everyone insists on using), HTTP and LibPQ the fact that I use Julia doesn’t much affect my colleauges who would likely find it extremely annoying otherwise. The biggest problem I have with using Julia at work is the lack of an equivalent to JDBC or SQLAlchemy (for which I use JDBC). I have toyed with the idea of writing a halfway-decent database package interface for Julia at least, but those efforts have fizzled out because it doesn’t solve the core problem (i.e. having a nice Julia-native alternative to JDBC).

Most of my actual work involves mixed integer linear programming and some graph theory, and it just so happens that the alternatives for doing what I do in other languages are abysmal at the moment. There is another group that does some of the linear programming in python and it’s absolutely awful. So, if someone asked me not to use Julia, they’d get a pretty lengthy lecture on why moving to something else would be a terrible idea.

3 Likes

I’m just starting to learn Julia, and the reason why my colleagues and my don’t use it yet is because we depend on packages available on other platforms and not in Julia. For example it doesn’t have any package to do multiple imputation nor metanalysis.

Depending on the language those Packages are written in, you can still use them from Julia via Py-, R-, CCall.

3 Likes

We use FlatBuffers.jl a lot in a large-scale learning.

Is the code open source?

Somewhat surprisingly (or maybe obviously in retrospect?), the biggest hurdle for people who cooperate with me (ie mostly coauthors on various papers) has been not Julia per se, but the fact that I developed a habit of using version control and CI for everything.

Eg when we build code for estimating a structural economic model, I first write a quick & dirty version with extensive tests, then benchmark and optimize, using quite granular PRs for this. They see the benefits very quickly, but the entry cost of learning a new language and the associated tooling can be daunting. The best solution so far is that they share the screen and I help with commits, PRs, Julia and IDE glitches, etc.

What I learned from this is that if you want people to learn Julia to work with you, you have to be available for troubleshooting and guidance on a short notice. Then it is a rather smooth process.

12 Likes

You horrible, horrible person :joy_cat:

5 Likes

Most parts of it yes.

I can completely relate to that. The “why Julia? how do I use Julia?” discussion often turns into “why Julia, version control and tests? how do I use Julia, git and GitHub?” which can degenerate in “version control doesn’t make sense for my field of research” type of arguments. This is not an easy discussion, I’m afraid several researchers use a very different style (large scripts, not version controlled or tested, which are copy-pasted and changed as needed with a heavy use of the debugger: set breakpoint at line 457, see how things look there, edit a bit, advance to line 503 and so on). This approach may sound a bit unorthodox from a software engineer point of view but can be quite effective in the short term.

Besides doing a “guided version” the first few times (e.g. sitting down with a colleague and doing say a PR on their computer showing all the steps) I found it helpful to show how to use the Atom text editor, because, other than of course the Julia integration, it also has very good git / GitHub integration and may be more intuitive then the command-line interface of git for new users.

4 Likes

Since benchmarking and optimization meshes best with small functions in Julia, the first thing to convince people is to write small, clean functions that do one thing. This is good to learn and idiomatic Julia style anyway.

The next thing is to have unit tests, which is more natural for small functions where the invariants are usually clear. Then, after about the first 10 critical errors are caught in <100 LOC, most people understand why they are useful.

I think that the biggest selling point of version control is the ability to review and comment each other’s code on Github/Gitlab/… .

3 Likes