Heim > Web-Frontend > js-Tutorial > Etrospektive

Etrospektive

Susan Sarandon
Freigeben: 2025-01-05 15:11:40
Original
921 Leute haben es durchsucht

Etrospektive

Ein Rückblick auf 2024 und eine Vorschau auf das kommende Jahr.

2024 war ein bahnbrechendes Jahr für stdlib, voller Fortschritt, Innovation und Community-Wachstum. Rückblickend bin ich beeindruckt, wie viel Zeit und Mühe die Mitglieder der stdlib-Community damit verbracht haben, bestehende APIs zu verfeinern, neue Funktionen zu entwickeln und den Grundstein für einen spannenden Weg zu legen, der vor ihnen liegt. Ich fühle mich unglaublich glücklich, Teil einer Community zu sein, die die Zukunft des wissenschaftlichen Rechnens im Web aktiv mitgestaltet, und ich bin optimistisch, dass wir in den kommenden Monaten weiterhin erfolgreich sein werden.

In diesem Beitrag werde ich einige wichtige Highlights zusammenfassen und einen Ausblick darauf geben, was uns für 2025 erwartet. Ich werde zwar verschiedene Grüße an einzelne Mitwirkende richten, aber nichts von dem, was wir dieses Jahr erreicht haben, wäre ohne das Ganze möglich gewesen stdlib-Community. Die Community war maßgeblich an der harten Arbeit beteiligt, die erforderlich war, um stdlib zum Erfolg zu führen, von der Suche und dem Patchen von Fehlern über die Überprüfung von Pull-Requests und die Triage von Problemen bis hin zum tiefen Eintauchen in die Grundlagen numerischer Algorithmen und des Software-Designs. Wenn ich Sie nicht namentlich erwähne, seien Sie sich bitte darüber im Klaren, dass Ihre Bemühungen anerkannt und sehr geschätzt werden. Ein großes Dankeschön an alle Beteiligten und an alle, die auf dem Weg dorthin geholfen haben, im Großen und Kleinen. ❤️

TL;DR

Das vergangene Jahr war für stdlib ein transformatives Jahr, das von erheblichem Wachstum, Innovation und Community-Beiträgen geprägt war. Zu den wichtigsten Highlights gehören:

  • Community-Wachstum: 84 neue Mitwirkende sind stdlib beigetreten, was die Größe unserer Entwickler-Community verdreifacht und über 4.000 Commits, 2.200 Pull-Requests und die Veröffentlichung von 500 neuen Paketen vorangetrieben hat.
  • Google Summer of Code: Vier außergewöhnliche Mitwirkende haben dazu beigetragen, wichtige Projekte voranzutreiben, darunter verbesserte REPL-Funktionen, erweiterte BLAS-Unterstützung und neue mathematische APIs.
  • Verbesserte Entwicklertools: Zu den großen Fortschritten bei der Automatisierung gehörten die automatisierte Erstellung von Änderungsprotokollen, verbesserte CI-Workflows und eine bessere Nachverfolgung der Testabdeckung.
  • Technische Meilensteine: Es wurden erhebliche Fortschritte in der linearen Algebra (BLAS und LAPACK), der ausgefallenen Indizierung, der WebAssembly-Integration und der C-Implementierung mathematischer Funktionen erzielt, die alle darauf abzielten, JavaScript zu einer erstklassigen Sprache für das wissenschaftliche Rechnen zu machen.
  • Zukunftsvision: Mit Blick auf das Jahr 2025 wollen wir unsere Mathematikbibliotheken erweitern, die REPL-Interaktivität verbessern, WebGPU erforschen und weiterhin Tools entwickeln, um wissenschaftliches Rechnen im Web leistungsfähiger und zugänglicher zu machen.

Mit dem schnellen Wachstum von stdlib und den gemeinsamen Anstrengungen unserer globalen Gemeinschaft gestalten wir die Zukunft des wissenschaftlichen Rechnens im Web. Begleiten Sie uns auf den nächsten Schritten dieser aufregenden Reise!

