From bbe43b06e7db926d4dd9eb9b6b994d5df17bdf31 Mon Sep 17 00:00:00 2001 From: romanamo Date: Fri, 12 Jul 2024 22:35:45 +0200 Subject: [PATCH] fixed typos, moved code snippets --- code/{escape => }/EscapeJava.java | 0 code/{escape => }/escape_julia.jl | 0 code/{escape => }/escape_python.py | 0 code/{escape => }/escape_r.r | 0 code/{escape => }/hilbert.jl | 0 code/{escape => }/koch_curve.jl | 0 code/{escape => }/koch_snowflake.jl | 0 code/{escape => }/plotting.jl | 0 literatur.bib | 4 +- seminararbeit.pdf | Bin 485859 -> 483053 bytes seminararbeit.tex | 163 ++++++++++++++-------------- 11 files changed, 84 insertions(+), 83 deletions(-) rename code/{escape => }/EscapeJava.java (100%) rename code/{escape => }/escape_julia.jl (100%) rename code/{escape => }/escape_python.py (100%) rename code/{escape => }/escape_r.r (100%) rename code/{escape => }/hilbert.jl (100%) rename code/{escape => }/koch_curve.jl (100%) rename code/{escape => }/koch_snowflake.jl (100%) rename code/{escape => }/plotting.jl (100%) diff --git a/code/escape/EscapeJava.java b/code/EscapeJava.java similarity index 100% rename from code/escape/EscapeJava.java rename to code/EscapeJava.java diff --git a/code/escape/escape_julia.jl b/code/escape_julia.jl similarity index 100% rename from code/escape/escape_julia.jl rename to code/escape_julia.jl diff --git a/code/escape/escape_python.py b/code/escape_python.py similarity index 100% rename from code/escape/escape_python.py rename to code/escape_python.py diff --git a/code/escape/escape_r.r b/code/escape_r.r similarity index 100% rename from code/escape/escape_r.r rename to code/escape_r.r diff --git a/code/escape/hilbert.jl b/code/hilbert.jl similarity index 100% rename from code/escape/hilbert.jl rename to code/hilbert.jl diff --git a/code/escape/koch_curve.jl b/code/koch_curve.jl similarity index 100% rename from code/escape/koch_curve.jl rename to code/koch_curve.jl diff --git a/code/escape/koch_snowflake.jl b/code/koch_snowflake.jl similarity index 100% rename from code/escape/koch_snowflake.jl rename to code/koch_snowflake.jl diff --git a/code/escape/plotting.jl b/code/plotting.jl similarity index 100% rename from code/escape/plotting.jl rename to code/plotting.jl diff --git a/literatur.bib b/literatur.bib index a933e02..7f8aebb 100755 --- a/literatur.bib +++ b/literatur.bib @@ -85,7 +85,7 @@ title = {{{PYPL}} ({{Popularity}} of {{Programming Language}}) {{Index}}}, author = {Carbonelle, Pierre}, year = {2023}, - urldate = {2024-06-12}, + urldate = {2024-07-12}, annotation = {Programmers: \_:n92} } @@ -100,7 +100,7 @@ publisher = {arXiv}, urldate = {2024-06-10}, abstract = {There are plenty of excellent plotting libraries. Each excels at a different use case: one is good for printed 2D publication figures, the other at interactive 3D graphics, a third has excellent LATEX integration or is good for creating dashboards on the web.}, - archiveprefix = {arxiv}, + archiveprefix = {arXiv}, langid = {english}, keywords = {Computer Science - Graphics,I.3.3}, note = {Comment: 22 pages, 6 figures, 6 code listings} diff --git a/seminararbeit.pdf b/seminararbeit.pdf index afe36ac1648c09a93292f6c889fb004704345492..38a023d1437ae03cd55708b7835305bf7f1f652d 100644 GIT binary patch delta 97994 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

