Julia - To Learn or Not to Learn?

I'm relatively new to data science, having done some machine learning projects at work. My background is in R, although I have some experience in Python. I'm considering choosing one language and getting really good at using it for data science / machine learning.

Now, I've read various articles touting Julia's strengths - namely ease of use and massive speed benefits. It sounds almost too good to be true!

So my question is, is there any particular reason(s) why I should choose Julia over R/Python?

Or alternatively, is there any reason(s) why I shouldn't choose Julia over R/Python?

Topic julia python r machine-learning

Category Data Science


As interesting as these kind of questions are; it will always be subjective and task oriented. There are a multitude of comparisons between these languages: here, here, here and many viewpoints here.


I won't list the technical differences, but just offer my perspective on each language.

Julia

If you want to learn something new and upcoming, perhaps even influence the development in the long term, Julia might be a nice candidate, because (after ca. 10 years of development) it recently made its first 1.0 release and may gain maintstream use over the coming years. Starting now would potentially make you one of relatively few experts in a few years. It is geared towards scientific computing, combining the strengths of more established languages and I agree, some features do sound too good to be true!

R

If you want to have a very well-founded language with more focus on the intracacies of statistics, proven robustness over decades and a strong community, maybe R is for you. There are packages for almost anything related to modelling, forecasting, Bayesian methods, ... the list goes on. It can be fairly painless to learn and provides a short path to results, as libraries oftentimes have a single function that does lots of work for you. R also provides hands-down the nicest plotting experience, whose importance is not to be underestimated!

Python

If you want a "Swiss Army Knife", able to analyse data, build a deep learning model and then perhaps write a webserver to stream API data, from a robot, finally pushing live results to a dynamic website (and so on). There are libraries and tutorials available on seemingly endless topics. Syntax is generally quite friendly, so the path to being productive is just as short as the others. Python isn't as well established (historically) within statistics and machine learning compared to R, but I rarley find myself lacking anything. Python is growing in popularity too, with the majority of academic research I see within Data Science appearing e.g. on GitHub in Python. So it is a mature language and is also expanding.


I think other people could offer their perspectives to give a fuller comparison, but that's my two cents. I personally switched from R to Python for almost all tasks - and haven't yet found time to take Julia for a full test-drive (but want to!).

Coming back to my starting point: all the languages are Turing complete, meaning you can achieve anything with any of the languages... but why open a can of beans with a spoon if there is also can-opener available?

For most practical cases: if you are more comfortable with one language - use that one. If a task requires a certain package from one language, or your company requires the usage of one language - your decision is made for you.

Having motivation to learn a language and get some actual work done should, in my opinion, be the main factor. If you try all three, it is likely one will feel more natural to your way of thinking.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.