Statistiken

Zum Auftakt einige hochkarätige Jahresendstatistiken. Dieses Jahr

  • 84 neue Mitwirkende aus der ganzen Welt haben sich stdlib angeschlossen, die Größe unserer Entwickler-Community verdreifacht und dem Projekt neues Leben und neue Perspektiven verliehen.
  • Gemeinsam haben wir über 4000 Commits für den Hauptentwicklungszweig durchgeführt.
  • Wir haben fast 2200 Pull-Anfragen geöffnet, wobei über 1600 dieser Pull-Anfragen zusammengeführt wurden.
  • Und wir haben im Rahmen des Projekts über 500 neue Pakete ausgeliefert, die von neuen linearen Algebra-Routinen über spezielle mathematische Funktionen bis hin zur grundlegenden Infrastruktur für mehrdimensionale Arrays und APIs reichen, die WebAssembly und andere beschleunigte Umgebungen unterstützen.

Diese Erfolge spiegeln die harte Arbeit und das Engagement unserer Gemeinschaft wider. Es war ein arbeitsreiches Jahr und wir mussten kritisch darüber nachdenken, wie wir das Projekt und unsere Community effektiv skalieren können, während beide weiter wachsen. Dies bedeutete, in Tools und Automatisierung zu investieren, unsere Überprüfungs- und Freigabeprozesse zu verbessern und Wege zu finden, um neue Mitwirkende schnell zu identifizieren und weiterzubilden.

Google Summer of Code

Das einzige Ereignis, das stdlib im Jahr 2024 wirklich in Schwung gebracht hat, war unsere Aufnahme in den Google Summer of Code (GSoC). Wir hatten uns bereits 2023 beworben, wurden aber abgelehnt. Als wir uns im Jahr 2024 beworben haben, dachten wir also nicht, dass wir große Chancen hätten. Zu unserer großen Überraschung und Freude wurde stdlib akzeptiert, was uns zu einer wahnsinnigen Anstrengung veranlasste, unsere Angelegenheiten in den Griff zu bekommen, damit wir den Zustrom an kommenden Mitwirkenden bewältigen konnten.

GSoC war letztendlich eine transformative Erfahrung für stdlib, die talentierte Mitwirkende anlockte und wichtige Projekte voranbrachte. Wie wir in unserer GSoC-Reflexion ausführlich dargelegt haben, war der Weg holprig, aber wir haben viel gelernt und kamen auf der anderen Seite wieder heraus. Unnötig zu erwähnen, dass wir großes Glück hatten, vier wirklich hervorragende GSoC-Mitwirkende zu haben: Aman Bhansali, Gunj Joshi, Jaysukh Makvana und Snehil Shah. Ich werde in den folgenden Abschnitten noch etwas mehr über ihre Arbeit sagen.

ERSATZ

Die Read-Eval-Print-Schleife (REPL) von Node.js ist in der JavaScript-Welt oft so etwas wie ein nachträglicher Einfall, der sowohl zu wenig genutzt als auch unterschätzt wird. Schon in den Anfängen von stdlib wollten wir ein besseres REPL-Erlebnis mit integrierter Unterstützung für die wissenschaftlichen Rechen- und Datenverarbeitungsfunktionen von stdlib schaffen. Die Entwicklung der stdlib REPL verlief in Etappen, aber es bestand immer das Ziel, die Leistung und den Funktionsumfang von Pythons IPython zu erreichen, um eine interaktive explorative Datenanalyse in JavaScript zu ermöglichen. Wir waren daher ziemlich aufgeregt, als Snehil Shah Interesse an der Arbeit an der stdlib REPL als Teil von GSoC bekundete.

