Wenn nicht, ist es möglich, eine ungefähre Schätzung der Größenordnung anzugeben, wie lange ich warten soll, bevor ich erneut darüber nachdenke?
Meine grobe Schätzung in der Größenordnung, wie lange es dauert, Computer-Wissenschaftssprachen zu entwickeln, liegt bei etwa einem Jahrzehnt.
Beispiel 1: SciPy wurde im Jahr 2001 oder so gestartet. Im Jahr 2009 wurde Scipy 0.7.0 veröffentlicht, und der ODE-Integrator verfügte über eine Schnittstelle zu VODE (was ode15s
ungefähr gleichwertig ode15s
ist mit NDF-basiert, VODE ist abhängig von BDF / Adams-Bashforth). Mit SciPy 0.10.0, einer Schnittstelle zu dopri5
MATLAB ode45
, einer Runge-Kutta-Methode 4. Ordnung, wird sie in der Regel als erste praktische numerische Integrationsmethode für Studenten eingeführt. SciPy 0.10.0 wurde im Dezember 2011 veröffentlicht, und es dauerte ungefähr 10 Jahre, bis sie eine Funktion von MATLAB enthielten, die jedem mir bekannten Ingenieurstudenten vorgestellt wurde.
Beispiel 2: Mathworks wurde 1984 gegründet. In ihrer ersten Version verwendeten sie einen LAPACK-Port für C namens JACKPAC (nach Jack Little, einem MathWorks-Ingenieur, der es geschrieben hat). Sie haben es erst 2000 durch LAPACK ersetzt.
Julia braucht vielleicht weniger Zeit, aber ich würde davon ausgehen, dass sie sich in etwa 10 Jahren zum Mainstream entwickelt. (Es ist schon ein Jahr oder so gewesen; vielleicht 9-10 Jahre dann?)
Ist Julias Bibliothekssystem in diesen Bereichen vollständig entwickelt? Ist die API insbesondere für diese Art von Aktivitäten mehr oder weniger stabil, oder stelle ich fest, dass mein alter Code nach dem Upgrade auf eine neue Version von Julia zum Absturz neigt?
Ich benutze Julia nicht, also nimm was ich sage mit einem Körnchen Salz, da ich nur Jeff Bezanson gesehen habe, der Präsentationen über Julia hält. Sie haben sich nach hinten gebeugt, um das Verknüpfen und Verwenden von Bibliotheken aus C, Python und Fortran zu vereinfachen. Wenn Sie keine Julia-Bibliothek finden, die das tut, was Sie wollen, schreiben Sie eine Julia-Beilage für eine Bibliothek in einer etablierteren Sprache. Daher denke ich nicht, dass ein Mangel an Bibliotheken ein Problem sein wird. Ich denke, ein Anliegen wird es sein, sicherzustellen, dass Änderungen an den wichtigsten Sprachfunktionen Sie nicht in den Arsch beißen. Wenn Sie sich die Meilensteine im Julia Git-Repo ansehen, werden Sie feststellen, dass das Tag "breaking" häufig verwendet wird (12-mal in der Version 0.2, 5-mal in der Version 0.3). Für mich deutet das darauf hin, dass sich die Kernsprache noch weiterentwickelt, weshalb ich zögere, die Sprache jetzt zu verwenden.
EDIT: Aurelius bringt einen guten Punkt:
Was lässt Sie vermuten, dass Julia jemals zum Mainstream wird und nicht wie so viele andere Sprachen im Dunkeln stirbt? SciPy / numpy hatte / hat die Unterstützung einer ständig wachsenden Python-Community, die Julia nicht hat.
In der ursprünglichen Antwort habe ich beschlossen, die Frage zu vermeiden: "Wird es Julia gelingen, Mainstream zu werden?" so viel wie möglich. Scheitern ist einfach; Erfolg ist schwierig. Ich denke, der beste Vergleich von Julia ist mit technischen Computersprachen wie MATLAB, R und Octave. HPC-Sprachen (Chapel, Fortress, UPC usw.) haben eine engere Zielgruppe als technische Computersprachen, und Mehrzwecksprachen (C, Python, C ++ usw.) haben eine breitere Zielgruppe als technische Computersprachen.
Etwas, von dem ich denke, dass es Julia hilft, Design für Leistung zu entwickeln, ohne die Ausdruckskraft zu beeinträchtigen. Julia ist mit kompilierten Sprachen wie C viel konkurrenzfähiger als MATLAB, R oder sogar Python. Dieses Entwurfsziel ist auch eine Funktion, die Personen aus vorhandenen Sprachen ansprechen kann, z.
- Menschen, die viel Wert auf Leistung legen und aus Sprachen wie C und Fortran stammen, aber bereit sind, ein kleines Stück Leistung (möglicherweise den Faktor 2) zu opfern, um von kompilierter Sprache zu weniger Zeilen interpretierter Sprache zu wechseln (zusammen mit einer REPL für schnelleres Entwickeln und Testen).
- Menschen, die Wert auf hohe Produktivität legen und aus Sprachen wie Python, R und MATLAB stammen, aber mehr Leistung wünschen. Bei der Ausführung sind pure Python, pure MATLAB und pure R langsam. Entwickler in diesen Sprachen haben sich sehr bemüht, Bibliotheken in kompilierte Sprachen zu packen, aber Sie können nicht alles packen, und irgendwann wird die Kernsprache Sie verlangsamen. Core Julia ist schneller, wodurch Sie mehr Wissenschaft schneller machen können.
- Menschen, die sich für freie Software interessieren. Julia ist interpretiert und frei (so wie Python, Octave usw.); MATLAB ist nicht.
Julia versucht auch, Parallelität zu erleichtern; Ich fühle mich nicht besonders qualifiziert, auf diesen Punkt einzugehen, und ich denke nicht, dass dies die Hauptattraktion der Sprache ist, aber ich denke, es ist ein Verkaufsargument, an dem sie arbeiten, und ich hoffe, andere können Licht ins Dunkel bringen.
Doch auch mit technischen Verdiensten müssen die Sprachschöpfer die nötigen Anstrengungen unternehmen, um die Sprache zu fördern und zu evangelisieren. Jeff Bezanson, Alan Edelman, Stephen Karpinski und Viral Shah arbeiten sehr hart daran, die Sprache zum Erfolg zu führen. Alan Edelman ist eng mit der Computerwissenschaft verbunden und hat bereits an Projekten auf Sprachniveau gearbeitet (insbesondere an der Star-P-Erweiterung für MATLAB). Jeff Bezanson hat die Konferenzschaltung durchgeführt, um Julia für eine Weile zu Computerwissenschaftlern und Ingenieuren zu befördern. Am MIT haben sie gute Arbeit geleistet, um Studenten und Mitarbeiter (insbesondere Steven G. Johnson) zu rekrutieren und Julia Bibliotheken hinzuzufügen. Sie haben einen Artikel in Wired und es ist ihnen gelungen, nach nur einem Jahr einen Wikipedia-Artikel für sich zu bekommen. Ihr Git-Repo hat Tausende von Sternen, Hunderte von Gabeln, und Hunderte von Uhren, so dass ihr Projekt für Open-Source-Standards ein Erfolg war. Ich denke, sie haben bis jetzt alles richtig gemacht, es geht also darum, diese Anstrengungen aufrechtzuerhalten und eine Gemeinschaft aufzubauen. Sie könnten immer noch scheitern, aber so weit zu kommen lässt mich vermuten, dass sie eine vernünftige Chance auf Erfolg haben.