Welche Entwicklungsumgebung (IDE) für Machine Learning?

Für Machine-Learning-Projekte stehen neben unterschiedlichen Programmiersprachen, einer Vielzahl von Bibliotheken auch verschiedene Entwicklungsumgebungen zur Verfügung. Welche das sind und welche Vorteile sie bieten, sehen wir uns hier einmal genauer an.

Die Wahl der Entwicklungsumgebung – englisch Integrated Development Environment (IDE) – spielt für das Vorankommen mit einem Projekt eine entscheidende Rolle. Mag die verwendete Programmiersprache noch so toll sein, mag das vorliegende Projekt noch so spannend sein, das Ganze steht und fällt mit der verwendeten Entwicklungsumgebung.

Wir schauen uns hier Entwicklungsumgebungen für die für Machine Learning am häufigsten verwendeten Sprachen an. Das sind im Herbst 2018 Julia, Python, R und Scala.

Julia

Juno

Sie sie die flexible IDE für das 21. Jahrhundert behauptet zumindest der Hersteller über Juno für Julia. Insbesondere das schnelle Ausprobieren steht hierbei im Fokus. So soll Juno wie ein Notizbuch wirken, aber dabei mit der Power einer vollständigen Entwicklungsumgebung aufwarten. Juno hat dabei Atom von Github als Basis. Dabei bietet Juno einen Debugger und mehrfache Cursor sowie eine ordentliche Suche.

Visual Studio Code mit Julia extension

Für Microsofts oft gelobten Editor Visual Studio Code gibt es eine kostenlose Julia-Erweiterung. Dank dieser Extension ziehen Code-Schnipsel, Syntax-Hervorhebung, Auto-Vervollständigung, eine integrierte Hilfe, ein Linter und noch einige weitere hilfreiche Werkzeuge für die Programmierung in Julia in Visual Studio Code ein.

Python

PyCharm

Die Jungs und Mädchen von JetBrains haben sich bereits einen Namen als Hersteller von IDEs gemacht und auch ihre Python-IDE namens PyCharm wird ihrem Ruf gerecht. PyCharm lässt sich sowohl unter macOS als auch Windows einsetzen und bietet eine Fülle von Annehmlichkeiten, die das Coden vereinfachen: Code-Vervollständigung, Debugger und Testumgebung. Die intelligente Suche bietet diverse Möglichkeiten zwischen den Suchergebnissen und den zugehörigen Dateien zu springen. Auch ein Terminal ist eingebaut mit Unterstützung für alle gängigen Versionskontrollsysteme: Git, SVN und Mercurial

Spyder

In erster Linie an Wissenschaftlerinnen und Wissenschaftler richtet sich die IDE namens Spyder. Auch hier stehen ein Debugger, Auto-Vervollständigung und andere kleine Helferlein wie beispielsweise ein Profiler zur Verfügung, aber seine wahren Stärken spielt Spyder aus, wenn es um Analysen und Visualisierung geht. Die bereits gebotene Funktionalität kann dank eines Plug-In-Systems vergleichsweise einfach erweitert werden.

R

RStudio

Mit RStudio steht die vielseitigste und bestausgestattete Entwicklungsumgebung für die Programmierung in R zur Verfügung. Neben der integrierten Unterstützung für die Versionskontrollsysteme Git und SVN bietet RStudio viele weitere Vorteile: Syntax-Hervorhebung, Code-Vervollständigung, intelligentes Einrücken von Code-Zeilen und eine enge Verzahnung zwischen der Dokumentation und dem geschriebenen Code. Die eingebaute Datenanzeige erleichtert das Leben ungemein, wenn es um die schrittweise Ausführung von Code im Debugger geht. Dabei kann man in Echtzeit bei der Datenmanipulation zusehen.

StatET Plugin für Eclipse

Für die beliebte IDE Eclipse steht mit Erweiterung namens StatET eine kostenlose Möglichkeit zur Verfügung, Code in R zu schreiben. Dazu gesellen sich auch vollständige R-Console, Debugger, Paket-Manager und eine ausführliche Hilfe. Etwas Sorge bereitet hier nur, dass das Plugin das letzte Mal im April 2017 aktualisiert wurde. Zum Zeitpunkt des Erscheinens dieses Beitrags, Oktober 2018, ist das über ein Jahr her. Dabei ist die Funktionsvielfalt dieser Erweiterung durchaus bemerkenswert.

Scala

Scala IDE für Eclipse

Auch für Scala gibt es eine Erweiterung für Eclipse. Mit diesem Ansatz von Scala IDE für Eclipse bekommst du die höchste Flexibilität, wenn es um die Interoperabilität zwischen Java und Scala geht. Wie sich das gehört, gibt es auch hier Code-Vervollständigung und -Hervorhebung, einen Debugger und auch einen Echtzeit-Check der Eingabe, der gleichzeitig für das intelligente Einrücken des geschriebenen Codes sorgt.

Scala Plugin für IntelliJ IDEA

Von JetBrains kommt auch die IDE namens IntelliJ IDEA. Für diese gibt es eine Scala-Erweiterung, die die Entwicklungsumgebung für Scala, SBT, Scala.js, Hocon und das Play Framework erweitert. Auch hier gibt es das übliche Feature-Set von Auto-Vervollständigung und Code-Hervorhebung sowie eine automatische Formatierung der Eingaben. Hinzu kommen Debugger und eine ausführliche Suche. Das Besondere am Scala Plugin für IntelliJ IDEA ist die Unterstützung für Test-Frameworks wie beispielsweise ScalaTest, Specs2 und uTest.