Snehil hat einige seiner Arbeiten bereits in einem früheren Blogbeitrag zum Thema „Welcome Colors to the REPL!“ behandelt, aber die Arbeit von ihm und anderen deckte noch viel mehr ab. Ein paar Highlights:

  • Vorschau der Vervollständigungen: Bei der Eingabe von Zeichen, die mit einem bekannten Symbol in der REPL übereinstimmen, wird jetzt eine Vervollständigungsvorschau angezeigt, die die automatische Vervollständigung erleichtert und Entwicklern wertvolle Tastenanschläge erspart. Ein besonderer Dank geht an Tudor Pagu, der dies hinzugefügt hat!
  • Mehrzeilige Bearbeitung: Bevor die Unterstützung für die mehrzeilige Bearbeitung hinzugefügt wurde, unterstützte die REPL mehrzeilige Eingaben, unterstützte jedoch nicht die Bearbeitung zuvor eingegebener Zeilen, was oft zu einer frustrierenden Benutzererfahrung führte. Jetzt unterstützt die REPL die mehrzeilige Bearbeitung innerhalb des Terminals, ähnlich wie bei dedizierten Editoranwendungen.
  • Paginierung langer Ausgaben: Eine seit langem bestehende Funktionsanfrage besteht darin, der stdlib REPL Unterstützung für so etwas wie weniger/mehr hinzuzufügen. Wenn ein Befehl bisher eine lange Ausgabe erzeugte, konnte ein Benutzer mit einer Textwand konfrontiert werden. Dieses Problem wurde nun behoben, mit der Hoffnung, in den kommenden Monaten erweiterte, weniger ähnliche Suchfunktionen hinzufügen zu können.
  • Einfügen in Klammern: Einfügen mehrzeiliger Eingaben in die REPL, mit der die Eingabe Zeile für Zeile ausgeführt wird, anstatt sie als einzelne Eingabeaufforderung einzufügen. Obwohl dies in einigen Fällen nützlich ist, ist dies oft nicht die gewünschte Absicht, insbesondere wenn ein Benutzer mehrzeilige Eingaben vor der Ausführung einfügen und bearbeiten möchte.
  • Benutzerdefinierte Syntax-Hervorhebungsthemen: Entwickler, die es gewohnt sind, in IDEs zu entwickeln, fühlen sich oft hilflos, wenn sie zu einem Terminal wechseln, dem einige der Feinheiten ihres Lieblingseditors fehlen. Eine dieser Feinheiten ist die Syntaxhervorhebung. Dementsprechend haben wir daran gearbeitet, Unterstützung für benutzerdefinierte Designs hinzuzufügen, wie in Snehils Blogbeitrag beschrieben.
  • Auto-Pairing: Eine weitere häufige IDE-Funktionalität ist das automatische Schließen von Klammern und Anführungszeichen, wodurch Tastenanschläge eingespart und die gefürchteten fehlenden Klammern vermieden werden. Snehil war nie einer, der vor einer schwierigen Aufgabe zurückschreckte, und implementierte die Unterstützung für Auto-Pairing als einen seiner ersten Pull-Requests im Vorfeld von GSoC.

Vor allem dank Snehils Arbeit sind wir im Jahr 2024 der IPython-Parität viel näher gekommen und haben so die JavaScript-Erfahrung für das wissenschaftliche Rechnen verändert. Und wir sind noch nicht fertig. Wir haben immer noch Pull-Anfragen, die sich durch die Warteschlange arbeiten, und eine Sache, die mich besonders begeistert, ist, dass wir vor Kurzem damit begonnen haben, die Möglichkeit zu prüfen, Unterstützung für das Jupyter-Protokoll hinzuzufügen. Seien Sie gespannt auf weitere REPL-Neuigkeiten im Jahr 2025!

BLAS

