R, Python & Julia in data science: A comparison
Reading time: approx. 3 min
As digitalization progresses and data science interfaces continue to grow, new opportunities are constantly emerging to reach the personal analysis goals. Despite the „modernity“ of the industry, there is now a wealth of software for every need: From the design of the analysis infrastructure to the complete, decentralized evaluation through e.g. cloud computing (the outsourced evaluation of analysis scripts). Especially for companies that are just beginning to gain a foothold in the data science and analytics world, it is often difficult to select the appropriate tools and processes for their analysis workflow. But first and foremost, there is usually a central question:
„Which programming language should be used for development?“
Data scientists now have a selection of programming languages at their disposal. Each one has different properties. For this reason, the individual languages are also suitable for different areas. Data science languages also play a decisive role in implementing the right IT infrastructure. Based on the assessment, it will be identified which programming language is best suited for the requirements in your individual analysis scenario. In order to simplify the answer to the question posed in advance, this article briefly introduces and evaluates the current and most common languages.
Firstly, it should be noted that the evaluation of a programming language is usually dependent on the respective requirements of the application and we therefore make a very general assessment.
R & RStudio - By statisticians for statisticians
The statistical language R was published in 1993 and was originally developed for statisticians. In the meantime, R has enjoyed great popularity among statisticians and analysts from a wide range of disciplines. As a free software and with over 14000 additional packages listed on R’s largest open source package archive CRAN, you will find the right tool for almost every application. With the free software RStudio-Server, or the commercial equivalent RStudio-Server-Pro, the developers create an intuitive user interface in which several users can work in parallel on a project basis. The results can then be conveniently published with a click of a button and thus made accessible to users of all kinds. The in-house RStudio Connect, a platform on which published results in the form of scripts, reports or applications created with R’s WebApp framework “Shiny” can be viewed and, if necessary, used interactively.
Python & Jupyter - A universal language on the statistical advance
The programming language Python, published in 1991, impresses above all with its comparatively simple and easy-to-read syntax as well as its usefulness in a wide variety of applications, from backend development to artificial intelligence and desktop applications. As time passed, Python only became important in the field of data science, when extensive tools for data processing were implemented by additional modules such as “numpy” and “pandas”. Especially in the field of machine learning, which covers processes like image recognition and language analysis, Python is the language of choice. Especially in the field of data analysis, the development environment „Jupyter Notebook“ is often used, since the documents created here can be used interactively and easily exported and distributed as static reports. The developers of Project Jupyter also provide a multi-user environment like RStudio Server for Jupyter Notebook in the form of JupyterHub. The popularity of Jupyter Notebook extends to the most popular cloud computing services like Amazon’s SageMaker, Google’s Cloud-ML-Engine and Microsoft Azure’s Machine Learning Studio.
Interlinguality - An accessible workflow between R and Python
As already discussed in our article about the R-package reticulate, the data scientist of today, even with an existing infrastructure, rarely has to choose one of the two languages. RStudio server and the Jupyter Notebook have integrated the necessary support for both languages. And more: Even within the languages a multilingual development is possible, so in Python in the module rpy2 the necessary interface to the R-code is found and in R in the above-mentioned reticulate package the other way round. Jupyter Notebook documents can also be published on RStudio Connect. This development is noticeably reflected in the development and maintenance of modern analysis infrastructures. Experience has shown that existing systems are often retrofitted so that both languages are supported and new systems can be set up directly with both options in mind.
Julia - A young but efficient perspective
The programming language Julia, which appeared as open source in 2012, attempts to combine the accessibility and productivity of a statistical language like R with the performance of a compiled language like C. The language is a statistical language. The language, which was developed especially for scientific computing, can also be used as a universal language. The speed of the programs is in the range of C and thus clearly distinguishes itself from R and Python, which is why Julia is increasingly establishing itself on the market. Since only an official version 1.0 was released by the developers in 2018, it remains to be seen to what extent Julia will be able to assert itself in the coming years. Especially in view of the numerous case studies which are listed on the official Julia website, we are optimistic for the future of Julia in the context of alternative programming languages.
R, Python or Julia?
In conclusion, the question of the right programming language will not be easier to answer due to the blurred boundaries between the languages, but will increasingly fade into the background, which we consider to be a good development. In order to still provide a „final“ rating, we recommend R for applications that place a high value on data visualization (ggplot2) and/or can make use of the powerful shiny framework in combination with the RStudio products. For applications such as image recognition and natural language processing, we recommend Python (scikit, pandas). As already mentioned, Python is particularly well suited for cloud computing. An example of this is the connection to Amazon’s Machine Learning Service „SageMaker“. Nevertheless, both R and Python are suitable for data manipulation. The main advantages of Julia are its speed. Julia is often used for time-critical or resource-intensive applications.
You could already identify which programming language is needed? We are happy to train you in the languages R, Python or Julia. We offer all training courses as in-house trainings. These can also be individually adapted to your requirements and held in English. We accompany you on a voyage of discovery through the data!
Christian Ewald - Posted on 16.09.2019
Christian Ewald ist seit 2017 in den Bereichen Data Science und aicon der eoda GmbH tätig. Im Bereich Data Science arbeitet er als R-Entwickler, spezialisiert auf die Entwicklung von WebApps mit shiny. Im Bereich aicon widmet er sich größtenteils der Evaluation von aktuellen Technologien. Privat interessiert er sich für Containerisierung und Cloud-Computing.