Der Autor der Plattform Bun führt ein Experiment zur Umschreibung von Zig nach Rust durch.

Jarred Sumner, der Ersteller und Hauptentwickler der serverseitigen JavaScript-Plattform Bun, hat einen Git-Branch erstellt, um Bun von der Programmiersprache Zig auf Rust umzuschreiben. Der Umschreibung erfolgt mit Hilfe des AI-Assistenten Claude, für den ein eigenes Handbuch zur Portierung erstellt wurde. Laut Jarred handelt es sich bisher nur um ein Experiment und nicht um ein offizielles Port, und es ist sehr wahrscheinlich, dass es über das Experiment hinaus nicht vorankommt und der umgeschriebene Code nicht verwendet wird.

Die Portierung ist noch nicht abgeschlossen, und dem Projekt wird derzeit viel Aufmerksamkeit gewidmet, um zu bewerten, wie funktionsfähig das Port werden kann, ob es die Tests des Hauptprojekts bestehen wird und wie schwierig es sein wird, den neuen Code zu pflegen. Letztendlich ist geplant, einen Vergleichstest der Bun-Varianten auf Zig und Rust durchzuführen.

Im Dezember letzten Jahres wurde das Projekt Bun von der Firma Anthropic übernommen, weshalb Jarred Ressourcen zur Verfügung hat, um fortschrittliche AI-Modelle von Claude in die Portierung einzubeziehen. Die Plattform Bun wird in den Produkten Claude Code und Claude Agent SDK verwendet, und Anthropic ist daran interessiert, deren Qualität zu verbessern und weiterzuentwickeln. Bun ist eines der erfolgreichsten Projekte in der Programmiersprache Zig, wobei die Meinungen der Zig- und Bun-Entwickler über den Einsatz von AI im Entwicklungsprozess auseinandergehen. Im Zig-Projekt gibt es ein striktes Verbot von großen Sprachmodellen bei der Erstellung von Pull Requests, Issues und Kommentaren (sogar Übersetzungen nicht englischer Kommentare durch AI sind verboten).

Die Einführung solcher Einschränkungen wird von den Entwicklern von Zig mit negativen Erfahrungen bei der Überprüfung von durch AI erstellten Pull Requests begründet, die Ressourcen und Zeit in Anspruch nehmen (beispielsweise werden sinnlose Änderungen, AI-Halluzinationen und aufgeblähte Commits mit 10.000 Zeilen angesprochen). Darüber hinaus positioniert sich das Projekt Zig als Teilnehmerorientiert und nicht als Beitrag der Teilnehmer zur Entwicklung – das Hauptziel der Annahme von Pull Requests besteht nicht darin, neuen Code hinzuzufügen, sondern neuen Teilnehmern beim Entwickeln zu helfen.

Der Autor Bun ist gegen das Verbot von AI in Zig und glaubt, dass der AI-Slop ein nostalgisches Relikt aus den Jahren 2025 und 2026 bleiben wird, während die Entwicklung von Open-Source-Software bis zum Verbot der Annahme von Code von Menschen fortschreiten wird. Die Menschen werden Probleme diskutieren, Aufgaben setzen und Prioritäten festlegen, während das Schreiben von Code und das Einreichen von Änderungen in Repositories zur Aufgabe der AI wird. Ein weiteres Motiv für die Experimente mit der Umschreibung in Rust ist der Wunsch, Probleme in Bun zu beseitigen, die durch Speicherlecks verursacht werden, sowie die für große Projekte untragbare Politik von Zig hinsichtlich der Annahme von Änderungen, die die Kompatibilität beeinträchtigen.

Aufgrund des Verbots der Nutzung von AI sind die Entwickler von Bun gezwungen, ein eigenes Fork des Zig-Tools zu unterstützen, in dem es durch den Einsatz von AI gelungen ist, die Kompilierung durch Parallelisierung der semantischen Analyse und der Codegenerierung um das Vierfache zu beschleunigen. Dabei deutet ein Kommentar eines Zig-Entwicklers darauf hin, dass der Grund für die Ablehnung der Patches nicht in der AI liegt, sondern darin, dass die Parallelisierung der semantischen Analyse nicht nur den Compiler, sondern auch die Sprache selbst betrifft — um die vorgeschlagene Funktionalität ohne Fehler und Inkompatibilitäten zu realisieren, sind Änderungen an der Sprache Zig erforderlich. Anstelle von Parallelisierung entwickeln die Entwickler von Zig die inkrementelle Kompilierung weiter, die ihrer Meinung nach die Geschwindigkeit der Kompilierung exponentiell steigern wird.

Die JavaScript-Plattform Bun entwickelt sich als leistungsfähige Alternative zu den Plattformen Node.js und Deno. Das Projekt wird unter Berücksichtigung der Kompatibilität mit Serveranwendungen für Node.js entwickelt und unterstützt den Großteil der Node.js-API. Die Plattform umfasst eine Reihe von Werkzeugen zur Erstellung und Ausführung von Anwendungen in den Sprachen JavaScript und TypeScript sowie eine Laufzeitumgebung zur Ausführung von JavaScript-Anwendungen ohne Browser, einen Paketmanager (kompatibel mit NPM), Werkzeuge für die Durchführung von Tests, ein Build-System für selbstständige Pakete und eine Schicht zur Einbettung von in C geschriebenen Handlern. In Bezug auf die Leistung überholt Bun Deno und Node.js deutlich (in Tests mit dem React-Framework überholt Bun Deno um das Zweifache und Node.js um fast das Fünffache). Für die Ausführung von JavaScript wird der JavaScript-Engine JavaScriptCore und Komponenten des WebKit-Projekts mit zusätzlichen Patches eingesetzt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4