Ein weiterer Schwerpunkt war die Weiterentwicklung der BLAS-Unterstützung (Basic Linear Algebra Subprograms) von stdlib , das grundlegende APIs für gängige Operationen der linearen Algebra bereitstellt, wie z. B. Vektoraddition, Skalarmultiplikation, Punktmultiplikation Produkte, Linearkombinationen und Matrizenmultiplikation. Zu Beginn des Jahres 2024 war die BLAS-Unterstützung in stdlib eher unvollständig, insbesondere im Hinblick auf die Unterstützung komplexwertiger Gleitkomma-Datentypen. Das Blatt begann sich zu ändern, als Jaysukh Makvana sich bemühte, Funktionsparität der Datenstrukturen Complex64Array und Complex128Array von stdlib mit integrierten JavaScript-typisierten Arrays zu erreichen.

Diese Bemühungen ebneten anschließend den Weg für die Hinzufügung von BLAS-Unterstützung der Stufe 1 für komplexwertige typisierte Array-Datentypen und die Arbeit von Aman Bhansali, der sich für die weitere BLAS-Unterstützung der Stufen 2 und 3 in stdlib einsetzte. Nachdem er sich zunächst auf BLAS-Strided-Array-Schnittstellen auf niedrigerer Ebene konzentriert hatte, erweiterte Aman seinen Anwendungsbereich durch das Hinzufügen von WebAssembly-Implementierungen und durch die Unterstützung für die Anwendung von BLAS-Operationen auf Stapel von Matrizen und Vektoren über mehrdimensionale Array-APIs (auch bekannt als ndarray) höherer Ebenen.

Zusätzlich zu herkömmlichen BLAS-Routinen enthält stdlib BLAS-ähnliche Routinen, die nicht Teil des Referenz-BLAS sind. Zu diesen Routinen gehören APIs für alternative skalare und kumulative Summationsalgorithmen, das Sortieren von Strided-Arrays, das Füllen und Manipulieren von Strided-Array-Elementen, die explizite Handhabung von NaN-Werten und andere Operationen, die nicht direkt unter das Banner der linearen Algebra fallen, aber bei der Arbeit üblich sind mit Daten.

Während Amans BLAS-Arbeit haben wir BLAS-Implementierungen bereinigt und umgestaltet, und Muhammad Haris hat sich freiwillig gemeldet, diese Bemühungen auf unsere erweiterten BLAS-Routinen auszuweiten. Seine Bemühungen umfassten die Migration der nativen Add-ons von Node.js auf reines C, um den Boilerplate zu reduzieren und unsere umfangreiche Sammlung von C-Makros für die Erstellung nativer Add-ons zu nutzen, und umfassten außerdem das Hinzufügen dedizierter C-APIs, um die Schnittstelle mit den ndarrays von stdlib zu erleichtern.

Diese Entwicklungen stellen sicher, dass stdlib weiterhin führend in der linearen Algebra-Unterstützung für JavaScript-Entwickler ist und leistungsstarke Tools für numerische Berechnungen bietet. Obwohl bereits viel erledigt wurde, bleibt noch viel zu tun, und BLAS wird auch im Jahr 2025 ein Schwerpunkt sein.

LAPACK

Aufbauend auf der BLAS-Arbeit im Rahmen eines Praktikums bei Quansight Labs arbeitete Pranav Goswami daran, den Grundstein für LAPACK (Linear Algebra Pack) zu legen age)-Unterstützung in stdlib, um lineare Algebra-Routinen höherer Ordnung zum Lösen linearer Gleichungssysteme bereitzustellen, Eigenwertprobleme, Matrixfaktorisierung und Singulärwertzerlegung. In seinem Blogbeitrag nach dem Praktikum ging Pranav ausführlicher darauf ein, einen Ansatz zum Testen und Dokumentieren hinzugefügter Implementierungen zu etablieren und die Ideen von BLIS zu nutzen, um LAPACK-Schnittstellen zu erstellen, die die Schnittstelle zu den ndarrays von stdlib erleichterten und so Datenbewegungen und Speicheranforderungen minimierten. Während viel Zeit damit verbracht wurde, die Probleme zu lösen und das API-Design zu iterieren, machte Pranav erhebliche Fortschritte beim Hinzufügen verschiedener Implementierungsdienstprogramme und fast 30 häufig verwendeter LAPACK-Routinen. Angesichts der enormen Größe von LAPACK (~1700 Routinen) wird diese Arbeit in absehbarer Zukunft weitergehen, also halten Sie in den kommenden Monaten Ausschau nach weiteren Updates!

