4 Entwicklungen in WEBASSEMBLY

Wasm entwickelt sich immer weiter und bietet Mainstream-Sprachunterstützung, Kubernetes-Bereitstellungsoptionen, revolutionäre Möglichkeiten für Komponentenmodelle und mehr.

Übersetzt aus 4 Big Developments in WebAssembly , Autor Matt Butcher.

Auf der Wasm I/O in Barcelona und der KubeCon in Paris wurden mehrere Updates für WebAssembly (Wasm) angekündigt . Darunter zeigten sich vier signifikante Muster.

Die Unterstützung von Programmiersprachen boomt

Seit der Gründung von Wasm bestand das größte Risiko für seinen Erfolg in der mangelnden Unterstützung der Programmiersprache. Selbst das beste plattformübergreifende Bytecode-Format wird keinen Erfolg haben, wenn keine Sprache darin kompiliert werden kann.

Ich habe die Sprachunterstützung in WebAssembly verfolgt . Konkret verfolge ich, wie viele der Top-20-Sprachen laut RedMonk WebAssembly übernehmen. Python, JavaScript/TypeScript, Ruby, Rust, C/C++ und Zig haben Wasm übernommen, und weitere Sprachen sind auf dem Weg.

Auf der Wasm I/O berichtete Zalim Bashorov von JetBrains über den schnellen Fortschritt von Kotlin. Kotlin ist nicht nur eine eigenständige, beliebte Sprache, sondern stellt auch das zukunftsorientierteste Element der Java-Welt dar. Je näher Kotlin der WebAssembly-Kernunterstützung und WASI 0.2-Unterstützung kommt, erwarte ich, dass die Beliebtheit der Sprache wieder zunehmen wird, da sie eine neue Zielgruppe von Entwicklern findet. Darüber hinaus wird es die breitere Java-Community für WebAssembly gewinnen.

Dart wird jetzt mit einem WebAssembly-Kompilierungsziel ausgeliefert. Auf der Wasm I/O berichtete Kevin Moore von Google über spannende Entwicklungen in der Welt von Dart und Flutter. Moore erweckt nicht den Eindruck, dass Dart über seine Browser- und mobilen App-Wurzeln hinausgehen wird, aber die Leistungsverbesserungen, die Wasm in diese Welt bringt, sind großartig. Moore stellte Benchmarks vor, die zeigten, dass Wasm mehr als 50 % schneller als JavaScript-basierte Ausführungszeiten ausführen kann.

Schließlich stellte das Go-Team, vertreten durch Rajiv Singh und Achille Roussel, neue Fortschritte bei der Unterstützung von WebAssembly in Go vor. Go hat einen Teil seiner WebAssembly-Unterstützung an TinyGo abgetreten (der Leiter des Projekts, Ron Evans, stellte sich ebenfalls auf der Wasm I/O vor). Aber das Go-Kernteam hat jetzt erneut Interesse daran, Wasm sowohl innerhalb als auch außerhalb des Browsers zu unterstützen.

Eine weitere wichtige Funktion, die von Programmiersprachen unterstützt wird, ist jedoch die Debugbarkeit. Natalia Venditto und Ralph Squillace von Microsoft demonstrieren das Wasm-Debugging in Visual Studio Code. Sprachneutrales Wasm-Debugging ist ein absolutes Muss für die moderne Softwareentwicklung, und Microsoft arbeitet hart daran, es in die Realität umzusetzen.

Kubernetes ist das Ziel für die WebAssembly-Bereitstellung

Wasm I/O und KubeCon diskutierten beide über die Ausführung von Wasm in Kubernetes . Fermyon, Microsoft, SUSE, Liquid Reply und andere Unternehmen haben gemeinsam das Open-Source-Projekt SpinKube für die Ausführung von Wasm-Kubernetes-Anwendungen im Spin-Stil veröffentlicht. Auf der KubeCon demonstrierte das internationale Optikunternehmen Zeiss Group in der Keynote-Phase praktische Anwendungsfälle .

