Entwicklungsumgebungen für Julia

Obwohl Julia noch sehr jung ist, gibt es schon mehrere Entwicklungsumgebungen zur Auswahl. Die folgende Übersicht berücksichtigt nicht alle existierenden IDEs, sondern nur jene, die aus meiner Sicht und Erfahrung bei wissenschaftlichen Projekten, zu denen auch Data-Science-Projekte zählen, eine große Rolle spielen.

Stellenmarkt
  1. IT-Systemadministrator (m/w/d)
    GRAMMER System GmbH, Zwickau
  2. Software-Entwickler (m/w/d) ABAP im Umfeld Customer Relationship Management (CRM)
    AOK Systems GmbH, München
Detailsuche

Noch bis vor kurzem war Juno, eine Erweiterung für den Editor ATOM, die wohl beliebteste Entwicklungsumgebung für Julia. Juno hat sehr viele Funktionalitäten und ist sehr mächtig. Doch, wie in einem Video der Juliacon 2020 mitgeteilt wurde, hat sich das Juno-Entwicklerteam entschieden, die Weiterentwicklung von Juno für ATOM zu stoppen und sich auf die Entwicklung der Julia-Erweiterung für Visual Studio Code zu konzentrieren.

Im Video wird als ein Grund dafür die Verlangsamung der Weiterentwicklung des Editors ATOM genannt. Vielleicht gibt es auch andere Gründe. Meiner Erfahrung nach war Juno für ATOM zwar sehr mächtig, aber bei Updates gab es oft Kompatibilitätsprobleme zwischen verschiedenen Paket-Versionen, die mich mehrmals dazu zwangen, die Software zu deinstallieren und neu zu installieren. Dies führte dazu, dass ich Angst hatte, ATOM oder Juno auf eine neue Version zu aktualisieren und bewusst länger ältere, stabile Versionen verwendet habe.

Nichtsdestotrotz kann man Juno mit ATOM weiterhin nutzen, aber es wird keine Weiterentwicklung mehr geben. Die Zukunft gehört der Julia-Erweiterung für Visual Studio Code.

Golem Akademie
  1. Java EE 8 Komplettkurs
    25.-29. Oktober 2021, online
  2. Masterclass: Data Science mit Pandas & Python
    22.-23. November 2021, online
  3. Python kompakt - Einführung für Softwareentwickler
    28.-29. Oktober 2021, online
Weitere IT-Trainings

Visual Studio Code ist von Microsoft und für die Betriebssysteme Windows, Linux und MacOS verfügbar. Es gibt eine riesige Anzahl von Erweiterungen für Visual Studio Code, um es als Entwicklungsumgebung für eine Vielzahl von Programmiersprachen zu verwenden. Informationen und eine Dokumentation über die Julia-Erweiterung für Visual Studio Code findet man auf der Webseite Julia-vscode.org.

An dieser Stelle möchte ich insbesondere auf die Dokumentation zum Starten eines Julia-Programms in Visual Studio Code hinweisen. Manche Julia-spezifischen Funktionalitäten wie die Darstellung von Diagrammen werden nur im REPL-Modus (Real-Eval-Print-Loop Command Line von Julia) unterstützt. Um Julia-Programmcode in Visual Studio Code im REPL-Modus zu starten, muss man die Tasten Steuerung (Ctrl) und Eingabe (Enter) gleichzeitig drücken. Zum Ausführen von Code-Blöcken oder Code-Zellen gibt es die Tastenkombinationen Alt und Enter oder Shift und Enter. Mehr Informationen findet man in einer Dokumentation.

Juno für ATOM und die Julia-Erweiterung für Visual Studio Code bilden Entwicklungsumgebungen, die für die allgemeine Entwicklung von Programmen mit Julia gut geeignet sind. Doch Data Scientists präferieren oft sogenannte Notebooks wie zum Beispiel die IDE Jupyter Notebook, die kurz vorgestellt wurde. Fans von Jupyter Notebook können sich freuen: Man kann statt Python auch Julia-Programme in Jupyter Notebook ausführen. Wie man das macht, erfährt man beim Projekt JuliaLang/IJulia.jl in Github und bei einer Schritt-für-Schritt Anleitung bei Data to Fish.

Jupyter Notebook ist keine native Entwicklungsumgebung für Julia, sondern ist für unterschiedliche Programmiersprachen gedacht und wird hauptsächlich von Python-Entwicklern verwendet. Doch es gibt auch Notebook-Entwicklungsumgebungen speziell für Julia.

Pluto ist eine Notebook-Entwicklungsumgebung, die speziell für Julia und mit Julia entwickelt wurde und wie Jupyter Notebook im Browser läuft. Pluto wurde hauptsächlich mit Julia programmiert. Das Frontend von Pluto benutzt Javascript und CSS.

Datenanalyse mit Julia: Einstieg in die Datenanalyse mit der Programmiersprache Julia