Als Kurzbemerkung: Wenn Sie mehr darüber erfahren möchten, wie stdlib die Schnittstelle zu Fortran-Bibliotheken angeht, von denen viele immer noch das Fundament des modernen numerischen Rechnens bilden, schauen Sie sich unbedingt Pranavs Blog-Beitrag zum Aufrufen von Fortran-Routinen an JavaScript mit Node.js.

C-Implementierungen spezieller mathematischer Funktionen

Eine der langjährigen Prioritäten von stdlib ist die Weiterentwicklung seiner vektorisierten Routinen für gängige mathematische und statistische Operationen. Während alle skalaren mathematischen Kernel (z. B. transzendente Funktionen wie Sin, Cos, Erf, Gamma usw. und statistische Verteilungsdichtefunktionen) über JavaScript-Implementierungen verfügen, fehlten vielen Kerneln entsprechende C-Implementierungen, die für eine schnellere Leistung erforderlich sind Node.js und andere serverseitige JavaScript-Laufzeiten, die native Bindungen unterstützen.

Gunj Joshi und andere versuchten, diese Lücke zu schließen und öffneten über 160 Pull-Requests und fügten dedizierte C-Implementierungen hinzu. Zu diesem Zeitpunkt sind nur noch einige der am häufigsten verwendeten transzendentalen Funktionen mit doppelter Genauigkeit übrig (schauen Sie sich Betainc an!). Die Bemühungen haben sich nun darauf konzentriert, die Unterstützung für einfache Genauigkeit zu vervollständigen und C-Implementierungen für statistische Verteilungsfunktionen hinzuzufügen. Wir gehen davon aus, dass diese Arbeit in der ersten Hälfte des Jahres 2025 fortgesetzt wird, bevor wir unsere Aufmerksamkeit auf höherstufige Strided-Array- und Ndarray-APIs mit Implementierungen sowohl für WebAssembly als auch für die nativen Node.js-Add-ons richten.

Ausgefallene Indizierung

Ein weiterer Bereich, in dem wir erhebliche Fortschritte erzielt haben, ist die Verbesserung der Ergonomie beim Slicing und der Array-Manipulation. Benutzer numerischer Programmiersprachen wie MATLAB und Julia sowie spezieller numerischer Rechenbibliotheken wie NumPy genießen seit langem die Vorteile einer präzisen Syntax zum Ausdruck von Operationen, die nur eine Teilmenge von Array-Elementen betreffen. Das folgende Snippet zeigt beispielsweise, wie jedes andere Element in einem Array mit NumPy auf Null gesetzt wird.

import numpy as np

# Create an array of ones:
x = np.ones(10)

# Set every other element to zero:
x[::2] = 0.0
Nach dem Login kopieren

Als Sprache bietet JavaScript keine so praktische Syntax, was Benutzer dazu zwingt, entweder ausführlichere Objektmethoden oder manuelle For-Schleifen zu verwenden. Wir haben daher versucht, diese Lücke zu schließen, indem wir Proxy-Objekte genutzt haben, um „ausgefallene Indizierung“ zu unterstützen. Während die Verwendung von Proxy-Objekten aufgrund der Eigenschaftsumleitung einen gewissen Leistungsaufwand mit sich bringt, müssen Sie jetzt nur noch ein einziges Paket installieren und importieren, um alle Vorteile des Slicings im Python-Stil in JavaScript zu nutzen, wodurch die Notwendigkeit ausführlicher for-Schleifen und der Erstellung von Arrays entfällt Handhabung deutlich ergonomischer.

import array2fancy from '@stdlib/array-to-fancy';

// Create a plain array:
const x = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

// Turn the plain array into a "fancy" array:
const y = array2fancy( x );

// Select the first three elements:
const v = y[ ':3' ];
// returns [ 1, 2, 3 ]

// Select every other element, starting from the second element:
v = y[ '1::2' ];
// returns [ 2, 4, 6, 8 ]

// Select every other element, in reverse order, starting with the last element:
v = y[ '::-2' ];
// returns [ 8, 6, 4, 2 ]

// Set all elements to the same value:
y[ ':' ] = 9;

// Create a shallow copy by selecting all elements:
v = y[ ':' ];
// returns [ 9, 9, 9, 9, 9, 9, 9, 9 ]
Nach dem Login kopieren

Zusätzlich zur Slice-Semantik fügte Jaysukh der stdlib Unterstützung für boolesche Arrays hinzu und legte damit den Grundstein für die Boolesche Array-Maskierung.

import BooleanArray from '@stdlib/array-bool';
import array2fancy from '@stdlib/array-to-fancy';

// Create a plain array:
const x = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

// Turn the plain array into a "fancy" array:
const y = array2fancy( x );

// Create a shorthand alias for creating an array "index" object:
const idx = array2fancy.idx;

// Create a boolean mask array:
const mask = new BooleanArray( [ true, false, false, true, true, true, false, false ] );

// Retrieve elements according to the mask:
const z = x[ idx( mask ) ];
// returns [ 1, 4, 5, 6 ]
Nach dem Login kopieren

Anschließend haben wir unsere Erkenntnisse angewendet, als wir die Unterstützung für die Boolesche Array-Maskierung hinzugefügt haben, um Unterstützung für die Indizierung von Ganzzahl-Arrays hinzuzufügen.

import Int32Array from '@stdlib/array-int32';
import array2fancy from '@stdlib/array-to-fancy';

// Create a plain array:
const x = [ 1, 2, 3, 4, 5, 6, 7, 8 ];

// Turn the plain array into a "fancy" array:
const y = array2fancy( x );

// Create a shorthand alias for creating an array "index" object:
const idx = array2fancy.idx;

// Create an integer array:
const indices = new Int32Array( [ 0, 3, 4, 5 ] );

// Retrieve selected elements:
const z = x[ idx( indices ) ];
// returns [ 1, 4, 5, 6 ]
Nach dem Login kopieren

Während das Obige die ausgefallene Indizierung mit integrierten JavaScript-Array-Objekten demonstriert, haben wir das Konzept der ausgefallenen Indizierung kürzlich auf stdlib ndarrays ausgeweitet, ein Thema, über das wir in einem zukünftigen Blogbeitrag mehr zu sagen haben.

Natürlich freuen wir uns besonders über diese Entwicklungen, da wir davon überzeugt sind, dass sie das Benutzererlebnis des interaktiven Computings und der explorativen Datenanalyse in JavaScript erheblich verbessern werden.

Testen und bauen

Schließlich war 2024 ein Jahr der Automatisierung, und ich wäre nachlässig, wenn ich die Bemühungen von Philipp Burckhardt nicht erwähnen würde. Philipp war maßgeblich an der Verbesserung unserer CI-Build- und Testinfrastruktur und der Verbesserung der Gesamtskalierbarkeit des Projekts beteiligt. Seine Arbeit war produktiv, aber es gibt ein paar wichtige Highlights, die ich hervorheben möchte.

  • Automatische Changelog-Generierung: Philipp leitete das Projekt hin zur Verwendung herkömmlicher Commits, einer standardisierten Methode zum Hinzufügen von menschen- und maschinenlesbarer Bedeutung für Commit-Nachrichten, und baute anschließend einen robusten Satz von Tools für die Durchführung automatischer Releases auf, die umfassende Generierungen ermöglichen Änderungsprotokolle und die Koordinierung der Veröffentlichung des ständig wachsenden stdlib-Ökosystems mit über 4000 eigenständigen Paketen. Was früher ein manueller Freigabeprozess war, kann jetzt durch die Ausführung eines einzigen GitHub-Workflows erledigt werden.
  • stdlib-Bot: Philipp hat einen GitHub-Pull-Request-Bot erstellt, um Pull-Request-Überprüfungsaufgaben zu automatisieren, hilfreiche Nachrichten zu veröffentlichen und die allgemeine Entwicklungserfahrung für Betreuer zu verbessern. In den kommenden Monaten sind wir besonders daran interessiert, die Funktionalität des Bots zu erweitern, um das Onboarding neuer Mitwirkender zu unterstützen und häufige Beitragsprobleme zu melden.
  • Automatisierung der Testabdeckung: Bei einem Projekt der Größe von stdlib ist es einfach nicht möglich, die gesamte Testsuite bei jedem Commit und für jede Pull-Anfrage auszuführen. Daher kann es schwierig sein, einzelne Pakettestabdeckungsberichte zusammenzufügen, um einen Gesamtüberblick über die gesamte Testabdeckung zu erhalten. Philipp arbeitete an der Lösung dieses Problems, indem er eine Automatisierungspipeline zum Hochladen einzelner Testabdeckungsberichte in ein dediziertes Repository erstellte, mit Unterstützung für die Verfolgung von Abdeckungsmetriken im Zeitverlauf und die Erstellung erwarteter Testabdeckungsänderungen für jede eingereichte Pull-Anfrage. Unnötig zu erwähnen, dass dies unsere Transparenz der Testabdeckungsmetriken drastisch verbessert und dazu beigetragen hat, unser Vertrauen in Tests zu stärken, die übermittelte Pull-Anfragen begleiten.

Obwohl wir bei unseren Projektautomatisierungstools erhebliche Fortschritte gemacht haben, scheint es uns nie an Ideen für weitere Automatisierungs- und Toolverbesserungen zu mangeln. Erwarten Sie im Jahr 2025 mehr! ?

Schauen Sie nach vorne

Was erwartet uns also im Jahr 2025?! Freut mich, dass du gefragt hast!

Wir haben in den obigen Abschnitten bereits auf verschiedene Initiativen hingewiesen, aber im Großen und Ganzen planen wir, unsere Bemühungen im kommenden Jahr hier zu konzentrieren:

  • GSoC 2025: Vorausgesetzt, Google führt sein jährliches Google Summer of Code-Programm durch und wir haben das Glück, erneut angenommen zu werden, würden wir die nächste Generation von Open-Source-Mitwirkenden gerne weiterhin unterstützen.
  • Mathe- und Statistik-C-Implementierungen: Erweiterung unserer Bibliothek skalarer Mathematik- und Statistikkerne und Gewährleistung der Parität mit doppelter und einfacher Genauigkeit.
  • BLAS: Vervollständigung unserer WebAssembly-Distribution und übergeordneter APIs für den Betrieb mit Stapeln von Matrizen und Vektoren.
  • LAPACK: weiterhin an den ca. 1700 LAPACK-Routinen (!) arbeiten.
  • FFTs: Hinzufügen der anfänglichen Unterstützung für die schnelle Fourier-Transformation (FFT) zu stdlib, um die Freischaltung von Algorithmen für die Signalverarbeitung zu erleichtern.
  • Vektorisierte Operationen: Automatisierung der Paketerstellung für vektorisierte Operationen über skalare Mathematik- und Statistikkerne.
  • ndarray-API-Parität: Erweiterung der Benutzerfreundlichkeit und Vertrautheit von ndarrays durch Erreichen von API-Parität mit integrierten JavaScript-Arrays und typisierten Arrays.
  • REPL: Unterstützung für das Jupyter-Protokoll und verschiedene Verbesserungen der Benutzerergonomie hinzugefügt.
  • WebGPU: Obwohl wir uns offiziell nicht auf einen bestimmten Ansatz festgelegt haben, sind wir daran interessiert, zumindest die Unterstützung für WebGPU zu prüfen, einen neuen Webstandard, der es Webseiten ermöglicht, die Grafikverarbeitungseinheit (GPU) eines Geräts effizient zu nutzen , auch für allgemeine GPU-Berechnungen, um APIs für beschleunigtes wissenschaftliches Rechnen im Web bereitzustellen.
  • Projektfinanzierung: Erkundung und hoffentlich Sicherung der Projektfinanzierung, um die Entwicklungsbemühungen zu beschleunigen und das weitere Wachstum der stdlib-Community zu unterstützen.