SUSE kündigte Unterstützung für WebAssembly in Rancher Desktop unter Verwendung seiner K3s-Kubernetes-Laufzeitumgebung an. Fermyon kündigte eine kommerziell unterstützte Kubernetes-Fermyon-Plattform mit ultrahoher Dichte an, die 5.000 Wasm-Anwendungen pro Kubernetes-Knoten ausführen kann. Das wasmCloud-Projekt der Cloud Native Computing Foundation erreichte 1.0 und unterstützt die Kubernetes-Integration. NGINX Unit kündigte Unterstützung für die Ausführung von Spin-Anwendungen auf seiner Anwendungsplattform an .

Nach der KubeCon-Keynote von WebAssembly stellte EMA-Analyst Torsten Volk fest, dass Wasm zum am meisten diskutierten Thema auf der Konferenz geworden sei.

Welche Funktionen von Wasm eignen sich so gut für Kubernetes ? Die Kaltstartzeit von Wasm macht es zu einer hervorragenden Plattform für Lambda-ähnliche serverlose Funktionen. Kubernetes-Benutzer waren schon lange daran interessiert, solche Workloads in Clustern auszuführen, aber die erste Welle serverloser Kubernetes-Lösungen konnte nicht mit der Dichte, Leistung und Startgeschwindigkeit von Wasm mithalten.

Komponentenmodelle werden real

Es gibt acht Sitzungen zum Komponentenmodell von WebAssembly . Das WebAssembly-Komponentenmodell wurde auf der diesjährigen Wasm I/O vorgestellt. Obwohl die letztjährige Wasm I/O das Komponentenmodell hauptsächlich aus theoretischer Sicht vorstellte, sahen wir dieses Jahr die Ergebnisse einer einjährigen Komponentenentwicklung.

Besonders gut hat mir die dreiteilige Vorlesungsreihe gefallen, in der Thorsten Hans von Fermyon die mehrsprachige Programmierung mithilfe von Komponenten erklärte, Ryan Levick die Vor- und Nachteile von Komponenten erklärte und Luke Wagner die Trilogie zum Thema asynchrone Aufrufe zwischen Komponenten (dem unvollendeten Teil von WASI) abschloss.

Es gab weitere Vorträge, die sich mit der Verwendung von Komponenten zur Erfüllung bestimmter Aufgaben befassten. Zu den Rednern gehörten Sejyo Chang von InfinyOn, Pierre Dureau von Design Systems, Jean Valverde von Dilla.io , Taylor Thomas von Cosmonic und andere. Insgesamt ist nun klar, dass das Komponentenmodell fertig ist.

Die wichtigsten komponentenbezogenen Entwicklungen kamen jedoch von Oscar Spencer von F5 und Danny Macovei von JAF Labs . Die Bemühungen, die Komponentenregistrierung zu definieren, dauerten drei Jahre, doch am Ende des ersten Tages von Wasm I/O starteten Macovei und Spencer WA.dev, die erste Wasm-Komponentenregistrierung. Es ist fair, WA.dev mit npm oder sogar Docker Hub zu vergleichen. Entwickler können ihre Komponenten in eine zentrale Registrierung hochladen, sodass wir alle Komponenten einfacher finden und verwalten können.

Wasm ist immer noch eine Pioniersprache

Vielleicht ist diese letzte Entwicklung ein Gegentrend. Die Sprachunterstützung konvergiert. Kubernetes und Wasm machen Fortschritte. Die Wasm-Komponentenmodellspezifikation wird in Dienstprogramme integriert. Dies sind Zeichen von Reife und Stabilität. Wasm steht jedoch nicht still; es befindet sich weiterhin in der Erkundungsphase.

Es gibt kein besseres Beispiel dafür als das Wanix-Projekt , das die unabhängigen Entwickler Jeff Lindsay und Julian Del Signore am zweiten Tag von Wasm I/O vorstellten. Lindsay ist eine visionäre Visionärin, deren Projekte Softwareentwickler häufig dazu zwingen, ihre Annahmen darüber zu überdenken, wie Dinge erledigt werden. Von der Erfindung von Webhooks bis hin zu seinen frühen Beiträgen zu Containern hat Lindsay immer Grenzen überschritten. Wanix ist keine Ausnahme.

Del Signore und Lindsay demonstrierten ein von Plan9 inspiriertes In-Browser-Betriebssystem, das ein CMS-ähnliches System betreibt, das den Status mit GitHub synchronisieren kann. Dies ist ein großartiges Beispiel dafür, wie die Vielseitigkeit, Leistung und plattformübergreifenden Funktionen von Wasm zusammen eine Klasse von Tools bilden, die derzeit keinen Namen hat.

Ebenso nahm der ehemalige Leiter von VMware Wasm Labs, Daniel Lopez, das Publikum mit auf eine unterhaltsame Reise, indem er verschiedene Demos vorstellte. Von der Ausführung von Windows 95 in einem Browser bis zur Demonstration der KI-Inferenz zeigt Lopez eine Vielzahl interessanter Anwendungen für diese äußerst vielseitige Technologie auf. Im humorvollsten Moment zeigte Lopez, wie man Docker in Wasm ausführt und so mehrere Virtualisierungsebenen hinzufügt. Der Kern seiner Rede war jedoch, dass Wasm nicht in eine Schublade gesteckt werden sollte.

Am letzten Tag der Wasm I/O stellte Ron Evans, Erfinder (unter anderem) von TinyGo, ein Open-Source-Framework für die eingebettete Entwicklung für das Internet der Dinge (IoT) vor. Mechanoid basiert auf Wasm und unterstützt die eingebettete Entwicklung mit mehreren Programmiersprachen, darunter Rust, Go und Zig. Das Internet der Dinge ist ein aufstrebendes Gebiet für WebAssembly. Während es sich bereits in Unterhaltungsgeräten etabliert hatte, untersuchte Evans seine Verwendung in Mikrocontrollern und drängte Wasm in die Kategorie der Mikrogeräte.

abschließend

Wasm hat in vielerlei Hinsicht seine Reife bewiesen. Fast alle wichtigen Sprachen unterstützen mittlerweile WebAssembly. Kubernetes erweist sich als beliebte Umgebung zum Hosten von Wasm-Anwendungen, und das WebAssembly-Komponentenmodell erschließt die revolutionären Möglichkeiten von WebAssembly, einschließlich echter mehrsprachiger Programmierung.

Aber genauso wie Java Anwendungsfälle gefunden hat, die über seine ursprüngliche Absicht hinausgehen, sehen wir auch, dass Wasm Möglichkeiten in faszinierenden Bereichen wie dem Internet der Dinge und aufstrebenden Bereichen wie Wanix eröffnet. Es ist eine gute Erinnerung daran, dass Reife nicht gleichbedeutend mit Stagnation ist.

Dieser Artikel wurde zuerst auf Yunyunzhongsheng ( https://yylives.cc/ ) veröffentlicht, jeder ist herzlich willkommen.

Ich habe beschlossen, Open-Source-Hongmeng aufzugeben . Wang Chenglu, der Vater von Open-Source-Hongmeng: Open-Source-Hongmeng ist die einzige Architekturinnovations- Industriesoftwareveranstaltung im Bereich Basissoftware in China – OGG 1.0 wird veröffentlicht, Huawei steuert den gesamten Quellcode bei Google Reader wird vom „Code-Scheißberg“ getötet Ubuntu 24.04 LTS wird offiziell veröffentlicht Vor der offiziellen Veröffentlichung von Fedora Linux 40 Microsoft-Entwickler: Die Leistung von Windows 11 ist „lächerlich schlecht“, Ma Huateng und Zhou Hongyi geben sich die Hand, „beseitigen den Groll“ Namhafte Spielefirmen haben neue Vorschriften erlassen: Hochzeitsgeschenke an Mitarbeiter dürfen 100.000 Yuan nicht überschreiten. Pinduoduo wurde wegen unlauteren Wettbewerbs zu einer Entschädigung von 5 Millionen Yuan verurteilt
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/6919515/blog/11053996
Empfohlen
Rangfolge