Wichtige Besonderheiten von Pluto sind:

1. Pluto ist reaktiv, das heißt, sobald man in einer Code-Zelle den Wert einer Variablen verändert, prüft Pluto alle Abhängigkeiten im Programmcode und führt alle abhängigen Code-Zellen automatisch aus.

2. Pluto ignoriert die Reihenfolge der Code-Zellen. Man kann eine Funktion definieren, die zum Beispiel eine Berechnung abhängig von der Variablen x durchführt und ein Diagramm erstellt. Der Variable x kann man auch danach, das heißt in einer darauffolgenden Code-Zelle, einen Wert geben. Pluto erkennt die Abhängigkeiten und führt im Hintergrund das Programm in sinnvoller Reihenfolge aus. Das bedeutet aber auch, dass man standardmäßig nur an einer Stelle im Programm einer globalen Variablen einen Wert zuweisen darf, sonst kommt es zu einer Fehlermeldung.

Die Idee, so zu programmieren, kommt aus dem Alltag von Mathematikern und Naturwissenschaftlern und vermutlich erinnern sich manche von uns an ihre Schul- und Studienzeit: Oft definiert man erst eine Funktion wie y = x² - 2x + 4, um eine Aufgabe zu lösen und erst danach setzt man Werte für die Variablen ein und berechnet das Ergebnis.

3. Pluto-Notebooks werden als gewöhnliche Julia-Dateien gespeichert und können in anderen IDEs wie zum Beispiel Visual Studio Code geöffnet und ausgeführt werden. Im Gegensatz zu Jupyter Notebook gibt es bei Pluto nur Code-Zellen und keine Dokumentationszellen (Markdown Cells). Dokumentationen im Wiki-Stil schreibt man bei Pluto indem man in der Julia-Code-Zelle die Markdown-Bibliothek mittels "md" für Julia verwendet.

4. Standardgemäß akzeptiert eine Code-Zelle nur einen Befehl. Wenn man mehrere Befehle in einer Code-Zelle verwenden möchte, muss man in der Code-Zelle einen Block beginnend mit "begin" und endend mit "end" definieren. Im Block darf man dann mehrere Befehle verwenden.

5. Während man programmiert und Befehle eingibt, bekommt man in Echtzeit eine Dokumentation zu den Befehlen, die man verwendet (Live docs).

Es gibt Data Scientists, die Pluto toll finden, aber dessen reaktives Verhalten nicht mögen, weil dies unter Umständen viel Rechenleistung erfordert und man in manchen Fällen den Wert einer Variablen verändern will, ohne alle abhängigen Programmteile sofort ausführen zu wollen. Hier bietet sich Neptune als Alternative an. Neptune ist ein Fork von Pluto, der viele Funktionalitäten von Pluto hat, aber nicht reaktiv ist und bei dem globale Variablen in mehr als einer Code-Zelle Werte zugewiesen bekommen dürfen. Ein weiterer Unterschied zu Pluto ist, dass Neptune standardmäßig mehrere Befehle in einer Code-Zelle akzeptiert. Ein Begin-end-Block ist nicht erforderlich.

MerkmalJupyter NotebookNeptune NotebookPluto Notebook
DateiformatJSONJulia QuellcodedateiJulia Quellcodedatei
Mehrere Befehle in einer Code-Zeile?JaJaMit begin-end-Block
Programmiert inHauptsächlich PythonHauptsächlich JuliaHauptsächlich Julia
Programmiert fürHauptsächlich Python, R und Julia. Außerdem für viele weitere Programmiersprachen über Drittanbieter.JuliaJulia
ReaktivNeinNeinJa
Realtime-DocumentationNeinJa (Live docs)Ja (Live docs)
Wertzuweisung an globale VariablenMehrmals erlaubtMehrmals erlaubtEinmalig
ZellenartenCode, Markdown, RawCode (Markdown via md-Command)Code (Markdown via md-Command)
Linkhttps://github.com/JuliaLang/IJulia.jlhttps://github.com/compleathorseplayer/Neptune.jlhttps://github.com/fonsp/Pluto.jl
Vergleich von Notebook-IDEs

Stand 12. September 2021 ist die aktuelle, stabile Version 1.6.2. Julia steht kostenlos als Open-Source-Programmiersprache für FreeBSD, Linux, MacOS und Windows zum Download bereit.

Fazit

Obwohl Julia eine noch sehr junge Programmiersprache ist, existieren schon viele Entwicklungsumgebungen. Python-Programmierer müssen auf die gewohnten IDEs Visual Studio Code und Jupyter Notebook nicht verzichten - diese gibt es auch für Julia.

