In October I wrote about the growth of Dart, the language developed by Google in 2011 with an eye towards displacing JavaScript. It turned out that while Dart is starting to make some noise in the competitive world of programming languages, it’s still a long way from being a real threat to such an established and entrenched language as JavaScript. Today I wanted to look a little more closely at the growth of another young language created with the notion of taking on some established heavyweights: Julia.

Julia was created by Stefan Karpinski, Jeff Bezanson, Viral Shah and Alan Edelman as an open source language to do, well, as they themselves said, everything. It’s a high level language for technical and mathematical computing, like R and Matlab, while also being a general purpose language, like Python. It was also designed to handle distributed, parallel computing, like Hadoop, while having the speed of C or Java. That’s a pretty high bar to set, for sure.

Julia was first released to the public in February, 2012, almost three years ago now, so I wanted to get a sense for how much developers were using or, at least, talking about it. In terms of web searches, Julia has yet to make much of a dent. It’s not listed on either the latest TIOBE index (the top 120 languages, at least), which ranks languages based on their share of web searches for programming languages across a number of search engines, or the latest PYPL index, which is based on Google searches for tutorials about a language.

However, in terms of actual language usage, Julia is showing strong signs of growth. The most recent RedMonk programming language index (from June), which considers a language’s popularity on Stack Exchange (based on tags) and total lines of code in GitHub, saw Julia rise five spots from its place in the previous rankings in January to #57. The man behind the RedMonk index, Stephen O’Grady, wrote that Julia (along with Rust) is

“... proving to be popular sources of investigation and experimentation, and it’s certainly possible that one or both could follow in Go’s footsteps and make their way up the rankings into the second tier of languages at a minimum.”

To get a better sense of the growth of Julia projects, I dug a little a deeper by looking at GitHub usage data generated by GitHut (Julia isn’t listed on the nice, handy GitHut page, but is contained in their raw data, available on - where else? - GitHub). Here’s a comparison of the number of active GitHub repositories using Julia and some of the languages it competes with since it was released in early 2012.

Number of active GitHub repositories

Language Q2 2012 Q3 2014 % Growth Julia 77 1,258 1,534% C 24,080 64,597 168% Java 50,334 175,968 250% R 1,153 36,343 3,052% Matlab 1,070 7,385 590% Python 50,607 142,272 181% GitHub Average 17,061 51,452 202%

Data source: GitHut

First, you can see that Julia is still relatively small potatoes, with only 1,200 or so repositories active in Q3 of this year, many fewer than those for the big players like Python and C and even Matlab. However, the growth in the number of active Julia repositories per quarter is impressive. It’s grown at a rate that’s an order of magnitude greater than that for C or Python since Q2 2012, about three times the rate of growth in active Matlab repositories and seven times that of the average number of active repositories per language per quarter over the same span. However, the rate of growth of R repos since early 2012 is twice as great as Julia’s.

Julia, then, is currently a third tier language, as RedMonk put it, but with very encouraging signs of growth in actual usage by developers. As for whether it’s pulling developers away from other languages, that’s not as clear. It’s growing significantly faster than Matlab, but not nearly as fast as R. Also, although it's growing faster than C, Java and Python, those languages are so widely used, they have nothing to fear from Julia. Not yet, at least.

This story, "Growth spurt: Julia’s popularity with programmers is on the uptick" was originally published by ITworld .