Articles

-Knoten.js geht die Herausforderung von Ryan Dahls Deno

-Knoten an.js, die Open-Source-JavaScript-Laufzeit, hat letzte Woche ihre 15. Jetzt in seinem 11. Jahr, Knoten.js ist so beliebt wie eh und je, aber in 2020 ist ein aufstrebender Konkurrent aufgetaucht. Deno, eine Open-Source-JavaScript-Laufzeit, die im Mai veröffentlicht wurde, wurde von niemand anderem als Ryan Dahl — dem ursprünglichen Autor von Node – erstellt.js. Noch schlimmer als ein Konkurrent, der Ihr Produkt in- und auswendig kennt, wurde Deno speziell entwickelt, um das zu beheben, was Dahl als die Hauptschwächen von Node ansah.js – einschließlich Sicherheitsprobleme, Verwendung eines zentralen Repository-Systems (npm) und „schwerfällige Werkzeuge.“

Um herauszufinden, wie die aktuelle Generation von Knoten.js-Betreuer beschäftigen sich mit dem neuen Herausforderer — und im weiteren Sinne mit dem, was sie tun, um Dahls Kritik zu begegnen – Ich habe Bethany Griggs interviewt, Senior Software Engineer bei Red Hat und Node.Mitglied des js Technical Steering Committee. Griggs war an dem Knoten beteiligt.js-Projekt seit 2016, hauptsächlich mit dem Knoten.In: js Release Working Group.

Richard MacManus
Richard ist leitender Redakteur bei The New Stack und schreibt eine wöchentliche Kolumne über die nächsten Schritte im Cloud Native Internet. Zuvor gründete er ReadWriteWeb im Jahr 2003 und baute es zu einer der einflussreichsten Technologie-Nachrichten- und Analyseseiten der Welt auf.

Knoten.js ermöglicht es Entwicklern, JavaScript-Code außerhalb eines Webbrowsers auszuführen. Der ursprüngliche Zweck bestand darin, dynamische Webseiten auf einem Server zu erstellen, bevor sie an den Browser gesendet wurden. Allgemeiner gesagt, Knoten.js ist zum Standard für die Backend-Webprogrammierung geworden (während React und Angular für das Frontend verwendet werden). Die Idee ist, dass Entwickler dieselbe Sprache, JavaScript, sowohl für das Backend als auch für das Frontend verwenden können.

Knoten.js ist auch hoch skalierbar und verfügt über ein ereignisgesteuertes Programmiermodell, was es zu einer guten Lösung für Cloud-native Anwendungen gemacht hat.

„Knoten.js ist weiterhin eine der führenden Laufzeiten für die Erstellung von Cloud-nativen Microservices und Backend-Anwendungen „, sagte Griggs. Sie fügte hinzu: „Es ist auch für IoT—Projekte beliebt – eines meiner Lieblingsbeispiele ist die NASA mit Node.js zur Überwachung von Raumanzugdaten.“

Raumanzüge beiseite, Node.js wird nicht mehr als die heiße neue Sache der JavaScript-Entwicklung gesehen (Next.js, ein Frontend React Framework, hat vielleicht diesen Mantel genommen). Und verglichen mit der innovativen Natur von Deno — zum Beispiel wurde Deno in der trendigen neuen Programmiersprache Rust — the Node geschrieben.das Projekt folgt heutzutage einem relativ konservativen Entwicklungspfad. Es ist also keine Überraschung, dass Version 15 von Node.js ist ein inkrementelles Upgrade.

Griggs zitierte „Werfen standardmäßig auf unbehandelte Ablehnungen“ als das wichtigste Update in v15. Dies bedeutet, dass Entwickler jetzt „frühes Feedback erhalten können, dass sie die Behandlung eines Fehlers in ihrer Anwendung auslassen.“ Zweifellos ein wertvolles technisches Update, das jedoch wahrscheinlich keine begeisterte Diskussion auf Tech Twitter auslösen wird.

Als Reaktion auf Ryan Dahls Kritik

Was ich mehr neugierig war, war, ob der Knoten.welches Projektteam hat neue Entwicklungen oder Korrekturen vorgenommen, um einige der Bedenken auszuräumen, die Ryan Dahl in den letzten Jahren geäußert hat?

Vor ein paar Jahren hielt Dahl eine Präsentation über sein Bedauern nach der Erstellung von Node.js. Ein wichtiger war, dass er die Laufzeit nicht so sicher gemacht hat, wie er es hätte tun können — etwas, das er beim Erstellen von Deno angesprochen hat, das standardmäßig als „sicher“ beworben wird.“ Denos Sicherheitsansatz besteht darin, Sicherheitsgitter um den Datenzugriff zu legen; wie in seinem Handbuch beschrieben, „erfordert Deno explizite Berechtigungen für den Datei-, Netzwerk- und Umgebungszugriff.“