Das ist auf jeden Fall eine Menge, und es wird ein Dorf brauchen – eine Gemeinschaft von Menschen, die sich unserer Mission verschrieben haben, das Web zu einer erstklassigen Plattform für numerisches und wissenschaftliches Rechnen zu machen. Wenn Sie bereit sind, gemeinsam mit uns die Zukunft des wissenschaftlichen Rechnens im Internet zu gestalten, würden wir uns über Ihre Teilnahme freuen. Sehen Sie sich unseren Beitragsleitfaden an, um zu erfahren, wie Sie sich engagieren können.

Eine persönliche Anmerkung

Mit Blick auf die Zukunft möchte ich eine persönliche Reflexion darüber teilen, was dieses Jahr für mich bedeutet hat. Angesichts unseres Wachstums in diesem Jahr hatte ich oft das Gefühl, aus einem Feuerwehrschlauch zu trinken. Und ehrlich gesagt kann es schwer sein, nicht auszubrennen, wenn man Tag für Tag mit über 100 neuen Benachrichtigungen und Nachrichten von Leuten aufwacht, die Rat, Antworten auf Fragen und geprüfte Pull-Requests wünschen. Aber wenn ich an das vergangene Jahr zurückdenke, bin ich unheimlich stolz auf das, was wir erreicht haben, und es macht mir besonders Mut, wenn ich sehe, wie Mitwirkende, die neu bei Open Source sind, wachsen und gedeihen, wobei sie manchmal die Lektionen, die sie gelernt haben, als Sprungbrett dafür nutzen Traumjobs und Möglichkeiten. Das Glück zu haben, dies zu sehen, ist eine treibende Motivation und ein Privileg in der größeren Welt von Open Source, das ich nach besten Kräften nicht als selbstverständlich ansehe.

Und damit ist die Retrospektive 2024 abgeschlossen. Wenn wir auf alles zurückblicken, was wir gemeinsam erreicht haben, war die Zukunft des wissenschaftlichen Rechnens im Web noch nie so rosig! Nochmals vielen Dank an alle Beteiligten, die auf diesem Weg mitgeholfen haben. Der vor uns liegende Weg ist voller spannender Möglichkeiten und wir können es kaum erwarten zu sehen, was wir im Jahr 2025 gemeinsam erreichen werden. Vorwärts und aufwärts! ?


stdlib ist ein Open-Source-Softwareprojekt, das sich der Bereitstellung einer umfassenden Suite robuster, leistungsstarker Bibliotheken widmet, um die Entwicklung Ihres Projekts zu beschleunigen und Ihnen die Gewissheit zu geben, dass Sie auf fachmännisch erstellte, qualitativ hochwertige Software angewiesen sind.

Wenn Ihnen dieser Beitrag gefallen hat, geben Sie uns einen Stern? auf GitHub und überlegen Sie, das Projekt finanziell zu unterstützen. Ihre Beiträge und Ihre kontinuierliche Unterstützung tragen dazu bei, den langfristigen Erfolg des Projekts sicherzustellen und werden sehr geschätzt!

Das obige ist der detaillierte Inhalt vonEtrospektive. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage