Marktfolger haben es in der Regel schwer, sich gegen die etablierten Marktführer zu behaupten und ihre eigene Erfolgsgeschichte zu schreiben. Sie haben aber auch einen entscheidenden Vorteil: Sie können aus den Stärken und Schwächen der anderen lernen. Genau diesen Aspekt haben sich die Entwickler der Open-Source-Sprache Julia zunutze gemacht und sind angetreten mit der Vision, ein „Best-of“ bestehender Programmiersprachen zu entwickeln.

„Why We Created Julia“

2012 haben die vier Informatiker und Mathematiker Jeff Bezanson, Stefan Karpinski, Viral B. Shah und Alan Edelman nach dreijähriger Entwicklungszeit die erste Open-Source-Version von Julia veröffentlicht. Mit dabei: Ein Manifest, in dem sie ihre Hintergründe und vor allem ihre ambitionierten Ziele offenlegen. Ihr Ansatz war es, die gesammelten Erfahrungen in der Arbeit mit unterschiedlichen Programmiersprachen in eine neue Sprache umzuwandeln, welche die besten Elemente von C, Matlab, Java, Ruby, Perl, Python und R – also die Vorteile dynamischer und statischer Sprachen – miteinander vereint.

Fokus auf Performance und Lesbarkeit

Der Fokus der Entwickler lag auf einer hochperformanten Sprache, die den Anwendern möglichst wenig abverlangt. Also die Geschwindigkeit von C/C++ in Kombination mit der Usability von Sprachen wie Python. Ermöglicht wird das auch durch die heutigen Compiler wie LLVM, auf denen die Sprache aufbaut und die den Julia Quellcode vor der Ausführung kompilieren. Auch hier hat Julia als Marktfolger den Vorteil den Zeitgeist deutlich leichter aufgreifen zu können. Virtualisierung und Lastverteilung: Das Big-Data-Zeitalter und die vielen auf Performance angewiesenen Anwendungsfälle, wie Machine Learning und Simulationen, sind das Einsatzgebiet für Julia. Die klare und modern anmutende Syntax erleichtert den Einstieg für neue User und erhöht die Lesbarkeit. Gerade im Data-Science-Kontext, in dem Transparenz und Nachvollziehbarkeit entscheidend für die Akzeptanz und weitere Verwendung der Analysen sind, ist eine gute Lesbarkeit wertvoll.

Hierbei spielt auch eine Rolle, dass sowohl die Standardbibliothek als auch geschwindigkeitsrelevante Zusatzbibliotheken direkt in Julia geschrieben werden können und so Sprachbrücken zu kompilierten Sprachen entfallen.

Folgendes Beispiel zeigt wie Julia von Anfang an auf verteiltes Rechnen auf unterschiedlichen Prozessoren oder Clustern setzt:

Typen, Funktionen und Makros: Der technische Kern von Julia

Der technische Kern der Sprache ist das Typ-System von Julia. Diese Sprachkonstrukte, die viele Anwender sicherlich an Structs in C erinnern, sind hierarchisch aufgebaut und „dynamisch typisiert“. Insgesamt gibt es in Julia über 500 vordefinierte Typen. Diese spezialisierten Typen sind auch ein wesentlicher Schlüssel für die Performance von Julia.

Funktionen werden über die Argumente ausgewählt (multiple dispatch), sodass der Sprachumfang erweitert werden kann, indem zum Beispiel eine Addition von definierten Typen implementiert werden kann.

Auch das Set an Möglichkeiten im Bereich der Metaprogrammierung ist groß. Hierzu gehören zum einen Makros, mit denen sich Ausdrücke in Julia syntaktisch umformen lassen und „Generated Functions“. Besonderes Merkmal letzterer ist die Tatsache, dass man beim ersten Aufruf statt der Argumente nur die Typen erhält und man daraufhin einen Ausdruck zurückgeben kann, der zum Funktionskörper wird.

Die Entwicklung ist positiv

Anfangs auf den wissenschaftlichen Bereich fokussiert, eignet sich Julia längst auch für allgemeine Programmieraufgaben. Wie auch bei R, speist sich der Funktionsumfang von Julia aus den zusätzlich verfügbaren Paketen. Knapp 2.000 von ihnen sind der Beleg für die mittlerweile erreichte Vielschichtigkeit der Sprache, aber auch für die immer weiter wachsende Community, die sich für die Erstellung und Weiterentwicklung der Pakete verantwortlich zeichnet. Der eingesetzte Paketmanager auf Basis von Git macht es Entwicklern einfach, bestehende Pakete zu testen und selber die Entwicklung voranzutreiben.

Julia geht in den Produktiveinsatz

Die positive Entwicklung von Julia macht natürlich auch vor Unternehmen nicht halt. Amazon, Google, Microsoft und Co. setzen bereits in Teilen auf Julia. Auch im Finanzsektor erfreut sich Julia seit einigen Jahren wachsender Beliebtheit. Trotz aktuell noch bestehender Kinderkrankheiten der unlängst erschienenen Julia-Version 1.0, wird diese die Verbreitung der Sprache weiter vorantreiben. Im aktuellen TIOBE-Index (September 2018) für Programmiersprachen hat Julia einen großen Beliebtheitssprung von Platz 50 auf 39 gemacht. Derzeit steht Julia bei über zwei Millionen Downloads – die jährliche Wachstumsrate von über 100% deutet an, dass die Relevanz von Julia weiter zunimmt.

Informationen für den Einstieg in Julia

Wie beginne ich die Arbeit mit Julia? Gibt es gute Entwicklungsumgebungen? Wo finde ich Neuigkeiten zur Sprache? Wir haben die wichtigsten Informationen für Julia-Einsteiger zusammengetragen:

Download der aktuellsten Julia-Version: https://julialang.org/downloads/

Entwicklungsumgebung (IDE): Explizit für die Nutzung von Julia entwickelt Juno oder Jupyter

Aktuelle News zu Julia: Julia Bloggers, auf Twitter @JuliaLanguage

Zentrale Veranstaltung für Julia-Anwender: JuliaCon

Anbieter zusätzlicher Features und Angebote rund um Julia: Julia Computing

Als Data Science Spezialisten sind wir von eoda Ihr Ansprechpartner rund um den produktiven Einsatz von Julia im Unternehmen.  Sprechen Sie uns an

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*
*