Alternativ gibt es noch die Notebook-IDEs Neptune und Pluto, die beide in und für Julia programmiert wurden und innovative Besonderheiten haben. Beide verwenden Julia-Quellcodedateien als Dateiformat und haben eine Echtzeitdokumentation als Unterstützung für den Programmierer. Zudem ist Pluto reaktiv, d.h. es reagiert auf Änderungen von Wertzuweisungen an Variablen in einer Code-Zelle, erkennt Abhängigkeiten und führt automatisch alle abhängigen Code-Zellen aus.

Wegen des Just-Ahead-of-Time-Compilers (JAOT) führt Julia in vielen Fällen Programme sehr viel schneller als Python aus. Benchmarks zeigen, dass Julia bezüglich der Ausführungsgeschwindigkeit in etwa auf dem Niveau von der Programmiersprache C++ liegt und somit in einer ganz anderen Performance-Klasse als Python spielt. Jedoch dauert das Starten eines Julia-Programms oft viel länger als eines Python-Programms, weil die verwendeten Komponenten vor der Ausführung kompiliert werden müssen.

Somit eignet sich Julia für Ad-hoc-Reporting und Ad-hoc-Datenanalyse, die Data Scientists insbesondere in den ersten Iterationen eines Projekts machen, nicht so gut wie Python. Julia ist dann vorteilhaft, wenn die Ausführungsgeschwindigkeit eine große Rolle spielt. Beispiele dafür sind Simulationen, die Berechnungen in vielen Schleifen im Programmcode enthalten, oder wenn der Programmierer mit Julia einen Deep- bzw. Machine-Learning-Algorithmus selbst entwickelt, statt externe Komponenten wie Tensorflow zu verwenden.

Auch wenn Julia bei der Zahl der Pakete noch lange nicht mit Python mithalten kann: Sie hat das Potenzial zu einer der wichtigsten Programmiersprachen in den Bereichen Naturwissenschaften und Data Science zu werden.

Miroslav Stimac ist Informatiker, promovierter Wirtschaftswissenschaftler und aktuell Teilzeitstudent der Astronomie. Er arbeitet seit 2004 als Entwickler mit branchenübergreifender Projekterfahrung, hauptsächlich in Business Intelligence, Data Science und Statistik. Seine fachlichen Interessenschwerpunkte sind Astronomie, Japanologie, Konsumforschung und Robotik.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Pakete und IDEs
  1.  
  2. 1
  3. 2
  4. 3
  5. 4


fabiwanne 18. Okt 2021 / Themenstart

Julia gibt es noch gar nicht in der Version 3. Die 30 Jahre Entwicklungszeit von denen...

ronda-melmag 15. Okt 2021 / Themenstart

Sagen wir mal so: Das Tool was ich nutzen möchte gibt mir eine Sprache vor. Ich...

franzropen 14. Okt 2021 / Themenstart

Wieso? Julia ist auch einsteigerfreundlicher als C oder Java und wenn jetzt auch...

fabiwanne 14. Okt 2021 / Themenstart

Soll noch einer über die Singlecore-Leistung von meinem FX-8370 beschweren hängt er hier...

franzropen 14. Okt 2021 / Themenstart

Für die Zielgruppe ist auch Excel eine IDE. Es geht darum möglichst schnell und einfach...

Kommentieren



Aktuell auf der Startseite von Golem.de
Apple
Macbook Pro bekommt Notch und Magsafe

Apple hat das Macbook Pro in neuem Gehäuse, mit neuem SoC, einem eigenen Magsafe-Ladeport und Mini-LED-Display mit Kerbe vorgestellt.

Apple: Macbook Pro bekommt Notch und Magsafe
Artikel
  1. Displayreinigung: Apple bringt 25-Euro-Poliertuch mit Kompatibilitätsliste
    Displayreinigung
    Apple bringt 25-Euro-Poliertuch mit Kompatibilitätsliste

    Fast unbemerkt hat Apple den eigentlichen Star des Events von Mitte Oktober 2021 in seinen Onlineshop aufgenommen: ein Poliertuch.

  2. In-Ears: Apple stellt Airpods 3 vor
    In-Ears
    Apple stellt Airpods 3 vor

    Apple hat auf seinem Event die Airpods 3 vorgestellt, die den Airpods 3 Pro sehr ähnlich sehen - allerdings ohne Geräuschunterdrückung.

  3. 5 Euro: Apple bietet günstigeres Music-Abo an
    5 Euro
    Apple bietet günstigeres Music-Abo an

    Apple hat ein preiswerteres Apple-Music-Abo angekündigt, das aber nur mit dem Sprachassistenten Siri gesteuert werden kann.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Cyber Week: Bis zu 360€ auf Gaming-Monitore & bis zu 22% auf Be Quiet • LG-TVs & Monitore zu Bestpreisen (u. a. Ultragear 34" Curved FHD 144Hz 359€) • Bosch-Werkzeug günstiger • Dell-Monitore günstiger • Horror-Filme reduziert • MwSt-Aktion bei MM: Rabatte auf viele Produkte [Werbung]
    •  /