Ryan Dahl auf der JSConf EU 2018.

Diplomatisch hat Griggs mir das gesagt.js wird sich zu diesem und anderen Themen von Deno „inspirieren lassen“. Sie sagte jedoch, dass der Knoten.js project „hatte eine Geschichte von Diskussionen über die Durchsetzung der Sicherheit und die Einschränkung des Zugriffs auf APIs, bevor Deno angekündigt wurde.“ Sie wies auf einige „experimentelle Funktionen“ für die Sicherheit hin (Beispiel 1, Beispiel 2).

Außerdem ist Griggs nicht davon überzeugt, dass Denos Safety-First-Ansatz für den Zugriff für Node richtig ist.js. „Für praktische Anwendungen“, sagte sie, „müssten Sie schnell auf den Zugriff auf viele APIs zurückgreifen, sodass der Nettowert im Vergleich zur Komplexität gering wäre.“

Obwohl es Interesse unter dem Knoten gibt.das js-Projektteam experimentierte laut Griggs mit stärkeren Sicherheitsfunktionen: „Es gab keinen zwingenden Grund, alle die gleichen Kompromisse wie Deno einzugehen.“Was Dahls Kritik an npm als geschlossenem Ökosystem für Module betrifft, sieht Griggs keinen Grund dafür.js, um das zu ändern.

„In Bezug auf die Verwaltung von Modulen war das Modul-Ökosystem ein großer Teil des Erfolgs von Node.js. Während es laufende Diskussionen über die Integration von Clients gibt — die Registries, die Module bedienen – lag der Schwerpunkt darauf, Unterstützung für ES6-Module hinzuzufügen, anstatt deren Verwaltung zu ändern.“

Anstatt npm zu verwenden, hat sich Deno dafür entschieden, Module zu verwenden, auf die als URLs oder Dateipfade verwiesen wird.

Serverseitiges JavaScript immer noch stark

Mit der aktuellen Popularität von JavaScript-Frameworks wie Next.js und Gatsby, zusammen mit dem Aufstieg von Jamstack und seinem Ansatz zur statischen Site-Generierung, fragte ich Griggs, ob dies die Anwendungsfälle für serverseitiges JavaScript beeinflusst hat?

„Es kann eine Verringerung der Verwendung von Dingen wie Template-Engines für serverseitiges Rendering geben“, sagte sie, „aber Knoten.js wird immer noch stark verwendet, um die Microservices zu erstellen, die die statischen Seiten unterstützen, die mit Ansätzen wie Jamstack bereitgestellt werden können. Knoten.js wird auch weiterhin stark in den Tools verwendet, aus denen die Entwicklungspipelines für clientseitiges JavaScript bestehen.“

Die Zukunft des Knotens.js und Deno

Also, was kommt als nächstes für Node .js? In der Ankündigung Post über Version 15, schrieb Griggs, dass nach dem zehnten Jahrestag des Knotens zu feiern.js letztes Jahr „hat das Projekt die nächsten 10 Jahre von Node begonnen.js Aufwand. „

Ich habe Griggs gefragt, welche Art von Initiativen die Projektmitglieder in den nächsten zehn Jahren umsetzen wollen?

„Bisher haben wir unsere Prioritäten als Entwicklererfahrung, Stabilität, operative Qualitäten usw. definiert.js Betreuer Erfahrung und up-to-date-Technologie und APIs „, antwortete sie.

Diese werden derzeit in einem GitHub-Dokument mit dem Titel Werte und Prioritäten beschrieben. Sicherheit wird einmal als Unterkategorie der „operativen Qualitäten“ erwähnt und besagt einfach: „Sicherheitslücken verantwortungsbewusst angehen.“

Es scheint kein hohes Ziel für das nächste Jahrzehnt zu sein, insbesondere im Vergleich zu Denos ehrgeizigerem Ziel, Schwachstellen überhaupt zu vermeiden.

Aber seit Node.js ist ein stabiles und relativ lang laufendes Projekt und richtet sich an einige sehr große Anbieter von Unternehmenssoftware (wie Griggs Arbeitgeber Red Hat). Obwohl es eine Öffnung für andere lässt, größer und mutiger über die Zukunft von serverseitigem JavaScript nachzudenken – genau das tun Dahl und sein Deno—Projekt.

Red Hat ist Sponsor des neuen Stacks.

Funktion Bild über .