Kristoffer Grönlund, che lavora per SUSE, ha annunciato la creazione di un fork dell'editor di codice Zed, che verrà sviluppato sotto il nome di Gram. Tra le motivazioni per creare il fork si menziona il desiderio di avere un editor di codice che possa fungere da alternativa a VS Code, non utilizzare funzionalità basate su AI, non imporre la firma di un contratto di utilizzo incompatibile con le licenze aperte e non inviare telemetria alle aziende. Lo sviluppo si concentrerà sulla creazione di un prodotto comodo per i nuovi sviluppatori e per gli studenti che vengono istruiti dall'autore del fork. Il codice del progetto sarà distribuito sotto le licenze GPLv3 e AGPLv3.
Tra le differenze di Gram rispetto a Zed si segnala la cessazione della fornitura di strumenti AI e codici per l'invio di telemetria, la rimozione dei legami con server di elaborazione proprietari, servizi di terze parti e componenti utilizzati per l'organizzazione della collaborazione sul codice e l'installazione automatica degli aggiornamenti. Agli utenti di Gram non vengono imposti termini di servizio separati e abbonamenti a pagamento.
Lo sviluppo futuro del fork sarà condotto in uno stile conservativo, indipendentemente da Zed e dalle aziende, con un'attenzione particolare all'assicurazione della stabilità. Le modifiche a Gram saranno accettate senza la necessità di firmare un contratto di trasferimento dei diritti di proprietà (CCA, Contributor License Agreement). Le modifiche sotto la licenza Apache 2.0 non saranno accettate in Gram, per il nuovo codice sarà possibile utilizzare solo le licenze GPLv3 e AGPLv3 (Zed era fornito sotto tre licenze: Apache 2.0, GPLv3 e AGPLv3, il che permetteva di utilizzare il suo codice in prodotti proprietari senza dover rivelare le modifiche).
È stato pubblicato contemporaneamente il primo rilascio di Gram, in cui è stato rimosso il codice relativo all'AI, alla telemetria, al caricamento e all'installazione degli aggiornamenti, alla collaborazione sul codice e all'associazione con l'account. Tra le funzionalità aggiuntive, l'editor include la documentazione, è stata aggiunta la supporto per i linguaggi di programmazione Gleam, Zig e Odin, ed è stato implementato un sistema di completamento automatico dello stile Vim Supertab. I plugin installabili in Gram devono essere compilati dal codice sorgente e non vengono aggiornati automaticamente. Per il caricamento dei componenti LSP (Language Server) e Node, è stata introdotta la conferma obbligatoria dell'operazione da parte dell'utente. Assemblaggi pronti sono stati preparati per Linux e macOS.

È interessante notare che non si tratta del primo fork di Zed: il progetto Zedless sviluppa un fork incentrato sulla protezione della privacy e sul lavoro locale isolato senza fare affidamento su server di terze parti. In Zedless, così come in Gram, sono state rimosse le dipendenze dai servizi cloud proprietari, è stato rimosso il codice per l'invio di telemetria e i rapporti generati automaticamente sugli arresti anomali, non è richiesta un'accordo CLA. Tuttavia, la funzionalità di collaborazione non è stata rimossa, ma si concentra sullo sviluppo di un'infrastruttura propria, consentendo tuttavia all'utente di ripristinare l'uso di servizi esterni a sua discrezione.
Il progetto Zed è guidato da Nathan Sobo, autore dell'editor Atom (base di VS Code), con la partecipazione di un team di ex sviluppatori dell'editor Atom, della piattaforma Electron e della libreria per l'analisi della sintassi Tree-sitter. Nella sua realizzazione, è stata considerata l'esperienza di creazione di Atom e si è tentato di realizzare alcune idee su come dovrebbe apparire l'editor ideale per un programmatore. Zed unisce in un unico prodotto un editor di testo leggero e le funzionalità delle moderne ambienti di sviluppo integrati. Grande attenzione è dedicata alle prestazioni e alla reattività dell'interfaccia: l'idea dei creatori del progetto è che tutte le azioni durante la modifica devono essere eseguite istantaneamente e le attività di codifica devono essere risolte nel modo più efficiente possibile. Le elevate prestazioni di Zed sono raggiunte mediante l'uso attivo della multithreading con l'impiego di tutti i nuclei CPU disponibili e il coinvolgimento della GPU nel processo di rendering.
Fonte: opennet.ru
