R, Python & Julia in Data Science: Ein Vergleich

Lesezeit: ca. 3 min

Mit voranschreitender Digitalisierung und einem stetigen Wachstum an Data-Science-Schnittstellen, ergeben sich kontinuierlich neue Möglichkeiten an sein persönliches Analyseziel zu gelangen. Trotz der „Modernität“ der Branche existiert mittlerweile eine Fülle an Software für jeglichen Bedarf: Von der Gestaltung der Analyse-Infrastruktur, bis hin zur vollständigen, dezentralisierten Evaluation durch bspw. Cloud-Computing (ausgelagerte Auswertung von Analyseskripten). Besonders für Firmen, welche gerade erst versuchen in der Data Science- und Analytik-Welt Fuß zu fassen, ist es oft schwierig, die geeigneten Tools und Prozesse für ihren Analyse-Workflow auszuwählen. Allem voran steht aber meist eine zentrale Frage:

„In welcher Programmiersprache soll entwickelt werden?“

Data Scientists stehen mittlerweile eine Auswahl an Programmiersprachen zur Verfügung. Jede einzelne besitzt unterschiedliche Eigenschaften. Daher eignen sich die einzelnen Sprachen ebenfalls für unterschiedliche Bereiche. Auch bei einer Implementierung der richtigen IT-Infrastruktur spielen Data-Science-Sprachen eine entscheidende Rolle. Basierend auf dem Assessment, wird identifiziert, welche Programmiersprache sich am besten für die Anforderungen in Ihrem individuellen Analyeszenario eignet. Um die Antwort auf die vorabgestellte Frage zu vereinfachen, werden in diesem Artikel die aktuellen und gängigsten Sprachen kurz vorgestellt und beurteilt.

Vorab sei zu bemerken, dass die Bewertung einer Programmiersprache in der Regel von den jeweiligen Forderungen an die Anwendung abhängig ist und wir daher eine sehr verallgemeinerte Beurteilung treffen.

R & RStudio

Posit (ehemals RStudio) gehört als Maintainer der führenden R-Entwicklungsumgebung, Paketentwickler und Anbieter von Lösungen für den professionellen Einsatz von R zu den Wegbereitern für die Verbreitung von R im Unternehmensumfeld. Die Statistiksprache R wurde im Jahr 1993 veröffentlicht und ursprünglich für Statistiker entwickelt. Mittlerweile erfreut sich R großer Beliebtheit unter Statistikern sowie Analysten aus den unterschiedlichsten Fachrichtungen. Als freie Software und mit mehreren zehntausend gelisteten Zusatzpaketen auf R’s größtem Open-Source-Paketarchiv CRAN, findet sich beinahe für jeden Anwendungsfall das passende Tool. Mit der kostenlosen Software RStudio-Server, bzw. dem kommerziellen Äquivalent RStudio-Server-Pro, schaffen die Entwickler eine intuitive Benutzeroberfläche, in der von mehreren Nutzern parallel auf Projektbasis gearbeitet werden kann. Die Resultate können dann bequem per Button-Click veröffentlicht und somit für Nutzer aller Art zugänglich gemacht werden. Dafür bietet sich das hauseigene RStudio-Connect an, eine Plattform, auf der veröffentlichte Ergebnisse in Form von Skripten, Reports oder mit R’s WebApp-Framework shiny erstellte Applikationen eingesehen und ggf. interaktiv genutzt werden können.

Python & Jupyter Notebook

Die im Jahr 1991 erschienene Programmiersprache Python besticht vor allem durch ihre vergleichsweise einfache und gut lesbare Syntax sowie ihrer Zweckdienlichkeit in den unterschiedlichsten Anwendungsfällen, von der Backend-Entwicklung, über künstliche Intelligenz bis hin zur Desktop-Anwendung. Die Tragweite im Bereich Data Science erlangte Python erst im Laufe der Zeit, als durch Zusatzmodule wie bspw. numpy und pandas umfangreiche Werkzeuge zur Datenverarbeitung implementiert wurden. Besonders im Bereich des maschinellen Lernens, welches Prozesse wie Bilderkennung und Sprachanalyse abdeckt, bietet sich meist Python als Sprache der Wahl an. Besonders im Bereich der Datenanalyse wird oft in der Entwicklungsumgebung “Jupyter Notebook” gearbeitet, da die hier erstellten Dokumente interaktiv genutzt sowie als statische Reports leicht ausgeleitet und verteilt werden können. Die Entwickler von Project Jupyter stellen zudem eine zu RStudio-Server ähnliche Multi-User Umgebung für Jupyter Notebook in Form von JupyterHub zur Verfügung. Die Popularität von Jupyter Notebook reicht bis zu den bekanntesten Cloud-Computing Diensten wie Amazon‘s SageMaker, sowie Google’s Cloud-ML-Engine und Microsoft Azure’s Machine Learning Studio.

 

