Warum R? Die Vor- und Nachteile der R-Sprache

Die Programmiersprache R ist ein wichtiges Werkzeug für die Entwicklung in den Bereichen numerische Analyse und maschinelles Lernen. Da Maschinen als Datengeneratoren immer wichtiger werden, ist nur zu erwarten, dass die Popularität der Sprache zunimmt. Aber R hat sowohl Vor- als auch Nachteile, die Entwickler kennen sollten.

Mit zunehmendem Interesse an der wachsenden Sprache, wie in Sprachpopularitätsindizes wie TIobe, PyPL und Redmonk gezeigt, erschien R erstmals in den 1990er Jahren und diente als Implementierung der statistischen Programmiersprache S. Roger Peng, ein 18-jähriger R-Programmier-Veteran, der R sowohl an der Universität als auch auf der Coursera-Online-Plattform unterrichtet, sagt: "R ist die beliebteste Sprache im Bereich der Statistik."

"Ich mag [R], weil es sehr einfach ist, von einem Informatik-Niveau aus zu programmieren", sagt Peng. Und R ist im Laufe der Zeit schneller geworden und dient als Klebesprache zum Zusammensetzen verschiedener Datensätze, Tools oder Softwarepakete, sagt Peng.

"R ist der beste Weg, um reproduzierbare, qualitativ hochwertige Analysen zu erstellen. Es bietet die Flexibilität und Leistungsfähigkeit, die ich beim Umgang mit Daten suche", sagt Matt Adams, Datenwissenschaftler an der Code School, die Online-Programmierunterricht anbietet. "Die meisten Programme, die ich in R schreibe, sind eigentlich nur Sammlungen von Skripten, die in Projekten organisiert sind."

Rs starkes Paket-Ökosystem und Chart-Vorteile

Zu den Vorteilen von R gehört das Paket-Ökosystem. "Die Weite des Paket-Ökosystems ist definitiv eine der stärksten Eigenschaften von R - wenn es eine statistische Technik gibt, gibt es wahrscheinlich bereits ein R-Paket dafür", sagt Adams.

"Es sind viele Funktionen integriert, die für Statistiker entwickelt wurden", sagt Peng. R ist erweiterbar und bietet Entwicklern umfangreiche Funktionen, um ihre eigenen Tools und Methoden zur Datenanalyse zu erstellen. "Im Laufe der Zeit haben sich viel mehr Menschen aus anderen Bereichen dafür interessiert", darunter die Biowissenschaften und sogar die Geisteswissenschaften.

"Die Leute können es erweitern, ohne um Erlaubnis bitten zu müssen." In der Tat erinnert sich Peng daran, dass Rs Nutzungsbedingungen vor vielen Jahren eine große Hilfe waren. "Zu der Zeit, als es herauskam, war der größte Vorteil, dass es sich um freie Software handelte. Der Quellcode und alles daran waren verfügbar."

Alle Grafik- und Diagrammfunktionen von R sind laut Adams "unübertroffen". Die Pakete dplyr und ggplot2 für die Datenmanipulation bzw. das Plotten haben "meine Lebensqualität buchstäblich verbessert", sagt er.

Beim maschinellen Lernen hängen die Vorteile von R hauptsächlich mit der starken Bindung von R an die Wissenschaft zusammen, sagt Adams. "Jede neue Forschung auf diesem Gebiet hat wahrscheinlich von Anfang an ein begleitendes R-Paket. Daher bleibt R in dieser Hinsicht auf dem neuesten Stand", sagt er. "Das Caret-Paket bietet auch eine ziemlich raffinierte Möglichkeit, maschinelles Lernen in R über eine relativ einheitliche API durchzuführen." Peng merkt auch an, dass viele beliebte Algorithmen für maschinelles Lernen in R implementiert sind.

R Mängel in der Sicherheit und Speicherverwaltung

Trotz aller Vorteile weist R einige Mängel auf. "Speicherverwaltung, Geschwindigkeit und Effizienz sind wahrscheinlich die größten Herausforderungen für R", sagt Adams. "Es wurden und werden Fortschritte gemacht, um an diesen Fronten Fortschritte zu erzielen. Auch Leute, die aus anderen Sprachen zu R kommen, könnten R als schrullig betrachten."

Das Grundprinzip von R geht von Programmiersprachen aus den 1960er Jahren aus, sagt Peng. "In diesem Sinne ist es eine Art alte Technologie, wie sie ursprünglich entworfen wurde." Das Design der Sprache kann manchmal Probleme bei der Arbeit mit sehr großen Datenmengen verursachen, sagt er. Daten müssen im physischen Speicher gespeichert werden. Da Computer jedoch mehr Speicher haben, ist dies weniger ein Problem geworden, stellt Peng fest.

Funktionen wie Sicherheit wurden nicht in die R-Sprache integriert, sagt Peng. Außerdem kann R nicht in einen Webbrowser eingebettet werden, sagt Peng. "Sie können es nicht für webähnliche oder internetähnliche Apps verwenden." Es sei grundsätzlich unmöglich gewesen, R als Back-End-Server für Berechnungen zu verwenden, da die Sicherheit über das Web unzureichend sei. Das Sicherheitsproblem wurde jedoch durch Entwicklungen wie die Verwendung virtueller Container auf der Cloud-Plattform von Amazon Web Services verringert, sagt Peng.

Lange Zeit habe es in der Sprache nicht viel Interaktivität gegeben, sagt er. Sprachen wie JavaScript müssen diese Lücke noch schließen, sagt Peng. Obwohl eine Analyse in R durchgeführt werden kann, könnte die Präsentation der Ergebnisse in einer anderen Sprache wie JavaScript erfolgen, sagt er.

R ist nicht nur für fortgeschrittene Programmierer

Dennoch sehen Adams und Peng beide R als eine zugängliche Sprache. "Ich komme nicht aus der Informatik und hatte nie das Bestreben, Programmierer zu werden. Kenntnisse über Programmiergrundlagen helfen sicherlich beim Hinzufügen von R zu Ihrer Toolbox, aber ich würde nicht sagen, dass dies erforderlich ist, um loszulegen", sagt Adams.

"Ich würde nicht einmal sagen, dass R für Programmierer ist. Es ist am besten für Leute geeignet, die datenorientierte Probleme haben, die sie zu lösen versuchen, unabhängig von ihrer Programmierfähigkeit", sagt er.