L'autore della piattaforma Bun sta conducendo un esperimento per riscrivere da Zig a Rust

Jarred Sumner, il creatore e principale sviluppatore della piattaforma server-side JavaScript Bun, ha creato un ramo Git dove ha iniziato a riscrivere Bun dal linguaggio Zig a Rust. La riscrittura viene effettuata con l'ausilio dell'assistente AI Claude, per il quale è stata creata una guida separata per il porting. Secondo Jarred, si tratta ancora solo di un esperimento e non di un port ufficiale, e c'è una buona probabilità che non vada oltre la fase di esperimento e che il codice riscritto non venga utilizzato.

Il porting non è ancora completato e, in questa fase, tutto l'interesse è concentrato sulla valutazione di quanto sarà funzionale il porting, se passerà il set di test del progetto principale e quanto sarà difficile mantenere il nuovo codice. In definitiva, è previsto di condurre test comparativi tra le versioni di Bun su Zig e Rust.

Lo scorso dicembre, il progetto Bun è stato acquisito da Anthropic, quindi Jared ha a disposizione risorse per coinvolgersi nel porting dei modelli AI avanzati Claude. La piattaforma Bun è utilizzata nei prodotti Claude Code e Claude Agent SDK, e Anthropic è interessata a migliorarne la qualità e a svilupparla ulteriormente. Bun è uno dei progetti di maggior successo nel linguaggio Zig, purtroppo, le opinioni degli sviluppatori di Zig e Bun divergono sull'uso dell'AI nel processo di sviluppo. Nel progetto Zig è stata imposta una rigida proibizione all'uso di modelli linguistici di grandi dimensioni nella preparazione di pull request, issue e commenti (è vietato anche tradurre tramite AI i commenti non in inglese).

L'introduzione di tali restrizioni è spiegata dagli sviluppatori di Zig dall'esperienza negativa avuta nella revisione delle pull request create tramite AI, che consumano risorse e tempo (si notano ad esempio modifiche insensate, allucinazioni dell'AI e commit gonfiati di 10.000 righe). Inoltre, il progetto Zig si presenta come orientato ai partecipanti, piuttosto che al contributo che essi possono apportare allo sviluppo: l'obiettivo principale dell'accettazione delle pull request non è l'aggiunta di nuovo codice, ma l'aiuto allo sviluppo di nuovi partecipanti.

L'autore Bun non è d'accordo con il divieto dell'AI in Zig e ritiene che l'AI-sloop rimarrà un retaggio nostalgico degli anni 2025 e 2026, mentre lo sviluppo del software open source evolverà verso il divieto di accettare codice da parte degli esseri umani. Le persone discuteranno problemi, stabiliranno compiti e definiranno priorità, mentre la scrittura di codice e l'invio di modifiche ai repository diventerà appannaggio dell'AI. Tra i motivi per le sperimentazioni di riscrittura in Rust c'è anche il desiderio di risolvere problemi in Bun causati da perdite di memoria e la politica inaccettabile di Zig riguardo l'accettazione di modifiche che violano la compatibilità per progetti di grandi dimensioni.

A causa del divieto di utilizzo dell'AI, gli sviluppatori di Bun sono costretti a mantenere un proprio fork degli strumenti Zig, in cui grazie all'uso dell'AI è stato possibile accelerare la compilazione di 4 volte tramite la parallelizzazione dell'analisi semantica e della generazione del codice. Tuttavia, secondo il commento di uno degli sviluppatori di Zig, la ragione del rifiuto delle patch non è legata all'AI, ma al fatto che la parallelizzazione dell'analisi semantica influisce non solo sul compilatore, ma anche sul linguaggio stesso: per implementare la funzionalità proposta senza errori e incompatibilità, sono necessarie modifiche al linguaggio Zig. Invece della parallelizzazione, gli sviluppatori di Zig stanno sviluppando la compilazione incrementale, che secondo le loro ipotesi consentirà di aumentare significativamente la velocità di compilazione.

La piattaforma JavaScript Bun si sviluppa come un'alternativa ad alte prestazioni alle piattaforme Node.js e Deno. Il progetto è progettato per garantire compatibilità con le applicazioni server per Node.js e supporta gran parte dell'API di Node.js. La piattaforma include un insieme di strumenti per la creazione e l'esecuzione di applicazioni in JavaScript e TypeScript, un runtime per l'esecuzione di applicazioni JavaScript senza browser, un gestore di pacchetti compatibile con NPM, strumenti per l'esecuzione dei test, un sistema di build per pacchetti autonomi e uno strato per l'integrazione di gestori scritti in linguaggio C. In termini di prestazioni, Bun supera nettamente Deno e Node.js (nei test basati sul framework React, la piattaforma Bun supera Deno di 2 volte e quasi 5 volte Node.js). Per l'esecuzione di JavaScript viene utilizzato il motore JavaScript JavaScriptCore e i componenti del progetto WebKit con patch aggiuntive.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster