Abo
  • IT-Karriere:

Julia: Eine Programmiersprache nicht nur für die Wissenschaft

Die noch relativ junge Programmiersprache Julia erzeugt flotte Binärprogramme und kommt vor allem bei der Verarbeitung von großen Datenmengen zum Einsatz. Sie glänzt mit einer einfachen Syntax und lässt sich auch außerhalb der Wissenschaft sehr gut einsetzen.

Artikel von Tim Schürmann veröffentlicht am
Mit Julia lassen sich vermutlich auch Juliamengen generieren - die Namensgleichheit ist Zufall. (Symbolbild)
Mit Julia lassen sich vermutlich auch Juliamengen generieren - die Namensgleichheit ist Zufall. (Symbolbild) (Bild: Martin Wolf/Golem.de)

Die Programmiersprache Julia wird seit sieben Jahren Open Source entwickelt. Sie eignet sich durch ihre speziellen Eigenschaften hervorragend für die Verarbeitung großer Datenmengen und für wissenschaftliche Anwendungen. Ähnlich wie C, C++ und Python ist Julia aber auch als General Purpose Language ausgelegt. Mit ihr lassen sich also Anwendungen für fast alle Zwecke schreiben, so dass die Sprache auch außerhalb der Nische Wissenschaft gut aufgehoben ist.

Inhalt:
  1. Julia: Eine Programmiersprache nicht nur für die Wissenschaft
  2. Funktionen und gute Argumente
  3. Multiple Dispatch
  4. Parallelverarbeitung

In Julia geschriebene Programme laufen ähnlich schnell wie übersetzte C-Programme. Im Hintergrund nutzt Julia dafür das LLVM-Framework, das den eigentlichen nativen Programmcode erst zur Laufzeit erstellt (Just-in-Time, JIT). Die Referenzimplementierung aller Werkzeuge und Bibliotheken steht unter der freizügigen MIT-Lizenz.

Leicht verständliche Syntax

Die Syntax erinnert leicht an eine Mischung aus Lisp und Python. Julia unterstützt neben einer funktionalen auch eine rudimentäre objektorientierte Programmierung. Dabei setzt die Sprache stark auf das sogenannte Multiple-Dispatch-Konzept: Entwickler dürfen mehrere Funktionen mit dem gleichen Namen, aber unterschiedlichen Argumenten definieren. Julia wählt dann bei einem Aufruf automatisch die am besten passende Funktion.

Die Standardbibliothek umfasst unter anderem Funktionen zur Parallelverarbeitung, Netzwerkkommunikation und Profiling. Abschließend unterstützt Julia ähnlich wie Lisp die Metaprogrammierung, über die sich der Quellcode vor der Ausführung selbst modifizieren kann.

Stellenmarkt
  1. Bundeskriminalamt, Wiesbaden
  2. INSYS TEST SOLUTIONS GmbH, Regensburg

Analog zu vielen Skriptsprachen besitzt auch Julia einen interaktiven Interpreter, der den eingegebenen Quellcode direkt ausführt. Der Interpreter lässt sich mit Code aus Dateien und über die Standardeingabe füttern.

Einfache mathematische Notation

Julia bietet eine dynamische Typisierung, dank derer eine Variable beliebige Inhalte aufnehmen kann:

  1. x = 5
  2. x = Hallo Welt!

Die Variablennamen dürfen aus Unicode-Zeichen bestehen. Julia macht sich die Unicode-Unterstützung ebenfalls zunutze. So kann man einfach √4 schreiben, um die Wurzel aus 4 zu ziehen. Julia ermittelt den Typ einer Variablen automatisch im Hintergrund. Bei Bedarf kann man ihn aber auch mit dem Operator :: an Ausdrücken und Variablen explizit vorgeben.

Im Fall von x::UInt64 interpretiert Julia die Variable x als 64 Bit große, vorzeichenlose Integerzahl. Hängt der Operator an einem Ausdruck, prüft Julia, ob der zurückgelieferte Wert dem Typ entspricht. Im folgenden Beispiel muss das Ergebnis von 2+3 eine Integerzahl sein, andernfalls erzeugt Julia einen Fehler:

  1. y = (2+3)::Int

Einer Variablen darf man direkt eine Zahl voranstellen, wie etwa im Ausdruck 2x+3. Julia führt dann automatisch eine Multiplikation mit dem Variableninhalt durch. Des Weiteren lassen sich Vergleichsoperatoren wie < oder > verketten:

  1. 1 < 2 < 3 == 3 > 2 >= 1

Dieser Ausdruck ist in den Augen von Julia true. Dank dieser Konventionen lassen sich recht elegant mathematische Formeln notieren.

Analog zu UInt64 und Int kennt Julia viele weitere Integer- und Gleitkommatypen, komplexe und rationale Zahlen und natürlich boolesche Werte. Zudem bindet Julia die GNU Multiple Precision Arithmetic Library (GMP) und die GNU MPFR Library ein, welche über die Typen BigInt und BigFloat eine effiziente Langzahlarithmetik ermöglichen.

Strings lassen sich per *-Operator schnell verketten. Umgekehrt kann man über entsprechende Indexangaben ein Zeichen oder einen Teil ausschneiden. Im folgenden Beispiel würde y den Text lo W enthalten:

  1. x = Hallo * Welt!
  2. y = x[4:7]

Dank der eingebundenen PCRE-Bibliothek wertet Julia sogar Perl-kompatible reguläre Ausdrücke aus. Wie in Perl kann man zudem Variableninhalte in Strings einsetzen:

  1. name = Tim
  2. x = Hallo $name !

Funktionen und gute Argumente 
  1. 1
  2. 2
  3. 3
  4. 4
  5.  


Anzeige
Spiele-Angebote
  1. 4,19€
  2. 3,74€
  3. 2,19€

Bruto 27. Jun 2019 / Themenstart

Der Gratis-Kurs bei Coursera von Andrew Ng ist perfekt für Einsteiger. Es gibt mehrere...

Maxabcabcabcqwe 26. Jun 2019 / Themenstart

Meiner Meinung nach, ist es einfacher sich die Befehle einer Sprache durch das Aufrufen...

Das... 26. Jun 2019 / Themenstart

Ah, das ist schön zu hören! Ich dachte Typisierung ist ein vernachlässigtes Anhängsel wie...

burzum 26. Jun 2019 / Themenstart

Doch. Du sagst es ja selbst, das Konzept, die Herangehensweise sind das Entscheidende...

Kommentieren


Folgen Sie uns
       


ANC-Kopfhörer im Lautstärkevergleich

Wir haben Microsofts Surface Headphones und die Jabra Elite 85h bei der ANC-Leistung verglichen. Für einen besseren Vergleich zeigen wir auch die besonders leistungsfähigen ANC-Kopfhörer von Sony und Bose, die WH-1000XM3 und die Quiet Comfort 35 II.

ANC-Kopfhörer im Lautstärkevergleich Video aufrufen
Erasure Coding: Das Ende von Raid kommt durch Mathematik
Erasure Coding
Das Ende von Raid kommt durch Mathematik

In vielen Anwendungsszenarien sind Raid-Systeme mittlerweile nicht mehr die optimale Lösung. Zu langsam und starr sind sie. Abhilfe schaffen können mathematische Verfahren wie Erasure Coding. Noch existieren für beide Techniken Anwendungsgebiete. Am Ende wird Raid aber wohl verschwinden.
Eine Analyse von Oliver Nickel

  1. Agentur für Cybersicherheit Cyberwaffen-Entwicklung zieht in den Osten Deutschlands
  2. Yahoo Richterin lässt Vergleich zu Datenleck platzen

LEDs: Schlimmes Flimmern
LEDs
Schlimmes Flimmern

LED-Licht zu Hause oder im Auto leuchtet nur selten völlig konstant. Je nach Frequenz und Intensität kann das Flimmern der Leuchtmittel problematisch sein, für manche Menschen sogar gesundheitsschädlich.
Von Wolfgang Messer

  1. Wissenschaft Schadet LED-Licht unseren Augen?
  2. Straßenbeleuchtung Detroit kämpft mit LED-Ausfällen und der Hersteller schweigt
  3. ULED Ubiquitis Netzwerkleuchten bieten Wechselstromversorgung

Kickstarter: Scheitern in aller Öffentlichkeit
Kickstarter
Scheitern in aller Öffentlichkeit

Kickstarter ermöglicht es kleinen Indie-Teams, die Entwicklung ihres Spiels zu finanzieren. Doch Geld allein ist nicht genug, um alle Probleme der Spieleentwicklung zu lösen. Und was, wenn das Geld ausgeht?
Ein Bericht von Daniel Ziegener

  1. Killerwhale Games Verdacht auf Betrug beim Kickstarter-Erfolgsspiel Raw
  2. The Farm 51 Chernobylite braucht Geld für akkurates Atomkraftwerk
  3. E-Pad Neues Android-Tablet mit E-Paper-Display und Stift

    •  /