L'autore della piattaforma Bun sta conducendo un esperimento di riscrittura da Zig a Rust

Jarred Sumner, il creatore e principale sviluppatore della piattaforma server JavaScript Bun, ha creato un ramo di Git in cui ha iniziato a riscrivere Bun da Zig a Rust. La riscrittura avviene utilizzando l'assistente AI Claude, per il quale è stata redatta una guida separata per il porting. Secondo Jarred, si tratta ancora solo di un esperimento e non di un porting ufficiale, e c'è una forte possibilità che non si vada oltre la fase di esperimento e che il codice riscritto non venga utilizzato.

Il porting non è ancora completato e, attualmente, tutto l'interesse intorno al progetto è concentrato sulla valutazione della fattibilità del port, ovvero se supererà il set di test del progetto principale e se sarà difficile mantenere il nuovo codice. In definitiva, si prevede di effettuare un confronto tra le diverse versioni di Bun in Zig e Rust.

A dicembre dello scorso anno, il progetto Bun è stato acquisito dall'azienda Anthropic, quindi Jarred ha risorse per coinvolgere nel porting i modelli AI avanzati di Claude. La piattaforma Bun è utilizzata nei prodotti Claude Code e Claude Agent SDK, e l'azienda Anthropic è interessata a migliorare la qualità e lo sviluppo della piattaforma. Bun è uno dei progetti di maggiore successo in Zig, mentre le opinioni degli sviluppatori di Zig e Bun divergono riguardo all'uso dell'AI nel processo di sviluppo. Nel progetto Zig è stato imposto un divieto rigoroso all'uso di grandi modelli linguistici nella preparazione di pull request, issue e commenti (è vietata anche la traduzione tramite AI di commenti non anglofoni).

L'introduzione di tali restrizioni è spiegata dagli sviluppatori di Zig a causa di esperienze negative nella revisione di pull request generate da AI, che richiedono risorse e tempo (si segnalano ad esempio modifiche prive di senso, allucinazioni dell'AI e commit gonfiati di 10.000 righe). Inoltre, il progetto Zig si posiziona come orientato ai partecipanti, piuttosto che focalizzato sul contributo che apportano allo sviluppo: il principale obiettivo dell'accettazione delle pull request è aiutare nello sviluppo di nuovi partecipanti, piuttosto che aggiungere nuovo codice.

L'autore di Bun non è d'accordo con il divieto dell'AI in Zig e ritiene che l'AI diventerà un ricordo nostalgico del 2025 e del 2026, mentre lo sviluppo di software open source evolverà verso il divieto di accettare codice da parte degli esseri umani. Le persone discuteranno problemi, stabiliranno obiettivi e priorità, mentre la scrittura di codice e l'invio di modifiche ai repository diventerà un compito per l'AI. Tra le motivazioni per sperimentare la riscrittura in Rust si segnala anche il desiderio di risolvere i problemi in Bun causati da perdite di memoria e la politica inaccettabile di Zig riguardo l'accettazione di modifiche che compromettono la compatibilità.

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 sono riusciti a quadruplicare la velocità di compilazione attraverso il parallelismo nell'analisi semantica e nella generazione del codice. Tuttavia, stando al commento di uno degli sviluppatori di Zig, il motivo del rifiuto delle patch non è l'AI, ma il fatto che il parallelismo nell'analisi semantica coinvolge non solo il compilatore, ma anche il linguaggio stesso: per implementare la funzionalità proposta senza errori e incompatibilità, sono necessarie modifiche al linguaggio Zig. Invece del parallelismo, gli sviluppatori di Zig stanno sviluppando la compilazione incrementale, che secondo le loro previsioni permetterà di migliorare notevolmente la velocità di compilazione.

La piattaforma JavaScript Bun si sta sviluppando come un'alternativa ad alte prestazioni alle piattaforme Node.js e Deno. Il progetto viene sviluppato con uno sguardo alla compatibilità con le applicazioni server per Node.js e supporta gran parte delle API di Node.js. La piattaforma include un insieme di strumenti per la creazione e l'esecuzione di applicazioni in JavaScript e TypeScript, oltre a un runtime per eseguire applicazioni JavaScript senza browser, un gestore di pacchetti (compatibile con NPM), un toolkit per l'esecuzione dei test, un sistema di assemblaggio di pacchetti autonomi e un layer per integrare 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 eseguire JavaScript viene utilizzato il motore JavaScript JavaScriptCore e i componenti del progetto WebKit con patch aggiuntive.

Fonte: opennet.ru

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