|8KyQSjfzPYmF>p+kEAx>%Us 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 F{x4FALn;6O diff --git a/seminararbeit.tex b/seminararbeit.tex index d9e72ed..94524db 100755 --- a/seminararbeit.tex +++ b/seminararbeit.tex @@ -37,9 +37,9 @@ % Kurze Zusammenfassung des Dokuments \begin{abstract} -In dieser Arbeit wird untersucht ob sich die Programmiersprache Julia zu Erstellung von Visualisierungen innerhalb der fraktalen Geometrie eignet. Betrachtet werden die Kriterien Performanz, Nachhaltigkeit, Parallelisierbarkeit, Verfügbarkeit von Softwarepaketen und Entwicklungsumgebungen. -Das Ergebnis zeigt, dass Julia seinem Ruf gerecht wird. Die Zusammenführung als Skriptsprache mit hoher Performanz eignet sich für den ausgewählten Anwendungsbereich. Der Einsatz von Julia in einem ausgeweiteten Rahmen, lässt sich parallelisieren und somit nachhaltig gestalten. Das Julia-Ecosystem bietet die ausreichenden Mittel um Fraktale Kurven bequem darzustellen. Zusätzliche Softwarepakete ermöglichen die Darstellung in 2- und 3-dimensionaler Form. -Die eingeschränkte Auswahl an Entwicklungsumgebungen und die teilweise hohe Kompilierzeit stellen ein Hindernis in der Erstellung eigener komplexerer Visualisierungen dar. +Diese Arbeit untersucht, ob sich die Programmiersprache Julia zu Erstellung von Visualisierungen innerhalb der Fraktalen Geometrie eignet. Betrachtet werden die Kriterien Performanz, Nachhaltigkeit, Parallelisierbarkeit, Verfügbarkeit von Softwarepaketen und Entwicklungsumgebungen. +Das Ergebnis zeigt, dass Julia seinem Ruf als performante Skriptsprache gerecht wird. Der Einsatz von Julia in einem ausgeweiteten Rahmen lässt sich parallelisieren und somit nachhaltig gestalten. Das Julia-Ecosystem bietet ausreichende Mittel um Fraktale Kurven auf einfache Weise darzustellen. Zusätzliche Softwarepakete ermöglichen die Visualisierung in 2- oder 3-dimensionaler Form. +Die eingeschränkte Auswahl an Entwicklungsumgebungen und die teilweise hohe Kompilierzeit stellen ein Hindernis in der Erstellung eigener komplexer Visualisierungen dar. \end{abstract} % Inhaltsverzeichnis erzeugen @@ -50,23 +50,23 @@ Die eingeschränkte Auswahl an Entwicklungsumgebungen und die teilweise hohe Kom % ------------------------------------------------------- \section{Einleitung} -Im Jahr 1891 beschäftigte sich der Mathematiker David Hilbert mit einer besonderen Kurve, die durch alle Punkte eines Quadrates mit Seitenlänge 1 durchläuft. \autocite{walterFraktaleGeometrischenElemente2018}. -Helge von Koch entdeckte 1904, die nach ihm benannte \emph{Kochsche kurve} bei der Suche nach einer nicht differenzierbare Kurve. Diese Entdeckungen wurden von Mathematiker aus dem 19. Jahrhundert als \enquote{Monster} bezeichnet, da diese seltsame Eigenschaften aufweisen \autocite{smithFractalGeometryHistory2011}. -Diese besonderen Objekte weist man im zeitlichen Verlauf der fraktalen Geometrie, einem relativ jungen Teilgebiet der Mathematik zu. Eine feste eindeutige Definition für ein Fraktal konnte sich nicht etablieren \autocite{walterFraktaleGeometrischenElemente2018}. Eine Eigenschaft, die dennoch besonders häufig bei der Arbeit mit Fraktalen auftritt ist der Begriff der \emph{Selbstähnlichkeit}. -Lässt sich ein Objekt aus kleineren Kopien seiner selbst zusammenbauen, so wird dies als selbstähnlich bezeichnet \autocite{walterFraktaleGeometrischenElemente2018}.\\ -Ein einführendes Beispiel zur Selbstähnlichkeit ist die \emph{Kochsche Kurve}. Diese lässt sich aus 4 Kopien mit Verkleinerungsfaktor $\frac{1}{3}$ zusammenbasteln \autocite{walterFraktaleGeometrischenElemente2018}. Man lege dafür 2 Kopien an den linken und rechten Rand. Die übrig bleibenden 2 Kopien werden nach oben spitz aufeinander zulaufend zwischen die beiden äußeren Kopien gelegt. +Im Jahr 1891 beschäftigte sich der Mathematiker David Hilbert mit einer besonderen Kurve, die alle Punkte eines Quadrates mit Seitenlänge 1 durchläuft \autocite{walterFraktaleGeometrischenElemente2018}. +Helge von Koch entdeckte 1904 die nach ihm benannte \enquote{Kochsche Kurve} bei der Suche nach einer nicht differenzierbaren Kurve. Diese Entdeckungen wurden von Mathematiker des 19. Jahrhunderts als \enquote{Monster} bezeichnet, da diese seltsame Eigenschaften aufweisen \autocite{smithFractalGeometryHistory2011}. +Diese besonderen Objekte ordnet man im zeitlichen Verlauf der fraktalen Geometrie, einem relativ jungen Teilgebiet der Mathematik zu. Eine feste eindeutige Definition für ein Fraktal konnte sich nicht etablieren \autocite{walterFraktaleGeometrischenElemente2018}. Eine Eigenschaft, die dennoch besonders häufig bei der Arbeit mit Fraktalen auftritt, ist der Begriff der \emph{Selbstähnlichkeit}. +Lässt sich ein Objekt aus kleineren Kopien seiner selbst zusammenstellen, so wird dies als \emph{selbstähnlich} bezeichnet \autocite{walterFraktaleGeometrischenElemente2018}.\\ +Ein einführendes Beispiel zur Selbstähnlichkeit ist die \emph{Kochsche Kurve}. Diese lässt sich aus vier Kopien mit Verkleinerungsfaktor $\frac{1}{3}$ zusammenlegen \autocite{walterFraktaleGeometrischenElemente2018}. Man lege dafür zwei Kopien an den linken und rechten Rand. Die beiden übrig bleibenden Kopien werden nach oben spitz aufeinander zulaufend zwischen die beiden äußeren Kopien gelegt. \begin{figure}[h!] \centering \label{fig:koch_curve} - \includegraphics[width=0.8\columnwidth]{images/koch_curve.png} + \includegraphics[width=\columnwidth]{images/koch_curve.png} \caption{Kochsche Kurve} \end{figure} -Weitere Grundlagenarbeit der fraktalen Geometrie beruht auf Werken des Mathematikers Gaston Julia und seinem Konkurrenten Pierre Fatou anfangs des 20. Jahrhunderts. Julia und Fatou erforschten das Verhalten der Iterationen von Funktionen der Form $f_c(z) = z^2 + c$ mit $z, c \in \mathbb{C}$ \autocite{walterFraktaleGeometrischenElemente2018}. -Diese Errungenschaften griff der Mathematiker Benoît Mandelbrot um die 1970er Jahre in seinem Buch \textit{The Fractal Geometry of Nature} wieder auf und verlieh dem Bereich der fraktalen Geometrie an wachsender Popularität. In seinem Werk bedient sich Mandelbrot an einer Vielzahl von Visualisierungen für die betrachteten Fraktale. \autocite{smithFractalGeometryHistory2011} -Zu Ehren Ihrer Forschungsarbeiten wurden Objekte aus der fraktalen Geometrie nach Ihnen benannt. -Die Mandelbrot-Menge $\mathbb{M}$ ist die Menge der komplexen Zahlen $c \in \mathbb{C}$, deren Konvergenz-Verhalten für die Iteration $f_c(z_i) = z_{i+1} = z^2 _i + c$ unter Wahl von $z_0 = 0$ beschränkt ist. Da sich die komplexen Zahlen als Punkte einer auffassen lassen, lässt sich die Mandelbrot-Menge in Form einer Rastergrafik visualisieren. +Weitere Grundlagenarbeit der fraktalen Geometrie beruht auf Werken des Mathematikers Gaston Julia und seinem Konkurrenten Pierre Fatou zu Beginn des 20. Jahrhunderts. Julia und Fatou erforschten das Verhalten der Iterationen von Funktionen der Form $f_c(z) = z^2 + c$ mit $z, c \in \mathbb{C}$ \autocite{walterFraktaleGeometrischenElemente2018}. +Diese Ergebnisse griff der Mathematiker Benoît Mandelbrot in den 1970er Jahren in seinem Buch \textit{The Fractal Geometry of Nature} wieder auf und verlieh dem Bereich der Fraktalen Geometrie wachsende Popularität. In seinem Werk bedient sich Mandelbrot einer Vielzahl von Visualisierungen für die betrachteten Fraktale \autocite{smithFractalGeometryHistory2011}. +Zu Ehren ihrer Forschungsarbeiten wurden Objekte aus der Fraktalen Geometrie nach ihnen benannt. +Die Mandelbrot-Menge $\mathbb{M}$ ist die Menge der komplexen Zahlen $c \in \mathbb{C}$, deren Konvergenzverhalten für die Iteration $f_c(z_i) = z_{i+1} = z^2 _i + c$ unter Wahl von $z_0 = 0$ beschränkt ist. Da sich die komplexen Zahlen als Punkte der Gaußschen Zahlenebene auffassen lassen, kann man die Mandelbrot-Menge in Form einer Rastergrafik visualisieren. \begin{figure}[h!] \centering @@ -75,52 +75,54 @@ Die Mandelbrot-Menge $\mathbb{M}$ ist die Menge der komplexen Zahlen $c \in \mat \caption{Mandelbrot-Menge} \end{figure} -Färben wir die Elemente der komplexen Zahlenebene, die innerhalb der Mandelbrot-Menge $\mathbb{M}$ liegen schwarz und die außerhalb weiß, erhalten wir \autoref{fig:mandelbrotset}. Mithilfe der Darstellung lassen sich neue Vermutungen über die Eigenschaften der Mandelbrot-Menge aufstellen, welche ohne Visualisierung schwer zu erkennen sind. -Die Begründer Gaston und Julia besaßen zur damaligen Zeit noch keine Computer, mit denen Sie ihre Forschungsobjekte darstellen konnten. \autocite{walterFraktaleGeometrischenElemente2018} -Mit dem Lauf der Zeit wächst die Rechenleistung der verfügbaren Computer stetig an und erschließt neue Möglichkeiten innerhalb der Forschung. Nach \textit{Moore's Law} \autocite{mollickEstablishingMooreLaw2006} verdoppelt sich die Anzahl der Komponenten die auf einen Chip passt jedes Jahr. Innerhalb der 70er Jahre wurde die Mandelbrotmenge mithilfe von ASCII-Art visualisiert \autocite{weitzKonkreteMathematikNicht2021}. Aktuell steht uns die Rechenleistung zur Verfügung Einblicke in die Welt der Fraktale mittels hochauflösender Rastergrafik zu gelangen. +Färben wir die Elemente der komplexen Zahlenebene, die innerhalb der Mandelbrot-Menge $\mathbb{M}$ liegen schwarz und die außerhalb liegenden weiß, erhalten wir Abbildung 2. Mithilfe der bildlichen Darstellung lassen sich neue Vermutungen über die Eigenschaften der Mandelbrot-Menge aufstellen, welche ohne Visualisierung schwer zu erkennen sind. +Die Begründer Gaston und Julia besaßen zur damaligen Zeit noch keine Computer, mit denen sie ihre Forschungsobjekte veranschaulichen konnten \autocite{walterFraktaleGeometrischenElemente2018}. +Im Laufe der Zeit wächst die Rechenleistung der verfügbaren Computer stetig und erschließt neue Möglichkeiten innerhalb der Forschung. Nach \textit{Moore's Law} \autocite{mollickEstablishingMooreLaw2006} verdoppelt sich die Anzahl der Komponenten, die auf einen Chip passen, jedes Jahr. Innerhalb der 1970er Jahre wurde die Mandelbrotmenge mithilfe von ASCII-Art visualisiert \autocite{weitzKonkreteMathematikNicht2021}. +Die momentane Rechenleistung ermöglicht mittels hochauflösender Rastergrafiken tiefere Einblicke in die Welt der Fraktale. Die resultierenden Bilder wecken aufgrund der Ästhetik auch das Interesse vieler Nicht-Mathematiker sich mit dem Themengebiet zu befassen \autocite{smithFractalGeometryHistory2011}. -In der Informatik, die einen Spagat zwischen Formalwissenschaft und Ingenieurswissenschaft bildet, stellt sich die Herausforderung, die Vielzahl an Objekten aus dem Zoo der fraktalen Geometrie auf effiziente und anschauliche Weise zu visualisieren. Um sich die Rechenleistung der Computer zunutze zu machen dient eine Programmiersprache als Schnittstelle zwischen Computer und Mensch. Wir betrachten genauer ob sich die Programmiersprache \emph{Julia} zur Erstellung von Visualisierungen im Rahmen der fraktalen Geometrie eignet. +In der Informatik, die einen Spagat zwischen Formalwissenschaft und Ingenieurswissenschaft bildet, stellt sich die Herausforderung, die Vielzahl an Objekten aus dem Zoo der Fraktalen Geometrie auf effiziente und anschauliche Weise zu visualisieren. Um sich die Rechenleistung der Computer zunutze zu machen, dient eine Programmiersprache als Schnittstelle zwischen Computer und Mensch. Wir betrachten genauer, ob sich die Programmiersprache Julia zur Erstellung von Visualisierungen im Rahmen der Fraktalen Geometrie eignet. \section{Hintergrund} -Für das Angehen von technischen Problemen ist der populärste Ansatz zwei Programmiersprachen zu verwenden. Eine Sprache mit leichter Syntax auf hoher Ebene wird in Kombination mit einer Sprache auf niedriger Abstraktionsebene mit hoher Performanz verwendet. Ein bekanntes Beispiel ist die Python-Bibliothek \textit{NumPy}, die in C geschrieben ist \autocite{bezansonAbstractionTechnicalComputing2015}. Ein anderer Ansatz zur Lösung dieses Problems ist: vorerst Algorithmen innerhalb von Skriptsprachen zu schreiben und diese später in hardware-nahe Sprachen zu übertragen. Dieses Vorgehen ist mit einem hohen zeitlichen Aufwand und einer hohen Fehleranfälligkeit während des Übertragungsprozess verbunden \cite{perkelJuliaComeSyntax2019}. -Julia wird als eine Lösung für diese Problematik, dem \textit{Zwei Sprachen Problem} angesehen. -Ein Team aus unabhängigen Entwicklern startete 2009 die Entwicklung von Julia. Bis zur ersten Veröffentlichung von Julia verliefen 3 weitere Jahre. -Im August 2018 wurde die Veröffentlichung von Julia 1.0.0 bekanntgegeben \autocite{januszekComparativeAnalysisEfficiency2018}. -Julia ist eine dynamische Programmiersprache in welcher Variablen zwingend definiert werden müssen, bevor diese zum Einsatz kommen \autocite{cabuttoOverviewJuliaProgramming2018}. Eine Vielzahl an Konzepten aus imperativen, funktionalen und objekt-orientieren Programmiersprachen lassen sich in Julia wiederfinden. Julia wurde für wissenschaftliches Berechnen konzeptioniert, aber ermöglicht auch allgemeine Programmierung \autocite{bezansonJuliaLanguageDocumentation}. Wichtige Merkmale, die Julia von anderen dynamischen Programmiersprachen abgrenzt sind nach Julia-Handbuch: +Für das Lösen technischer Probleme ist ein meist genutzter Ansatz zwei Programmiersprachen zu verwenden. Eine Sprache mit leichter Syntax auf hoher Ebene wird in Kombination mit einer Sprache auf niedriger Abstraktionsebene mit hoher Performanz verwendet. Ein bekanntes Beispiel ist die Python-Bibliothek \textit{NumPy}, die in C geschrieben ist \autocite{bezansonAbstractionTechnicalComputing2015}. Ein weiterer Ansatz zur Lösung dieses Problems ist, dass vorerst Algorithmen innerhalb von Skriptsprachen geschrieben werden und diese später in hardware-nahe Sprachen übertragen werden. Dieses Vorgehen ist mit einem hohen zeitlichen Aufwand und einer hohen Fehleranfälligkeit während des Übertragungsprozesses verbunden \cite{perkelJuliaComeSyntax2019}. +Julia wird als eine mögliche Lösung für dieses \enquote{Zwei Sprachen Problem} angesehen. +Ein Team aus unabhängigen Entwicklern startete 2009 die Entwicklung von Julia. Bis zur ersten Veröffentlichung von Julia vergingen drei weitere Jahre. +Im August 2018 wurde die Veröffentlichung von Julia 1.0 bekanntgegeben \autocite{januszekComparativeAnalysisEfficiency2018}. +Julia ist eine dynamische Programmiersprache, in der Variablen zwingend definiert werden müssen, bevor diese zum Einsatz kommen \autocite{cabuttoOverviewJuliaProgramming2018}. Eine Vielzahl an Konzepten aus imperativen, funktionalen und objektorientierten Programmiersprachen lassen sich in Julia wiederfinden. Julia wurde für wissenschaftliche Berechnungen konzipiert, ermöglicht aber auch allgemeine Programmierung \autocite{bezansonJuliaLanguageDocumentation}. Wichtige Merkmale, die Julia von anderen dynamischen Programmiersprachen abgrenzt, sind nach Julia-Handbuch \autocite{bezansonJuliaLanguageDocumentation}: \begin{itemize} \item Eine sehr schlanke Standard-Bibliothek, die alle grundlegenden numerischen Operationen und Typen bereitstellt \item Ein breit aufgestellte Sprache um Objekte zu konstruieren und deren Typen zu beschreiben \item Die Möglichkeit, dass Funktionen eine große Breite an unterschiedlichen Parametertypen entgegennehmen - \item Eine gute Performanz, die derer statisch-kompilierter Sprachen wie beispielsweise C nahekommt -\end{itemize} \autocite{bezansonJuliaLanguageDocumentation}. -Die Einsatzmöglichkeiten beschränken sich nicht auf einen konkreten Bereich. Julia stellt einen Werkzeug zur Lösung von Problemen innerhalb der Informatik, Mathematik, Ingenieurswissenschaft, Medizin und Wirtschaft dar \autocite{cabuttoOverviewJuliaProgramming2018}. Von höherem Interesse ist für uns der Einsatz von Julia innerhalb Mathematik, konkreter als Werkzeug für Visualisierungen im Teilgebiet der fraktalen Geometrie. + \item Eine gute Performanz, die derer statisch-kompilierter Sprachen, wie beispielsweise C, nahekommt +\end{itemize} +Julia stellt einen Werkzeug zur Lösung von Problemen innerhalb der Informatik, Mathematik, Ingenieurswissenschaft, Medizin und Wirtschaft dar \autocite{cabuttoOverviewJuliaProgramming2018}. Von höherem Interesse ist für uns der Einsatz von Julia innerhalb der Mathematik, im Besonderen als Werkzeug für die Fraktale Geometrie. \section{Kriterien} -Im folgenden Abschnitt betrachten wir die ausgewählten Kriterien bezüglich der Programmiersprache Julia und stellen jeweils die Relation der einzelnen Kriterien zur Fraktalen Geometrie her. Diese lassen sich unterteilen in generelle Eigenschaften der Programmiersprache Julia und welche, die speziell für Visualisierung innerhalb fraktale Geometrie von hoher Signifikanz sind. Wir evaluieren im Laufe der nächsten Abschnitte, weshalb die ausgewählten Kriterien für unsere Fragestellung relevant sind. +Im folgenden Abschnitt betrachten wir ausgewählte Kriterien bezüglich der Programmiersprache Julia und stellen jeweils die Relation der einzelnen Kriterien zur Fraktalen Geometrie her. Diese lassen sich unterteilen in generelle Eigenschaften der Programmiersprache Julia und weitere, die speziell für Visualisierung innerhalb der Fraktalen Geometrie von hoher Signifikanz sind. Wir evaluieren im Laufe der nächsten Abschnitte, die Relevanz der ausgewählten Kriterien für unsere Fragestellung. \begin{itemize} \item Performanz - \item Parallelisierbarkeit - \item Verfügbarkeit Softwarepakete - \item Entwicklungsumgebungen \item Nachhaltigkeit + \item Parallelisierbarkeit + \item Verfügbarkeit von Softwarepaketen + \item Entwicklungsumgebungen \end{itemize} -Am Ende jedes Abschnitts beurteilen wir, wie gut das jeweilig genannte Kriterium durch Julia umgesetzt wurde. +Am Ende eines jeden Abschnitts beurteilen wir, wie gut das jeweilig genannte Kriterium durch Julia umgesetzt wurde. \subsection{Performanz} -Für die Gestaltung interaktiver Software und der Erstellung von Bildern bzw. von Animationen bezüglich Fraktalen wird ein Anspruch auf eine schnelle Verarbeitung der Eingaben gesetzt. Besonders für Programme mit denen in Echtzeit verschiedene Formen von Fraktalen erkundet werden können ist eine gute Performanz von hoher Relevanz. -Da viele Programmiersprachen heutzutage alle notwendigen Funktionalität zur Lösungen unterschiedlichen Problemtypen bereitstellen, spielt die Effizienz eine höhere Rolle innerhalb der Auswahl der Sprache, als im Vergleich zur Umsetzbarkeit \autocite{januszekComparativeAnalysisEfficiency2018}\\ -In folgendem Abschnitt werden Performanz-Tests in den Programmiersprachen Julia 1.10.2, Python 3.12.2 und Java Open-JDK 19.0.2 durchgeführt. Die verwendete \ac{CPU} ist ein AMD Ryzen 5 3600 unter Windows 10 mit 16GB verfügbaren Arbeitsspeicher. Der zu testende Code wird aus Sicht eines Einsteigers der jeweiligen Programmiersprache geschrieben. Der Code macht keinen Gebrauch von explizit verwendeter Parallelisierung. Außerdem vermeiden wir Optimierung einzugehen die von genaueren Wissen technischer Details, der jeweiligen Programmiersprache ausgehen. Die Zeiten werden mithilfe des Julia Package \texttt{BenchmarkTools.jl}, des Python Moduls \texttt{timeit} und in Java per Aufruf der Methode \texttt{System.nanoTime()} erfasst. Jeder parametrisierte Aufruf eine Funktion wird 10-Mal durchgeführt. Aus den 10 Aufrufen wählen wir das Minimum aus. Dieses Vorgehen liefert eine Untergrenze der Ausführungszeit des Codes. Die Kompilierzeit der jeweiligen Sprache wird in unseren Tests nicht miteinbezogen. Während der Arbeit mit Julia ist aufgefallen, dass Kompilierzeiten in der Länge stark variieren können.\\~\\ +Für die Gestaltung interaktiver Software und die Erstellung von Bildern bzw. von Animationen bezüglich Fraktalen wird ein Anspruch auf eine schnelle Verarbeitung von Eingaben gesetzt. Besonders für Programme, mit denen in Echtzeit verschiedene Formen von Fraktalen erkundet werden können, ist eine gute Performanz von hoher Relevanz. +Viele Programmiersprachen stellen heutzutage alle notwendigen Funktionalitäten zur Lösung unterschiedlicher Problemtypen bereit. Demnach spielt die Effizienz eine höhere Rolle innerhalb der Auswahl der Sprache, als die Umsetzbarkeit \autocite{januszekComparativeAnalysisEfficiency2018}\\ +In folgendem Abschnitt werden Performanz-Tests in den Programmiersprachen Julia 1.10.2, Python 3.12.2 und Java Open-JDK 19.0.2 durchgeführt. Die verwendete \ac{CPU} ist ein AMD Ryzen 5 3600 unter Windows 10 mit 16 GB verfügbarem Arbeitsspeicher. Der zu testende Code wird aus Sicht eines Einsteigers der jeweiligen Programmiersprache geschrieben. Der Code macht keinen Gebrauch von explizit verwendeter Parallelisierung. Außerdem vermeiden wir Optimierungen einzugehen, die von genauerem Wissen technischer Details der jeweiligen Programmiersprache ausgehen. Die Zeiten werden mithilfe des Julia Package \texttt{BenchmarkTools.jl}, des Python Moduls \texttt{timeit} und in Java per Aufruf der Methode \texttt{System.nanoTime()} erfasst. Jeder parametrisierte Aufruf einer Funktion wird zehn Mal durchgeführt. Aus den zehn Aufrufen wählen wir das Minimum aus. Dieses Vorgehen liefert eine Untergrenze der Ausführungszeit des Codes. Die Kompilierzeit der jeweiligen Sprache wird in unseren Tests nicht miteinbezogen. Während der Arbeit mit Julia fällt auf, dass Kompilierzeiten in der Länge stark variieren können.\\~\\ + \subsubsection*{Performanz-Test} -Die Elemente der Mandelbrot-Menge $\mathbb{M}$ können nicht genau bestimmt werden. Es ist dennoch möglich Näherungsbilder der Mandelbrot-Menge $\mathbb{M}$ zu skizzieren \autocite{weitzKonkreteMathematikNicht2021}. Wir überprüfen die Performanz von Julia indem wir die beanspruchte Zeit für die Erstellung eine solchen Näherungsbildes betrachten. Komplexe Zahlen sind im Kontext dieses Tests festgelegt als Datenstruktur bestehende aus zwei 64-Bit Fließkommazahlen nach Spezifikation IEEE-754. -Die Mandelbrot-Menge ist nach Definition Teilmenge der komplexen Zahlen. Es lässt sich zeigen, dass alle Elemente der Mandelbrotmenge vollständig in der Kreisscheibe um 0 mit dem Radius 2 liegen \autocite{walterFraktaleGeometrischenElemente2018}. Diese Eigenschaft machen wir uns in unserem Näherungsbild zu nutze. -Demnach verwenden wir für die Visualisierung der Mandelbrot-Menge als Rastergrafik einen quadratischen Bildausschnitt mit Umkreismittelpunkt bei $0 + 0i$ und Seitenlänge 4. Um eine $n \times n$ Rastergrafik zu erhalten zerlegen wir unseren Ausschnitt in $n \times n$ Quadrate mit Seitenlänge $\frac{4}{n}$. Aus jedem Rasterquadrat wählen wir eine komplexe Zahl $z_{ij}$ als Repräsentanten für dieses Quadrat aus. Wir bestimmen für jedes $z_{ij}$ ob es nach einer festgelegten Anzahl an Iterationen ins Unendliche divergiert.\\ -Wir nehmen an, dass alle $z_{ij}$ Teil der Mandelbrot-Menge sind, wenn unsere maximale Iteration erreicht wurde und somit die Kreisscheibe nicht verlassen wurde. Diese Methodik fasst sich in Form des \textit{Escape Time Algorithm} \autoref{alg:escape_time_algorithm} zusammen. \autocite{caiStudyMandelbrotSets2013}. +Die Elemente der Mandelbrot-Menge $\mathbb{M}$ können nicht genau bestimmt werden. Es ist dennoch möglich Näherungsbilder der Mandelbrot-Menge $\mathbb{M}$ zu skizzieren \autocite{weitzKonkreteMathematikNicht2021}. Wir überprüfen die Performanz von Julia, indem wir die beanspruchte Zeit für die Erstellung eine solchen Näherungsbildes betrachten. Komplexe Zahlen sind im Kontext dieses Tests festgelegt als Datenstruktur bestehend aus zwei 64-Bit Fließkommazahlen nach IEEE Spezifikation IEEE-754. +Die Mandelbrot-Menge ist nach Definition Teilmenge der komplexen Zahlen. Es lässt sich zeigen, dass alle Elemente der Mandelbrot-Menge vollständig in der Kreisscheibe um $0 + 0i$ mit Radius $2$ liegen \autocite{walterFraktaleGeometrischenElemente2018}. Diese Eigenschaft machen wir uns in unserem Näherungsbild zunutze. +Demnach verwenden wir für die Visualisierung der Mandelbrot-Menge als Rastergrafik einen quadratischen Bildausschnitt mit Mittelpunkt bei $0 + 0i$ und einer Seitenlänge von 4. Um eine $n \times n$ Rastergrafik zu erhalten, zerlegen wir unseren Ausschnitt in $n \times n$ Quadrate mit Seitenlänge $\frac{4}{n}$. Aus jedem Rasterquadrat wählen wir eine komplexe Zahl $z_{ij}$ als Repräsentanten für dieses Quadrat aus. Wir bestimmen für jedes $z_{ij}$, ob es nach einer festgelegten Anzahl an Iterationen ins Unendliche divergiert.\\ +Wir nehmen an, dass alle $z_{ij}$ Teil der Mandelbrot-Menge sind, wenn unsere maximale Iteration erreicht wird. Somit wird die Kreisscheibe nicht verlassen. Diese Methodik fasst sich in Form des \textit{Escape Time Algorithm} \autoref{alg:escape_time_algorithm} zusammen \autocite{caiStudyMandelbrotSets2013}. \begin{algorithm} \caption{Escape Time Algorithmus}\label{alg:escape_time_algorithm} @@ -136,7 +138,7 @@ Wir nehmen an, dass alle $z_{ij}$ Teil der Mandelbrot-Menge sind, wenn unsere ma \end{algorithmic} \end{algorithm} -Der \textit{Escape Time Algorithm} \autoref{alg:escape_time_algorithm} muss für ein quadratisches $n \times n$ Raster $n^2$-Mal durchlaufen werden. Für die Anzahl der gesamten Ausführungen der \texttt{while}-Schleife des \textit{Escape Time Algorithm} kann die obere Schranke $n^2 \cdot t_{max}$ bestimmt werden. Die obere Schranke wird erreicht wenn alle $z_{ij}$ Teil der Mandelbrotmenge sind. Abbildung \autoref{fig:mandelbrot_time} stellt die benötigte Zeit zur Berechnung des Rasters unter maximaler Iteration $t_{max} = 10$ dar. Auf der Y-Achse lässt sich die Zeit in Sekunden logarithmisch ablesen. Auf der X-Achse liegen die betrachteten Rastergrößen $n$ von 1 bis 100. +Der \textit{Escape Time Algorithm} \autoref{alg:escape_time_algorithm} muss für ein quadratisches $n \times n$ Raster $n^2$-Mal durchlaufen werden. Für die Anzahl der gesamten Ausführungen der \texttt{while}-Schleife des \textit{Escape Time Algorithm} kann die obere Schranke $n^2 \cdot t_{max}$ bestimmt werden. Die obere Schranke wird erreicht, wenn alle $z_{ij}$ Teil der Mandelbrot-Menge sind. Abbildung 3 stellt die benötigte Zeit zur Berechnung des Rasters unter maximaler Iteration $t_{max} = 10$ dar. Auf der Y-Achse lässt sich die Zeit in Sekunden logarithmisch ablesen. Auf der X-Achse liegen die betrachteten Rastergrößen $n$ von 1 bis 100. \begin{figure}[h!] \label{fig:mandelbrot_time} @@ -144,42 +146,42 @@ Der \textit{Escape Time Algorithm} \autoref{alg:escape_time_algorithm} muss für \caption{Zeitaufwand in Abhängigkeit der Rastergröße} \end{figure} -Python, Julia und Java weisen ein ähnliches logarithmisches Wachstumsverhalten auf, sind jedoch auf der Y-Achse versetzt. Die Berechnungszeit für Julia und Java liegt für kleinere Werte für $n$, relativ nah beieinander. Python hingegen benötigt für kleine Rastergrößen schon wesentlich länger. Unter den gemessenen Sprachen ist Java die schnellste, darauffolgend Julia und das Schlusslicht bildet Python. +Python, Julia und Java weisen ein ähnliches logarithmisches Wachstumsverhalten auf, sind jedoch auf der Y-Achse versetzt. Die Berechnungszeit für Julia und Java liegt für kleinere Werte für $n$, relativ nah beieinander. Python hingegen benötigt für kleine Rastergrößen wesentlich länger. Unter den gemessenen Sprachen ist Java die Schnellste, darauf folgt Julia. Das Schlusslicht bildet Python. \subsection{Nachhaltigkeit} -Im letzten Jahrhundert verhielt sich der Energieverbrauch zwischen unterschiedlichen Programmiersprachen nahezu analog zueinander. Innerhalb des 20. Jahrhunderts legen Computerhersteller und Softwareentwickler einen größeren Wert auf eine effizientere Energienutzung \autocite{pereiraEnergyEfficiencyProgramming2017}. Neben dem Energieaufwand für Berechnungen wird weitere Energie für Kühlung, Anzeige, Lagerung und Kommunikation verwendet \autocite{dagostinoHardwareSoftwareSolutions2021}. Bedeutet die überdurchschnittliche Performanz, dass Julia auch energieeffizienter ist? Der Energieverbrauch wird durch die Gleichung: +Im letzten Jahrhundert war der Energieverbrauch unterschiedlicher Programmiersprachen nahezu ähnlich. Innerhalb des 20. Jahrhunderts legen Computerhersteller und Softwareentwickler einen größeren Wert auf eine effizientere Energienutzung \autocite{pereiraEnergyEfficiencyProgramming2017}. Neben dem Energieaufwand für Berechnungen wird weitere Energie für Kühlung, Anzeige, Lagerung und Kommunikation von Hardware verwendet \autocite{dagostinoHardwareSoftwareSolutions2021}. Bedeutet die überdurchschnittliche Performanz, dass Julia auch energieeffizienter ist? Der Energieverbrauch wird durch die Gleichung: \begin{equation*} \text{Energie} = \text{Zeit} \times \text{Leistung} \end{equation*} -beschrieben \autocite{pereiraEnergyEfficiencyProgramming2017}. Visualisierungen innerhalb der Fraktalen Geometrie können einen hohen Rechenaufwand in Anspruch nehmen. Beispielsweise spielt die numerische Präzision Berechnung eines kleinen \enquote{Sichtfensters} in die Mandelbrot-Menge einen limitierenden Faktor. Desto kleiner das Sichtfenster ist, desto mehr Zeit wird in Anspruch genommen dies zu Berechnen \autocite{heiland2023patterns}. Durch Verwendung von Zahlen mit arbiträrer Präzision kann diese Rechendauer, die einer 64-Bit Fließkommazahl übersteigen. Ein weiterer Anwendungsfalls ist die Wahl eines hohen $t_{max}$ innerhalb des \textit{Escape Time Algorithmus} \autoref{alg:escape_time_algorithm} welches ein genaueres Bild der Mandelbrotmenge liefert, aber auf der Gegenseite eine höhere Rechenzeit benötigt. Für die Darstellungen von Kurven, wie beispielsweise der Koch-Kurve $n$-ter Iteration wächst der Rechenaufwand mit wachsenden $n$ mit an. Es lässt sich schließen dass in genauere und präzisere Berechnung ein höherer Energieaufwand einfließt. -Ein Vergleich über die Energieeffizienz von Programmiersprachen liefert, dass kompilierte Sprachen im Durchschnitt schneller sind als Sprachen mit Virtueller Maschine, gefolgt von interpretierten Sprachen \autocite{pereiraEnergyEfficiencyProgramming2017}. Dieser Vergleich wurde anfangs ohne Julia durchgeführt. Im Anschluss wurde Julia in der Version 1.3.1 hinzugefügt und in einem Vergleich mit 9 weiterer Sprachen evaluiert. Julia liegt in der neuen Durchführung auf Platz 2/10. \autocite{pereiraOriginalWorkSLE} +beschrieben \autocite{pereiraEnergyEfficiencyProgramming2017}. Visualisierungen innerhalb der Fraktalen Geometrie können einen hohen Rechenaufwand in Anspruch nehmen. Beispielsweise spielt die numerische Präzision in der Berechnung eines kleinen \enquote{Sichtfensters} in der Mandelbrot-Menge einen limitierenden Faktor. Je kleiner das Sichtfenster, desto mehr Zeit ist für die Berechnung notwendig \autocite{heiland2023patterns}. Durch Verwendung von Zahlen mit arbiträrer Präzision kann diese Rechendauer, die einer 64-Bit Fließkommazahl übersteigen. Ein weiterer Anwendungsfall ist die Wahl eines hohen $t_{max}$ innerhalb des \textit{Escape Time Algorithmus} \autoref{alg:escape_time_algorithm}, welche ein genaueres Bild der Mandelbrot-Menge liefert. Daraus resultiert eine längere Rechenzeit. Für die Darstellung von Kurven, wie beispielsweise der Koch-Kurve $n$-ter Iteration, wächst der Rechenaufwand mit größerem $n$ an. Daraus folgt, dass präzisere Berechnungen einen höheren Energieaufwand benötigen. +Pereira et al. vergleichen die Energieeffizienz von Programmiersprachen und stellen fest, dass kompilierte Sprachen im Durchschnitt schneller sind als Sprachen mit virtueller Maschine, gefolgt von interpretierten Sprachen \autocite{pereiraEnergyEfficiencyProgramming2017}. In dieser Veröffentlichung fehlt allerdings Julia. In einer späteren Ergänzung zur Arbeit ist Julia in der Version 1.3.1 zu finden und wird mit neun weiteren Programmiersprachen verglichen. Julia schneidet im neuen Vergleich mit Platz zwei von zehn ab. \autocite{pereiraOriginalWorkSLE} \subsection{Parallelisierbarkeit} -Die Berechnung eines Bildes der Mandelbrot-Menge und der Julia-Menge lässt sich auf eine einfache Weise parallelisieren. Der Rechenaufwand für das große Bild kann in mehrere Teilprobleme, die Berechnung der jeweiligen Pixel, aufgeteilt werden. Dies ist von hohem Nutzen, da die Berechnungskosten für einzelne Pixel mit hohem Rechenaufwand verbunden ist \autocite{drakopoulosOverviewParallelVisualisation2003}. Julia unterstützt die vier folgenden Wege zur Parallelisierung von Programmen \autocite{bezansonJuliaLanguageDocumentation}: +Die Berechnung einer grafischen Darstellung der Mandelbrot-Menge und einer Julia-Menge lässt sich auf simple Weise parallelisieren. Der Rechenaufwand für eine Rastergrafik kann in mehrere unabhängige Teilprobleme, die Berechnung der jeweiligen Pixel, aufgeteilt werden. Dies ist von hohem Nutzen, da die Berechnungskosten einzelner Pixel mit hohem Rechenaufwand verbunden ist \autocite{drakopoulosOverviewParallelVisualisation2003}. Julia unterstützt die vier folgenden Wege zur Parallelisierung von Programmen \autocite{bezansonJuliaLanguageDocumentation}: \begin{enumerate} - \item \textbf{Koroutinen} Julia bietet die Option die Ausführung von Abläufen zu Pausieren und an späterer Stelle wieder neu zu starten oder zu synchronisieren. Diese Berechnungslast kann auf unterschiedliche Threads verteilt werden. - \item \textbf{Multithreading} Aufgaben können auf unterschiedliche Threads oder \acs{CPU}-Kerne aufgeteilt werden. Die unterschiedlichen Threads teilen sich denselben Speicher. - \item \textbf{Verteiltes Berechnen} Mithilfe des verteilten Berechnens können mehrere Julia-Prozesse, mit jeweils eigenem Speicher, laufen. Diese müssen nicht zwanghaft auf demselben Computer ausgeführt werden. Die Standard-Bibliothek \texttt{Distributed} bietet die Möglichkeit die Berechnungen von Funktionen auszulagern. - \item \textbf{Berechnen auf der GPU} Statt die Berechnungen auf der CPU stattfinden zu lassen, können Berechnungen auf die \ac{GPU} ausgelagert werden. + \item \textbf{Koroutinen}: Julia bietet die Option, die Ausführung von Abläufen zu pausieren und an späterer Stelle wieder neu zu starten oder zu synchronisieren. Diese Berechnungslast kann auf unterschiedliche Threads verteilt werden. + \item \textbf{Multithreading}: Aufgaben können auf unterschiedliche Threads oder \acs{CPU}-Kerne aufgeteilt werden. Diese greifen auf denselben Speicher zu. + \item \textbf{Verteiltes Berechnen}: Mithilfe des verteilten Berechnens können mehrere Julia-Prozesse mit jeweils eigenem Speicher durchgeführt werden. Diese müssen nicht zwanghaft auf demselben Computer ausgeführt werden. Die Standard-Bibliothek \texttt{Distributed} bietet die Möglichkeit die Berechnungen von Funktionen auszulagern. + \item \textbf{Berechnen auf der GPU}: Statt die Berechnungen auf der \ac{CPU} stattfinden zu lassen, können Berechnungen auf die \ac{GPU} ausgelagert werden. \end{enumerate} -Für allgemeine Probleme ist der leichteste Weg Multithreading zur Beschleunigung der Berechnungen einzusetzen \autocite{bezansonJuliaLanguageDocumentation}. Die Bereitstellung der Bibliothek für Verteiltes Berechnen reduziert zusätzlichen Aufwand seitens des Entwicklers sich um die Koordination der einzelnen Systeme zu kümmern. Eine Skalierung der Rechenleistung für große Projekte durch Julia von Haus aus gewährleistet. +Für allgemeine Probleme ist die einfachste Option, Multithreading zur Beschleunigung der Berechnungen einzusetzen \autocite{bezansonJuliaLanguageDocumentation}. Die Bereitstellung der Bibliothek für Verteiltes Berechnen reduziert zusätzlichen Aufwand seitens des Entwicklers, sich um die Koordination der einzelnen Systeme zu kümmern. Eine Skalierung der Rechenleistung für große Projekte wird durch Julia von Haus aus gewährleistet. \subsection{Softwarepakete} -In folgendem Abschnitt betrachten wir ob die durch das Julia Ecosystem bereitgestellte Ressourcen ausreichen um die Vielfalt unterschiedlicher Fraktale darzustellen. Dazu gehen wir nach einem \textit{Top-Down}-Prinzip vor. Erstmalig wird das Julia Ecosystem auf einer allgemeinen Ebene evaluiert. Im weiteren Verlauf werden einzelne Softwarepakete im Rahmen als Hilfsmittels für die fraktale Geometrie bewertet. Wir überprüfen ob eine Auswahl von Fraktalen mithilfe Julia visualisiert werden können und wie gut die dafür existierenden Strategien umgesetzt sind. Wir unterteilen dabei die Fraktale in folgende Mengen, die nicht zwingend disjunkt zueinander sind. +Im folgenden Abschnitt betrachten wir, ob die durch das Julia Ecosystem bereitgestellte Ressourcen ausreichen, um die Vielfalt unterschiedlicher Fraktale darzustellen. Dazu gehen wir nach einem \textit{Top-Down}-Prinzip vor. Zunächst wird das Julia Ecosystem auf allgemeiner Ebene evaluiert. Im weiteren Verlauf werden einzelne Softwarepakete als Hilfsmittel für die Fraktale Geometrie bewertet. Wir überprüfen ob, eine feste Auswahl von Fraktalen mithilfe von Julia visualisiert werden kann. Des weiteren betrachten wir die Umsetzungsstrategien der Softwarepakete. Wir unterteilen dabei die Fraktale in folgende Mengen, die nicht zwingend disjunkt zueinander sind: \begin{itemize} - \item Fraktale, die Teilmenge der komplexen Zahlenebene sind. Beispiele dafür sind die Mandelbrot-Menge, sowie die Julia-Menge \autocite{walterFraktaleGeometrischenElemente2018}. - \item Fraktale, die sich mithilfe eines Lindenmayer-Systems darstellen lassen, beispielsweise die Peano-Kurve oder die Kochsche Schneeflocke \autocite{alfonsecaRepresentationFractalCurves1996} - \item Fraktale innerhalb des 3-dimensionalen Raum, wie zum Beispiel den Menger-Schwamm oder eine 3-dimensionale Form des Sierpinski-Dreiecks \autocite{sternemannPlatonischeFraktaleIm} + \item Fraktale, als Teilmenge der komplexen Zahlenebene. Beispiele dafür sind die Mandelbrot-Menge, sowie die Julia-Menge \autocite{walterFraktaleGeometrischenElemente2018}. + \item Fraktale, die sich mithilfe eines Lindenmayer-Systems darstellen lassen, beispielsweise die Hilbert-Kurve oder die Kochsche Schneeflocke \autocite{alfonsecaRepresentationFractalCurves1996} + \item Fraktale innerhalb des 3-dimensionalen Raums, wie beispielsweise der Menger-Schwamm oder die Sierpinski-Pyramide \autocite{sternemannPlatonischeFraktaleIm} \end{itemize} \subsubsection*{Julias Ecosystem} -Neben den Standardbibliotheken, die mit der Installation einer Programmiersprache mitgeliefert werden, steht Nutzern die Möglichkeit offen eigene Softwarepakete zu entwickeln. Diese Pakete kapseln viele Funktionalitäten im Fokus eines Spezifischen Anwendungsbereichs bspw. Statistik. Um die Pakete der Öffentlichkeit zur Verfügung zu stellen, können diese in Paketverzeichnisse im Internet hochgeladen werden. Diese Möglichkeiten erweitern das traditionelle Verständnis von Softwareentwicklung im Sinn einer kollaborativen Zusammenarbeit von Entwicklern unabhängig ihres Standorts. \autocite{decanTopologyPackageDependency2016}.\autoref{table:packages} zeigt eine Auswahl von Verzeichnissen für Sprachen aus dem Bereich des wissenschaftlichen Berechnens basierend auf \autocite{PyPi2024} \autocite{MATLABFileexchange2024} \autocite{CRANContributedPackages2024} \autocite{JuliaRegistries2024} \autocite{carbonellePYPLPopularityProgramming2023}. +Neben den Standardbibliotheken, die mit der Installation einer Programmiersprache mitgeliefert werden, steht Nutzern die Möglichkeit offen, eigene Softwarepakete zu entwickeln. Diese Pakete kapseln viele Funktionalitäten im Fokus eines spezifischen Anwendungsbereichs beispielsweise der Statistik. Um die Pakete der Öffentlichkeit zur Verfügung zu stellen, können diese in Paketverzeichnisse im Internet hochgeladen werden. Diese Möglichkeit erweitert das traditionelle Verständnis von Softwareentwicklung im Sinne einer Zusammenarbeit von Entwicklern unabhängig ihres Standorts \autocite{decanTopologyPackageDependency2016}.\autoref{table:packages} zeigt eine Auswahl von Verzeichnissen für Sprachen aus dem Bereich des wissenschaftlichen Berechnens, basierend auf \autocite{carbonellePYPLPopularityProgramming2023}. \begin{table}[h!] \centering @@ -200,23 +202,22 @@ Neben den Standardbibliotheken, die mit der Installation einer Programmiersprach \end{footnotesize} \end{table} -Nach dem \ac{PYPL} Index wird Python als populärste Programmiersprache evaluiert. Julia hingegen belegt hingegen Platz 24 \autocite{carbonellePYPLPopularityProgramming2023}. Zwischen beiden Enden liegen die Programmiersprache R und MATLAB. Da MATLAB keinen klassischen Paketmanager besitzt wird hier zum Vergleich die Anzahl der von Nutzer bereit gestellten Programme auf dem MATLAB FileExchange verwendet. Aufallend ist das MATLAB trotz einer proprietären Lizenz eine höhere Anzahl an Paketen bzw. Programmen bereitstellt. -Diese hohe Popularität erklärt weshalb die Anzahl zwischen Paketen auf \ac{PyPi}, dem Python Package Index, und \textit{JuliaRegistry} sich dem Verhältnis 50:1 nähert. -Aufgrund des relativ jungen Alters, mit Veröffentlichung von Julia im Jahr 2012 \autocite{cabuttoOverviewJuliaProgramming2018} und der niedrigeren Popularität, besitzt Julia im Vergleich zu den restlichen ausgewählten Programmiersprachen die geringste Anzahl an Paketen \autocite{perkelJuliaComeSyntax2019}. +Nach dem \ac{PYPL} Index wird Python als populärste Programmiersprache evaluiert. Julia hingegen belegt Platz 24 \autocite{carbonellePYPLPopularityProgramming2023}. Zwischen Python und Julia liegen die Programmiersprachen R und MATLAB. Da MATLAB keinen klassischen Paketmanager besitzt, wird hier zum Vergleich die Anzahl der von Nutzern bereit gestellten Programme auf dem MATLAB FileExchange verwendet. Aufallend ist, dass MATLAB trotz einer proprietären Lizenz eine höhere Anzahl an Paketen bzw. Programmen als Julia bereitstellt. +Die hohe Popularität von Python erklärt, weshalb die Anzahl zwischen Paketen auf dem \ac{PyPi}, dem Python Package Index, und \textit{JuliaRegistry} sich dem Verhältnis 50:1 nähert. +Aufgrund des relativ jungen Alters von Julia (veröffentlicht 2012) \autocite{cabuttoOverviewJuliaProgramming2018} und ihrer geringeren Popularität, besitzt Julia im Vergleich zu den übrigen ausgewählten Programmiersprachen die geringste Anzahl an Paketen. \subsubsection*{Schildkröten und Kurven} -Eine häufig verwendete Strategie zur Darstellung von Fraktalen Kurven sind die von Seymour Papert im Jahr 1980 entwickelten Turtle-Grafiken. -Dabei bewegt sich eine unsichtbare \enquote{Schildkröte} über eine Leinwand und hinterlässt eine farbige Spur. Dabei ist die Schildkröte auf eine Anzahl an Aktionen beschränkt, die aus der Perspektive der Schildkröte geschehen \autocite{alfonsecaRepresentationFractalCurves1996}. Diese können beispielsweise sein: +Eine häufig verwendete Strategie zur Darstellung von fraktalen Kurven sind die von Seymour Papert im Jahr 1980 entwickelten Turtle-Grafiken. +Dabei bewegt sich eine unsichtbare \enquote{Schildkröte} über eine Leinwand und hinterlässt eine farbige Spur. Der Schildkröte stehen nur eine beschränkte Anzahl an Aktionen zur Verfügung. Die Handlungsmöglichkeiten erfolgen aus der Perspektive der Schildkröte. \autocite{alfonsecaRepresentationFractalCurves1996}. Diese können beispielsweise sein: \begin{itemize} \item[F] Die Schildkröte bewegt sich einen Schritt nach vorne und hinterlässt dabei eine farbige Spur \item[+] Die Schildkröte dreht sich um den Winkel $\alpha$ nach links \item[-] Die Schildkröte dreht sich um den Winkel $\alpha$ nach rechts \end{itemize} -Alleine mit einer kleinen Auswahl an Aktionen können komplexe Fraktale erschaffen werden. in Julia wird das Zeichnen von Turtle Grafiken durch das Paket \texttt{Luxor.jl} abgedeckt. Neben unserem Beispiel an 3 Aktionen stellt \texttt{Luxor.jl} 17 weitere möglichen Aktionen zur Bewegung der Schildkröte bereit \autocite{cormullionLuxorJlDokumentation}. - -Mithilfe der Regeln der Turtle-Grafiken lassen sich Lindenmayer Systeme, kurz L-System, darstellen. Ein L-System liefert eine Liste an Ersetzungsregeln die alle gleichzeitig auf eine Zeichenkette angewendet werden. \autocite{mcandrewLindenmayerSystemsFractals}. Diese Ersetzungsregeln können beispielsweise auf Zeichenketten bzw. die Aktionen unserer Schildkröte, bestehend aus F, +, - angewendet werden. Das $n$-fache Anwenden der festgelegten Ersetzungsregeln liefert uns eine Näherung der $n$-ten Iteration des Fraktals. Alle hier gezeigten Kurven werden in vierter Iteration dargestellt. -Der übrigbleibende Aufwand besteht nur noch darin das L-System in die Aktionen einer Turtle-Grafik zu übersetzen. Das Softwarepaket \texttt{Lindenmayer.jl} abstrahiert uns diesen Arbeitsaufwand weg. -Verwenden wir 3 Kopien der \emph{kochschen Kurve} und legen diese zu einem Dreieck zusammen, so erhalten wir die \emph{kochsche Schneeflocke}. Auch die erstmalig erwähnte Hilbert-Kurve können wir visualisieren. Beide Visualisierungen wurden mithilfe von \texttt{Lindenmayer.jl} erstellt. +Mit einer kleinen Auswahl an Aktionen können bereits fraktale Kurven gezeichnet werden. In Julia wird das Zeichnen von Turtle- Grafiken durch das Paket \texttt{Luxor.jl} abgedeckt. Neben unserem Beispiel von drei Aktionen stellt \texttt{Luxor.jl} insgesamt 17 Handlungsmöglichkeiten zur Bewegung der Schildkröte bereit \autocite{cormullionLuxorJlDokumentation}.\\~\\ +Mithilfe der Regeln der Turtle-Grafiken lassen sich Lindenmayer Systeme, kurz L-Systeme, darstellen. Ein L-System liefert eine Liste an Ersetzungsregeln, die alle gleichzeitig auf eine Zeichenkette angewendet werden \autocite{mcandrewLindenmayerSystemsFractals}. Diese Ersetzungsregeln können beispielsweise auf Zeichenketten bzw. die Aktionen unserer Schildkröte, bestehend aus F, +, - angewendet werden. Das $n$-fache Anwenden der festgelegten Ersetzungsregeln liefert uns eine Näherung der $n$-ten Iteration des Fraktals. Alle hier gezeigten Kurven werden in vierter Iteration dargestellt. +Der verbleibende Aufwand besteht nur noch darin, das L-System in die Aktionen einer Turtle-Grafik zu übersetzen. Das Softwarepaket \texttt{Lindenmayer.jl} abstrahiert diesen Arbeitsaufwand. +Verwenden wir drei Kopien der \emph{Kochschen Kurve} und legen diese zu einem Dreieck zusammen, so erhalten wir die \emph{Kochsche Schneeflocke} \autocite{walterFraktaleGeometrischenElemente2018}. Auch die erstmalig erwähnte Hilbert-Kurve können wir visualisieren. Beide Grafiken werden mithilfe von \texttt{Lindenmayer.jl} erstellt. \begin{figure}[!h] \centering @@ -233,9 +234,9 @@ Verwenden wir 3 Kopien der \emph{kochschen Kurve} und legen diese zu einem Dreie \subsubsection*{Fraktale in $\mathbb{C}$} -Die Mandelbrot-Menge, sowie die Julia-Menge liegen innerhalb der komplexen Zahlen. Mithilfe der Stratege die Mandelbrot-Menge in Form eines Rasters unter Nutzung des \textit{Escape Time Algorithmus} \autoref{alg:escape_time_algorithm} erhalten wir ein Raster bzw. eine Matrix mit den Fluchtzeiten der jeweiligen Eingabewerte. -Für vielseitige Visualisierungen ist eine einheitliche Schnittstelle für Farbmodelle und Rastergrafiken vonnöten. Diese geforderte Funktionalität wird durch das Julia-Paket \emph{JuliaImages}: \texttt{Images.jl} realisiert. Das Paket \texttt{Makie.jl} liefert eine Darstellungsmöglichkeit für 2-dimensionale Rastergrafiken in Form interaktiver Anwendungen mithilfe Benutzereingaben wie bspw. Textboxen, Knöpfe, Slider \autocite{danischMakieJlFlexible2021}. -Die kolorierten Visualisierungen der Mandelbrot- und einer konkreten Julia-Menge wurden mithilfe von \texttt{Makie.jl} erstellt: +Die Mandelbrot-Menge und Julia-Mengen liegen innerhalb der komplexen Zahlen. Mithilfe der Strategie die Mandelbrot-Menge in Form eines Rasters unter Nutzung des \textit{Escape Time Algorithmus} \autoref{alg:escape_time_algorithm} darzustellen, erhalten wir ein Raster bzw. eine Matrix mit den Fluchtzeiten der jeweiligen Eingabewerte. +Für vielseitige Visualisierungen ist eine einheitliche Schnittstelle für Farbmodelle und Rastergrafiken vonnöten. Diese geforderte Funktionalität wird durch das Julia-Paket \emph{JuliaImages}: \texttt{Images.jl} realisiert. Das Paket \texttt{Makie.jl} liefert eine Darstellungsmöglichkeit für 2-dimensionale Rastergrafiken in Form interaktiver Anwendungen mithilfe von Benutzereingaben wie beispielsweise Textboxen, Knöpfe, Slider \autocite{danischMakieJlFlexible2021}. +Die kolorierten Visualisierungen der Mandelbrot-Menge und einer konkreten Julia-Menge wurden mithilfe von \texttt{Makie.jl} erstellt: \begin{figure}[!h] \centering @@ -252,20 +253,20 @@ Die kolorierten Visualisierungen der Mandelbrot- und einer konkreten Julia-Menge \subsubsection*{Fraktale im 3-dimensionalen Raum} -Neben der Möglichkeit 2-dimensionale Rastergrafiken zu erzeugen bietet \texttt{Makie.jl} die Option innerhalb eines 3-dimensionalen Raumes Objekte darzustellen. Mithilfe eines Voxel-Systems können fraktale Objekte mithilfe Würfeln angenähert werden. Neben Würfeln bieten Polygone und Linien weitere Grundbausteine für die Erstellung komplexer Objekte. \autocite{danischMakieJlFlexible2021}. Weitere Möglichkeiten zur Erstellung von 3-dimensionalen Objekten sind das angeben eines Volumens oder das Laden von \texttt{.obj}-Dateien. Die Konstruktion von größeren Objekten erstellt sich aufgrund der zusätzlichen Dimension als schwieriges Unterfangen dar \autocite{danischMakieJlFlexible2021}. +Neben der Möglichkeit 2-dimensionale Rastergrafiken zu erzeugen, bietet \texttt{Makie.jl} die Option, innerhalb eines 3-dimensionalen Raumes Objekte darzustellen. Unter Verwendung eines Voxel-Systems können fraktale Objekte mit Würfeln angenähert werden. Neben Würfeln bieten Polygone und Linien weitere Grundbausteine für die Erstellung komplexer Objekte \autocite{danischMakieJlFlexible2021}. Zusätzliche Möglichkeiten zur Erstellung von 3-dimensionalen Objekten sind das Angeben eines Volumens oder das Laden von \texttt{.obj}-Dateien. Die Konstruktion größerer Objekten stellt sich aufgrund der zusätzlichen dritten Dimension als schwierigeres Unterfangen dar \autocite{danischMakieJlFlexible2021}. \subsection{Entwicklungsumgebungen} -Die Julia Programmiersprache ist auf macOS, Windows und Linux frei erhältlich -Mit der Veröffentlichung einer neuen Programmiersprache müssen auch Entwicklungsumgebungen geschaffen werden. Eine Entwicklungsumgebung bietet dem Programmierer nützliche Werkzeuge um Code effizient zu erstellen und zu verändern. Der Typ der Entwicklungsumgebung bzw. \ac{IDE} lässt sich in 3 unterschiedliche Typen kategorisieren: +Die Julia Programmiersprache ist auf macOS, Windows und Linux frei erhältlich \autocite{bezansonJuliaLanguageDocumentation}. +Mit der Veröffentlichung einer neuen Programmiersprache müssen auch Entwicklungsumgebungen geschaffen werden. Eine Entwicklungsumgebung bietet dem Programmierer nützliche Werkzeuge, um Code effizient zu erstellen und zu verändern. Entwicklungsumgebungen (\ac{IDE}) lassen sich in drei unterschiedliche Typen kategorisieren: \begin{itemize} - \item eigenständiger Texteditor, die für das Schreiben einer spezifischen Programmiersprache oder einer engen Auswahl an zusammenhängender Programmiersprachen konzipierte wurde. Ein Beispiel für einen solchen Editor ist RStudio für R. - \item Erweiterung eines schon existierenden Texteditor, die konzipiert um eine große Breite an Sprachen abzudecken. Ein Beispiel für einen solchen Texteditor ist Visual Studio Code, welches viele Sprachen durch Hinzufügen von Erweiterungen unterstützt. - \item Notebooks, die eine Ansammlung an Zellen mit ausführbaren Code oder Notizen meist in Form von Markdown bieten. Die Entwicklung von Code in Notebooks geschieht in einer iterativen und interaktiven Form. Diese kommen meist innerhalb des Data-Science Bereichs zum Einsatz \autocite{wuB2BridgingCode2020}. In der Praxis unterstützen Notebooks meist mehrere Sprachen oder es ist möglich diese per Erweiterung hinzuzufügen. + \item Eigenständiger Texteditor, der für das Schreiben einer spezifischen Programmiersprache oder einer engen Auswahl an zusammenhängenden Programmiersprachen konzipierte wurde. Ein Beispiel dafür ist RStudio für R oder IntelliJ für Java. + \item Erweiterung eines schon existierenden Texteditors, der konzipiert wurde, um eine große Breite an Sprachen abzudecken. Visual Studio Code ist ein Beispiel für solch einen Texteditor. + \item Notebooks, die eine Ansammlung an Zellen mit ausführbarem Code oder Notizen, meist in Form von Markdown, bieten. Die Entwicklung von Code in Notebooks geschieht in einer iterativen und interaktiven Form. Diese kommen meist innerhalb des Data-Science Bereichs zum Einsatz \autocite{wuB2BridgingCode2020}. In der Praxis unterstützen Notebooks meist mehrere Sprachen oder sie können per Erweiterung hinzugefügt werden. \end{itemize} -Wir klassifizieren eine Auswahl an Entwicklungsumgebungen für Julia. Für jede Entwicklungsumgebung fassen wir auf ob deren Entwicklung noch aktiv verfolgt wird. Die Daten erhalten wir durch die Repositories der jeweiligen Projekte auf Github. Die Arbeit an einer \acs{IDE} klassifizieren wir als gestoppt oder pausiert, wenn seit Anfang des Jahres 2023 kein neuer Release erschienen ist. +Wir klassifizieren eine Auswahl an Entwicklungsumgebungen für Julia. Für jede Entwicklungsumgebung betrachten wir, ob deren Entwicklung noch aktiv erfolgt. Die Daten erhalten wir durch die Repositories der jeweiligen Projekte auf Github. Die Arbeit an einer \acs{IDE} klassifizieren wir als gestoppt oder pausiert, wenn seit Anfang des Jahres 2023 kein neuer Release erschienen ist. % abgerufen 16.06.2024 \begin{table}[h!] @@ -290,21 +291,21 @@ Wir klassifizieren eine Auswahl an Entwicklungsumgebungen für Julia. Für jede \end{footnotesize} \end{table} -Aus \autoref{table:ides} ist zu erkennen, dass die Unterstützung von Julia in Form von Notebooks weiterhin gewährleistet ist. Das bekannteste Beispiel sind \emph{Jupyter} Notebooks, dessen Name sich aus den Programmiersprachen \textbf{Ju}lia \textbf{Py}thon und \textbf{R} zusammensetzt \autocite{perkelJuliaComeSyntax2019}. Eine eigenständige Entwicklungsumgebung an der aktiv gearbeitet wird ist in unserer Auswahl nicht zu finden. Aus der Kategorie der \textit{Erweiterungen} wird alleinig Julia für Visual Studio Code unterstützt. Zu bemerken ist das die Programmiersprache Julia, sowie auch alle der genannten Entwicklungsumgebungen \acs{IDE} aus \autoref{table:ides} keiner proprietären Lizenz unterworfen ist \autocite{bezansonJuliaLanguageDocumentation}. Dies sorgt für eine hohe Zugänglichkeit +\autoref{table:ides} zeigt, dass die Unterstützung von Julia innerhalb von Notebooks weiterhin gewährleistet ist. Das bekannteste Beispiel ist das \emph{Jupyter} Notebook, dessen Name sich aus den Programmiersprachen Julia, Python und R zusammensetzt \autocite{perkelJuliaComeSyntax2019}. Eine eigenständige Entwicklungsumgebung, an der aktiv gearbeitet wird, ist in unserer Auswahl nicht zu finden. Aus der Kategorie der \textit{Erweiterungen} wird alleinig Julia für Visual Studio Code unterstützt. Zu bemerken ist, dass die Programmiersprache Julia, sowie auch alle anderen der genannten Entwicklungsumgebungen aus \autoref{table:ides}, keiner proprietären Lizenz unterworfen sind. Dies resultiert in einer hohen Zugänglichkeit für Nutzer. \section{Ergebnis} -Im Gesamtbild liegen die Stärken der Programmiersprache Julia in der überdurchschnittlichen Geschwindigkeit als Skriptsprache. Die Kombination mit einer guten Energieeffizienz trägt dazu bei, dass Julia als grüne Programmiersprache angesehen werden kann. Für sehr große numerische Berechnungen über mehrere Computer eignet sich Julia aufgrund der gegebenen Unterstützung durch Bibliotheken. Im Allgemeinen erkennen wir dass Julia eine wesentlich geringere Anzahl an Softwarepaketen aufgrund der kleineren Community aufweist. Für Funktionalitäten die noch in keinem vorherig veröffentlichten Julia-Paket untergebracht wurde muss selbst Hand angelegt werden oder auf eine andere Sprache umgestiegen werden. Das Starten eines größeren Entwicklungsprojektes wird aufgrund der Verfügbarkeit in Visual Studio Code stattfinden müssen, da restlichen Entwicklungsumgebung an denen aktuell entwickelt wird Notebooks sind. Notebooks eignen sich sehr gut für die spontane Darstellung und für ein \enquote{Proof of Concept} von Ideen. Die allgemeine Entwicklung wird durch recht hohe Kompilierzeiten beeinflusst. Der Entwicklungsstart verzögert sich mit zunehmender Größe an Abhängigkeiten, da diese im Vorhinein erst kompiliert werden müssen. Die Suchen von Fehlern im Debug-Prozess kann situationsbedingt einen hohen zeitlichen Anspruch in Kauf nehmen. Die Auswahl an Softwarepaketen decken die betrachteten Anwendungsfälle der fraktalen Geometrie (Fraktale Kurven, Mandelbrot-Menge, Julia-Menge und 3-dimensionale Fraktale) ab. Julia als Skriptsprache liefert Schnittstellen die viele technische Details abstrahieren und Programmierer sich während des Arbeitsprozesses auf die wesentliche Entwicklung fokussieren können. Julia wird seines Versprechen ein Werkzeug für numerisches Berechnen zur Erstellung von Visualisierungen im Bereich der fraktalen Geometrie gerecht.\\ +Im Gesamtbild liegen die Stärken der Programmiersprache Julia in ihrer überdurchschnittlichen Geschwindigkeit als Skriptsprache. Die Kombination mit einer guten Energieeffizienz trägt dazu bei, dass Julia als \enquote{grüne} Programmiersprache angesehen werden kann. Für umfangreich numerische Berechnungen über mehrere Computer eignet sich Julia aufgrund der gegebenen Unterstützung durch Bibliotheken. Im Allgemeinen erkennen wir, dass Julia eine wesentlich geringere Anzahl an Softwarepaketen aufgrund einer kleineren Community aufweist. Für Funktionalitäten, die noch in keinem vorherig veröffentlichten Julia-Paket untergebracht wird, muss selbst Hand angelegt werden oder auf eine andere Sprache umgestiegen werden. Das Starten eines größeren Entwicklungsprojektes wird aufgrund der Verfügbarkeit in Visual Studio Code stattfinden müssen. Alle anderen Entwicklungsumgebungen, an denen aktiv entwickelt wird, sind Notebooks. Notebooks eignen sich sehr gut für eine spontane Darstellung und für ein \enquote{Proof of Concept} von Ideen. Die allgemeine Entwicklung wird durch recht hohe Kompilierzeiten beeinflusst. Der Entwicklungsstart verzögert sich mit zunehmender Größe an Abhängigkeiten, da diese im Vorfeld erst kompiliert werden müssen. Das Suchen von Fehlern im Debug-Prozess kann situationsbedingt einen hohen zeitlichen Aufwand in Anspruch nehmen. Die Auswahl an Softwarepaketen deckt die betrachteten Anwendungsfälle der Fraktalen Geometrie (fraktale Kurven, Mandelbrot-Menge, Julia-Menge und Fraktale im 3-dimensionalen Raum) ab. Julia als Skriptsprache liefert Schnittstellen, die viele technische Details abstrahieren. Programmierer können sich während des Arbeitsprozesses auf die wesentliche Entwicklung fokussieren. Julia wird seines Versprechens, ein Werkzeug für numerische Berechnungen, zur Erstellung von Visualisierungen im Bereich der fraktalen Geometrie, gerecht.\\ -Aufgrund der eingeschränkten Zeit, die zur Erstellung dieses Artikels verfügbar ist konnte nur ein Performanz Test für die 3 Programmiersprachen Julia, Python und Java durchgeführt werden. Die Aufnahme weiterer Programmiersprachen wie die restlichen im Artikel aufgezählten Sprachen R, MATLAB und C liefert ein ausführlicheres Bild bezüglich der Vergleichbarkeit der Programmiersprachen untereinander. Die Messungen der Performanz-Test wurden auf einem fest gewählten Computer durchgeführt. Eine Durchführung auf einem weiteren Computer liefert eine zweite Menge an Messwerten die Aussagen über die Vergleichbarkeit der Messergebnisse bezüglich der verwendeten Hardware liefert. -Für die Performanz der jeweiligen Sprachen erhalten wir ein zeitliches Abbild, da neuere Versionen die Performanz optimalerweise anheben oder verschlechtern können. -Die Untersuchung der ausgewählten Entwicklungsumgebungen für Julia liefert auch ein temporäres Bild, da jederzeit die Entwicklung an einer Entwicklungsumgebung wieder neu gestartet werden kann oder andererseits auch zum Stillstand kommen kann. Unter anderem liefert die Auswahl der Entwicklungsumgebungen nur eine eingeschränkte Sicht auf die Realität. Die untersuchte Auswahl wurde aufgrund der Popularität der Entwicklungsumgebung getroffen, die wir keiner genauen Messung unterzogen haben. Entwicklern steht auch jederzeit die Möglichkeit offen, eine hier nicht aufgezählte Entwicklungsumgebung zu wählen. -Die Einschränkungen bezüglich einer getroffenen Auswahl ist auf die ausgewählten Softwarepakete übertragbar. Es existieren Pakete innerhalb des Julia-Paketverzeichnisses, die nicht untersucht wurden, aber auch Möglichkeiten zur Visualisierung von Fraktalen liefern. +Aufgrund der eingeschränkten Zeit, die zur Erstellung dieses Artikels verfügbar war konnte nur ein Performanz Test für die drei Programmiersprachen Julia, Python und Java durchgeführt werden. Die Aufnahme weiterer Programmiersprachen, wie die übrigen im Artikel aufgezählten Sprachen R, MATLAB und C, liefert ein ausführlicheres Bild bezüglich der Vergleichbarkeit der Programmiersprachen untereinander. Die Messung des Performanz-Tests wurde auf einem fest gewählten Computer durchgeführt. Eine Durchführung auf einem weiteren Rechner liefert eine zweite Menge an Messwerten, die Aussagen über die Vergleichbarkeit der Messergebnisse bezüglich der verwendeten Hardware liefert. +Für die Performanz der jeweiligen Sprachen erhalten wir ein zeitliches Abbild, da neuere Versionen die Performanz optimalerweise anheben oder verringern können. +Die Untersuchung der ausgewählten Entwicklungsumgebungen für Julia liefert auch ein temporäres Bild, da jederzeit die Entwicklung an einer Entwicklungsumgebung erneut gestartet werden kann oder im Gegensatz zum Stillstand kommen kann. Unter anderem liefert die Auswahl der Entwicklungsumgebungen eine eingeschränkte Sicht auf die Realität. Die untersuchte Auswahl wurde aufgrund der Popularität der Entwicklungsumgebung getroffen, die wir keiner genauen Messung unterzogen haben. Entwicklern steht auch jederzeit die Möglichkeit offen, eine hier nicht aufgezählte Entwicklungsumgebung zu wählen. +Die Einschränkungen bezüglich einer getroffenen Auswahl ist auf die ausgewählten Softwarepakete übertragbar. Es existieren Pakete innerhalb des Julia-Paketverzeichnisses, die nicht untersucht wurden, aber ebenfalls Möglichkeiten zur Visualisierung von Fraktalen liefern. \section{Ausblick} -Um die Popularität der Programmiersprache Julia zu steigern ist es wichtig, dass Nutzern gezeigt wird wie Sie die beste Performanz aus Julia herausholen können. Dieses Ziel kann mittels einer kontinuierlich guten Dokumentation erreicht werden \autocite{cabuttoOverviewJuliaProgramming2018}. Eine größere Nutzerbasis sorgt zudem für eine Weiterentwicklung bzw. Neuentwicklung von Werkzeugen und Paketen für das Julia Ecosystem. +Um die Popularität der Programmiersprache Julia zu steigern muss Nutzern gezeigt werden, wie sie die beste Performanz mit Julia erreichen können. Dieses Ziel kann mittels einer stetig guten bleibenden Dokumentation erreicht werden \autocite{cabuttoOverviewJuliaProgramming2018}. Eine größere Nutzerbasis sorgt zudem für eine Weiterentwicklung bzw. Neuentwicklung von Werkzeugen und Paketen für das Julia Ecosystem. Eine größere Auswahl an Werkzeugen gestaltet den Einstieg in Julia zunehmend attraktiver. % -------------------------------------------------------------------- \section*{Abkürzungen} @@ -328,7 +329,7 @@ Um die Popularität der Programmiersprache Julia zu steigern ist es wichtig, das \AtNextBibliography{\small} \printbibliography -\section*{Appendix} +\section*{Anhang} \addcontentsline{toc}{section}{Appendix} \subsection*{Code-Schnipsel}