Ein barrierefreier Workflow zwischen R und Python

Wie in unserem Artikel über das R-Paket reticulate bereits thematisiert, muss sich der Datenwissenschaftler von heute, selbst bei bestehender Infrastruktur, nur noch selten für eine der beiden Sprachen entscheiden. So sind sowohl in RStudio-Server als auch in Jupyter Notebook die nötigen Unterstützungen für beide Sprachen integriert. Und mehr: Selbst innerhalb der Sprachen kann multilingual entwickelt werden, so findet sich in Python im Modul rpy2 die nötige Schnittstelle zum R-Code und in R im oben erwähnten reticulate-Paket andersherum. Außerdem können auch Jupyter Notebook-Dokumente auf RStudio-Connect veröffentlicht werden. Diese Entwicklung spiegelt sich merklich im Aufbau und der Wartung moderner Analyse-Infrastrukturen wider. So werden erfahrungsgemäß oft bestehende Systeme nachgerüstet, sodass beide Sprachen unterstützt und neue Systeme direkt mit Blick auf beide Optionen aufgesetzt werden können.

Julia Programmiersprache – Noch jung, aber effizient

Die im Jahr 2012 als Open-Source erschienene Programmiersprache Julia versucht, die Zugänglichkeit und Produktivität einer Statistiksprache wie R mit der Performance einer kompilierten Sprache wie C zu verbinden. Dabei kann die Sprache, welche insbesondere für wissenschaftliches Rechnen entwickelt wurde, auch als Universalsprache genutzt werden. Die Geschwindigkeit der Programme liegt dabei im Bereich von C und setzt sich somit deutlich von R und Python ab, weswegen sich Julia zunehmend auf dem Markt etabliert. Da im Jahr 2018 erst eine offizielle Version 1.0 von den Entwicklern released wurde, bleibt abzuwarten, inwiefern sich Julia in den kommenden Jahren durchsetzen kann. Gerade mit Blick auf die zahlreichen Case-Studies, welche auf der offiziellen Julia-Webseite gelistet sind, sind wir optimistisch für die Zukunft von Julia im Kontext der alternativen Programmiersprachen.

Welche Programmiersprache eignet sich für was?

Abschließend bleibt zu sagen, dass die Frage nach der richtigen Programmiersprache durch die verschwimmenden Grenzen zwischen den Sprachen zwar nicht einfacher zu beantworten wird, aber mehr und mehr in den Hintergrund gerät, was wir für eine gute Entwicklung halten. Um dennoch eine „finale“ Bewertung zu liefern, empfehlen wir R für Anwendungen, welche einen hohen Wert auf Datenvisualisierung (ggplot2) legen und/oder sich das mächtige shiny-Framework in Kombination mit den RStudio Produkten zu Nutze machen können. Für Anwendungsbereiche, wie z.B. Bilderkennung und Natural Language Processing (Sprachanalyse), empfehlen wir Python (scikit, pandas). Wie bereits erwähnt, eignet sich Python besonders gut im Hinblick auf Cloud-Computing. Ein Beispiel hierfür ist die Anbindung an Amazons Machine Learning Service „SageMaker“. Nichtsdestotrotz eignen sich R und Python beide für die Datenmanipulation. Die Vorteile von Julia sind vor allem dessen Geschwindigkeit. Bei zeitkritischen oder ressourcen-intensiven Anwendungen wird daher gerne auf Julia zurückgegriffen. Eine Übersicht über eine Auswahl empfohlener Anwendungsmöglichkeiten findet sich rechts:


Sie konnten bereits identifizieren, welche Programmiersprache benötigt wird? Gern schulen wir Sie in den Sprachen R und Python. Alle Schulungen bieten wir Ihnen als Inhouse-Trainings an. Diese können auch individuell auf Ihre Anforderungen hin angepasst und in englischer Sprache gehalten werden.