Suchen

Definition Was ist Julia?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Julia ist eine General-Purpose-Programmiersprache mit wissenschaftlicher Ausrichtung. Sie eignet sich für allgemeine Programmieraufgaben, hat ihre Stärken aber bei numerischen Berechnungen und der Verarbeitung großer Datenmengen in hoher Geschwindigkeit.

Firmen zum Thema

(Bild: © aga7ta - stock.adobe.com)

Julia ist ein höhere Programmiersprache, die sich für allgemeine Aufgaben einsetzen lässt. Sie hat eine wissenschaftliche Ausrichtung und spielt ihre Stärken bei numerischen Berechnungen und Datenanalysen mit hoher Geschwindigkeit aus. Typische Anwendungsbereiche sind maschinelles Lernen, Künstliche Intelligenz (KI), die Verarbeitung großer Datenmengen, statistische Auswertungen und Anwendungen im Big-Data-Umfeld. Es handelt sich um eine noch recht junge, moderne Sprache, die in vielen Bereichen anderen Sprachen wie C, MATLAB, R, Java, Ruby, Perl oder Python ähnelt.

Im Vergleich zu vielen anderen Skriptsprachen ist Julia deutlich schneller. Gründe hierfür liegen unter anderem in der Arbeitsweise mit einem Just-in-Time Compiler und in der Parallelisierung von Aufgaben. Julia erzeugt zum Ausführungszeitpunkt einen von Prozessoren effizient zu abzuarbeitenden Binärcode. C-Bibliotheken lassen sich ohne Performanceverlust aufrufen.

Die Entwicklung von Julia begann im Jahr 2009 am Massachusetts Institute of Technology (MIT). Nach dreijähriger Entwicklungszeit veröffentlichten die Mathematiker und Informatiker Jeff Bezanson, Stefan Karpinski, Viral B. Shah und Alan Edelman im Jahr 2012 die erste Version der Programmiersprache. Erklärtes Ziel der Entwickler war es, die Vorteile dynamischer und statischer Programmiersprachen in einer neuen Sprache zu vereinen. Der Compiler von Julia ist in C, C++ und Scheme geschrieben, die Syntax teilweise an MATLAB angelehnt. Im August 2018 erschien die Version 1.0.0. Die aktuelle Version (Stand September 2019) ist Julia 1.2.0. Julia steht unter Open-Source-Lizenz und ist frei erhältlich. Sie ist Bestandteil einiger Linux-Distributionen und auch mit den Betriebssystemen Windows, MacOS oder FreeBSD nutzbar.

Die Geschwindigkeit von Julia

Eines der herausragenden Merkmale von Julia ist die hohe Ausführungsgeschwindigkeit. Programme werden ähnlich schnell ausgeführt wie bei den kompilierten Programmiersprachen C oder Fortran. Julia arbeitet wesentlich schneller als andere wissenschaftliche Sprachen wie R oder MATLAB. Zurückzuführen ist die hohe Geschwindigkeit zu einem großen Teil auf das Prinzip der Just-in-Time-Kompilierung. Der eigentliche Maschinencode wird bei dieser Kompilierungsart zur Laufzeit erstellt. Damit unterscheidet sich die Programmiersprachen von den langsameren Interpretersprachen wie Python, MATLAB, Perl oder Ruby. Dennoch verhält sich Julia ähnlich wie eine Interpretersprache und kann erstellte Skripte direkt, ohne vorheriges Kompilieren starten. Im Gegensatz zu Fortran, C oder C++ muss die Kompilierung nicht im Vorfeld einer Ausführung durchgeführt werden. Zur Just-in-Time-Kompilierung nutzt Julia das LLVM-Framework. Weiter Gründe für die hohe Geschwindigkeit von Julia sind:

  • Parallelisierung von Aufgaben
  • Typsystem mit parametrisierten Typen
  • dynamische Programmierumgebung
  • direkter Aufruf von7656 C- und Fortran-Bibliotheken
  • effiziente Operationen mit Gleitkommazahlen, Zufallszahlen und regulären Ausdrücken
  • effiziente Funktionen der linearen Algebra
  • integrierter Garbage Collector
  • Nutzung von Multimethoden

Die Vorteile der Programmiersprache Julia

Neben der hohen Geschwindigkeit bietet die Programmiersprache Julia weitere Vorteile. Diese sind:

  • einfach zu erlernen (nur wenige grundlegende Sprachelemente, leicht verständliche Syntax)
  • mächtige Sprachkonstrukte
  • integrierte Funktionen der linearen Algebra
  • unter MIT-Lizenz frei nutzbar
  • geeignet für die Betriebssysteme Linux, MacOS und Windows
  • viele Erweiterungspakete verfügbar
  • intelligentes, interaktives Kommandozeilenprogramm REPL
  • interaktive Nutzung ähnlich wie bei Skriptsprachen
  • für allgemeine Programmieraufgaben geeignet
  • Makros und andere Möglichkeiten der Metaprogrammierung
  • direkter Aufruf von C- und Fortran-Bibliotheken möglich
  • integrierte Paketverwaltung
  • Shell-ähnliche Möglichkeiten andere Prozesse zu verwalten

Das interaktive Kommandozeilenprogramm REPL

Bestandteil von Julia ist ein interaktives Kommandozeilenprogramm. Es nennt sich REPL (Read-eval-print loop) und eignet sich dank direkter interaktiver Ausführung von Code beispielsweise, um Programme zu testen oder während der Programmierung zu experimentieren. In REPL integriert sind Hilfefunktionen und eine Chronik ausgeführter Befehle.

Das Paketkonzept von Julia

Julia besitzt einen integrierten Paketmanager. Er erlaubt es, Pakete einfach zu installieren und auszuprobieren. Die Pakete sind einzelne Programmbibliotheken mit eigenem Git-Repository und lassen sich an beliebigen Orten bereitstellen. Sie werden über Julia mit der Paket-Add-Funktion installiert. Die Abhängigkeiten der Pakete sind in Metadaten gespeichert. Pakete können in Julia geschrieben sein, aber auch Code anderer Sprechen wie C oder Python enthalten. Bei der Installation eines Pakets mit Code anderer Sprachen werden die jeweils passenden Compiler auf dem System benötigt. Sie erzeugen zusammen mit Julia den ausführbaren Code des Pakets.

Typische Anwendungsbereiche für Julia

Aufgrund der hohen Performance numerischer Berechnungen und der Parallelisierungsmöglichkeiten eignet sich Julia hervorragend für rechnergestützte Datenanalysen. Typische Anwendungsbereiche der Programmiersprache Julia sind:

  • Machine Learning
  • Künstliche Intelligenz (KI)
  • paralleles Rechnen
  • Big-Data-Analysen
  • statistische Berechnungen
  • Simulationen

(ID:46128457)

Über den Autor