Results regarding Julia from HackerRank developer skills report

14.4% of surveyed plan to learn Julia (R even higher) but Julia seems really disliked as well. Possibly due to breaking changes and slowness of package installation and first usage? See full report here.

Preference by age

I would not speculate too much based on this without the raw data. I don’t know how their indices are calculated, but I wonder about sample size — how many people would even know Julia well enough to form an opinion?

Also, keep in mind that these “surveys” or “studies” produced by sites that sell something are there to generate discussion and media presence.

8 Likes

Yeah, I just saw that Julia was very disliked. I found it a bit surprising. I wonder what the sample-size is, though? Probably not a lot of the people who have taken the survey have actually tried Julia.

Still, if there’s something that people are finding frustrating (tooling or about the language itself) this would be a good time to figure that out and maybe make some adjustments?

I honestly cannot for the life of me understand why anyone would prefer Python to Julia.

I agree with @Tamas_Papp, it seems likely that a huge portion of respondents wouldn’t be familiar enough with Julia to form an opinion. It also seems suspicious that such a large portion of respondents plan to learn Julia while simultaneously it is so widely disliked.

2 Likes

My interpretation was that people may have just said “dislike” for languages they don’t know. E.g. Rust, Haskell, Lua, OCaml, Clojure are all pretty nice languages from my perspective, but they all showed up as disliked in the survey (more so than PHP??). The common thread seems to be that they’re not as well known, so I wouldn’t be surprised if the larger number of users of popular languages skewed those negative. I think it just shows that surveying is hard ;).

7 Likes

Since the rest of the survey is about jobs, I have to assume it’s something like “what do you not like to see a job applicant’s background to be?”, and employers down-voted all of the new languages because they are still on the old. Rust and Haskell have consistently been ranked well-liked as well, so this result is a major outlier for sure.

It’d be interesting to have some index of “how good it is to have Julia on your CV” and track it over time. I really have no idea what is the fraction of employers (per sector, as I’m imagining this can vary wildly depending on the type of job) on which this would make a positive impression…

I have the feeling that many people judge a language by the number of packages/snippets of code readily available to be used, rather than the real merits of the language. Python has a dominant position in that field.

2 Likes

I have to say, while I am pretty suspicious of these results, unfortunately there is part of me that wouldn’t be so surprised if there is some truth to it.

Over the past couple of years, from reading blogs, forums and news articles, I get the sense that there is a huge portion of the population that feels that any improvement that is “only” incremental is worthless (at least when it comes to programming). I’ve sometimes referred to the most extreme version of this argument as the “Turing completeness argument”, i.e. that “all languages that are Turing complete are equivalent; legacy compatibility and amount of existing code are the most important things; therefore there is never any reason to use anything other than Python/Java/Javascript”. I really hope I’m over-interpreting or over-generalizing what I read, but I can’t help but feel that I hear echos of this all the time, at least online. While to any of us who are embracing Julia that argument seems laughable, it’s actually very hard to argue with, simply because anyone who holds that view will never see any value in any of the benefits one might demonstrate in rebuttal. Likewise I suspect that much of the success of Go, Rust and Swift has as much to do with how familiar they are as what they do that’s new. Julia, on the other hand, with multiple dispatch and its occupying a strange middle ground between AOT and JIT at least superficially seems like a far more radical departure from the status quo than any of Rust/Go/Scala/Swift.

This is why I believe that one of the most important things for the success of Julia will be the ability to reliably call it from other languages. While we will probably never win over the majority of Python users, we very well may win over the majority of people who are working on Python package back-ends in C. If Julia becomes one of the dominant languages I suspect it will only be after people discover they are already using it for so many things, why bother with that silly Python layer anyway.

1 Like

Python only came into popularity in 90’s and before then Python had 0 libraries. Now it has tens of thousands. Things just take time. People are still using SAS, I just showed them at work that I can process the same amount of data (without loading them all in to RAM) an order of a magnitude faster using R (sorry, Julia not there yet). After the session people asked for my R code… Things will slowly change. Julia is also a nice general purpose programming language if you think about it. All the things Python can do can be just as easily be written in Julia. One day.

6 Likes

I see a huge part of Julia’s future user-base being researchers. Any future poll should be representative of that group as well.

5 Likes

I guess Julia could follow R’s path to success. R is the default programming language for most stat departments, and has been used extensively for stats publications. Julia could gradually replace Fortran (and maybe C++ ) in physics department, and then catch up other popular languages with better package ecosystem.

I feel like that Python users do not like Julia’s assertion that it solves the two-language issue. Most Python users I know think Numba and Cython are better than all other numerical tools.

yep. i overheard someone saying that if he needs spped he would just usd cython

1 Like

I’ve been thinking about this sort of thing for the past month.
I am a statistics graduate student in a program where everyone else uses either R or SAS.

I keep thinking about velcro. In many objective measures, velcro is just objectively better than shoe laces. Velcro shoes are much faster to take on and off, you don’t even have to bend down to fasten them. They’re less likely to come undone, and the straps are not long enough to be a tripping hazard if they do.
Because of these advantages, the early adopters were young children and those with special needs.
Neither of those screams “sexy”; velcro was most definitely not for the fashionable.
And so it was. I, too, am much too vain to rock velcro.

My point:
I worry that expressing my passion to my colleagues does more harm than good.

I tend to get excited about the things I’m passionate about (in particular, Bayesian statistics and Julia) – and have a habit of disrupting class to bring them up (“that choice seems like arbitrary ad hocery, would be more objective to…”, “in Julia you could just…oh, and it’s x times faster”), or forcing people to listen to tangents and tirades when they just wanted to ask about a homework problem. PR is not my strong suite.

From their perspectives – I’m a distraction. Who cares? Most statisticians are Frequentest. It’s obviously better, or at least extremely valid and it is silly to limit oneself by having such a preference. Let alone be passionate about it. Julia…? You’re just as crazy about Bayes, and again, R, SAS, Python is what everyone uses, what all the employers want. Why in the bloody heck would you learn Julia??? R is also what the professors want, what the professors assign.
And who cares about run time? One of the professors often repeats “what is time to a hog?”
( I found out that all the R installations in the department are linked to a reference BLAS, and simply switching to OpenBLAS leads to up to 30x improvement in BLAS/LAPACK. One student was impressed. Others, including perhaps the star student, were anything but. “I don’t care”. )

I feel like, at least among my peers, I’ve created the image of Julia being for, well, most definitely not them.
That it’s for people detached from reality. For people who don’t care about grades, about having free time, or about getting a job (and forsaking these speaks louder than my claims that Julia is better! What else could “better” mean?). It is most definitely not cool.

To them, Julia is short sighted passion over arbitrary details.
All they see is the guy from Silicon Valley that dumped his girlfriend over tabs vs spaces.

Anyway, I do not know how to talk about my interests in a way to actually promote them. Although a professor is letting me teach a couple lectures to grad students about Julia, in which they’ll follow along on their laptops…

6 Likes

Just let it happen naturally.

They don’t care because they aren’t doing cutting edge science that requires computational efficiency in order to not take years to run. 30x could be the difference between 1 simulation per day vs 1 simulation per month. Some people’s problems are computationally simple enough that they can write loops in Python. In fact, this was one of the arguments for Django at first (Python’s web package): servers are good enough you don’t need to care about performance!.. until you do. Some people’s problems are simple enough that somebody else has already written a package for it. Honestly the programming language they use doesn’t matter all too much. The problem is when you hit that edge.

And that edge is creeping nearer and nearer to everyone’s reality. Data analysis is becoming machine learning, and machine learning is becoming programming, and becoming computationally expensive. As the datasets grow, you either have to constrain your work to fit into pre-written tools, or write your own.

So just wait. There’s no rush. Do new stuff, cool stuff, and interesting stuff. Some people just want an “insert data for employer here” button, and the only way to convince them is to utilize the advantages of Julia yourself to build that button. They may never learn to use multiple dispatch properly, like lots of people using Python really don’t understand the full object system, but that’s fine. A language is a tool.

9 Likes

The possible speed differences of switching among different BLAS and LAPACK version in R depend on your computer, data, and problem, etc. This issue has been discussed a lot some years ago, and after all performance is not R’s selling point.
If you really want a faster R, try Renjin.

Since you mentioned Bay stats, how many stats guys are using RStan, and how many are using Stan.jl? I still think R is good enough for most stats stuff. Julia should stick to heavy-duty numerical computing, like Fortran and Matlab. This niche is clear and makes a lot of sense to me.

FWIW, we don’t even know enough about the survey methodology to say that it was the the same respondents who expressed these preferences for the two languages. It could easily happen that most responses for small languages are “don’t know / don’t care”, and any intersections are small.

It is clever to think about before Julia hit it.

What could be critical dangerous edge for Julia? (maybe question for another topic)

I see several possibilities to fail…

Very good point!

But I hope that in more far future it won’t be true and Julia will growth to other areas too.

(and we don’t have to surprised that people from other areas are not impressed with current Julia)

Someone who sees julialang.org might try doing some plots with Gadfly, and may arrive at the conclusion that the benchmark numbers that are above the plots seem a little out of line with what they have experienced. I think that managing expectations better might help to avoid negative reactions. BTW, I’m a convinced user. I am thinking about how to introduce Julia to my students in a way that will not cause them to expect things that they shouldn’t.

7 Likes