Trengs det en ny kodeeditor? Ja, mener Nathan Sobo.
Sobo er ingen hvem som helst, men mannen som i sin tid skapte den en gang svært populære – men nå nedlagte – Atom-editoren, samt Electron-rammeverket.
Nå har Sobo og hans selskap Zed Industries lansert første beta av kodeeditoren Zed, som ifølge deres egne målinger skal være betydelig raskere enn Visual Studio Code (VS Code) og de fleste andre editorer. For eksempel skal oppstartstiden være en fjerdedel av VS Code og minneforbruket rundt halvparten.
Zed is officially in public beta for macOS! We've been building Zed in Zed for a year now, and here's what we're loving most about it... 🧵 pic.twitter.com/Kjwzjn1qhr
— Zed (@zeddotdev) March 15, 2023
Målet til utviklerne er å lage en editor som ikke bare er rask, men også skal være et verktøy som gjør samarbeid mellom utviklere enklere.
En av de mest innovative funksjonene er at du kan invitere andre utviklere inn til å redigere i samme kodefil, alle med hver sin cursor.
Hentet 10 millioner dollar
VS Code har etter hvert blitt nesten enerådende på kodeditor-fronten, med en brukerandel på rundt 75 prosent i følge Stack Overflows årlige utviklerundersøkelse.
Til sammenligning svarte bare i underkant av 30 prosent av profesjonelle utviklere at de bruker JetBrains IntelliJ-editor, eller i underkant av 9 prosent JetBrains WebStorm.
Det er derfor et ganske modig valg å sette igang og prøve å lage en ny editor som skal konkurrere i dette markedet, spesielt ettersom Microsoft gir bort VS Code gratis.
Ifølge TechCrunch har Zed Industries hentet inn 10 millioner dollar, rundt 107 millioner kroner, til prosjektet. Pengene skal blant annet brukes til å bygge opp et større utviklingsteam som skal jobbe med editoren.
Planen er å etter hvert tjene penger på ulike tjenester knyttet til editoren, som foreløpig er helt gratis.
Med seg på laget har Sobo fått blant andre Antonio Scandurra og Max Brunsfeld, som begge tidligere jobbet på Atom-teamet.
Storlansering: .NET 8 og ny Visual Studio klar for nedlasting
Spillteknologi for raskere UI
Zed er skrevet fra bunnen av i Rust for å være så rask som mulig
Nathan Sobo sier i et intervju på podcasten The Changelog at selv om han sto bak Atom-editoren, så føltes den alltid litt for treg. Det samme gjelder andre editorer, som VS Code.
I intervjuet forteller Sobos at da teamet hans begynte å jobbe med den nye editoren vurderte de først å bruke Electron, og basere brukergrensesnittet på webteknologier.
– Men uansett hva vi gjorde, klarte vi ikke å få ytelsen vi ville ha. Så til slutt kuttet vi ut Electron helt.
Målet var at Zed skulle føles like rask som for eksempel Vim, og at alt skulle skje umiddelbart. Derfor fant de ut at de ville tegne opp brukergrensesnittet piksel for piksel ved hjelp av GPU-en (grafikkprosessoren), omtrent slik det gjøres i et 3D-dataspill.
De prøvde først en Rust-crate kalt Pathfinder. Men det var også for tregt, viste det seg.
Løsningen ble å lage et helt nytt Rust-basert UI-rammeverk med GPU-aksellerasjon fra bunnen, kalt GPUI. Dette gjør det mulig å rendre brukergrensesnittet med 120 bilder i sekundet.
Bedre samarbeid om kode
Ifølge Sobo var en av de viktigste grunnene til å lage en ny editor at de ønsket å gjøre det enklere for utviklere å samarbeide på kodeprosjekter. I intervjuet på The Changelog sier Sobo at samarbeid i dag ofte innebærer at beskjeder gis i mange ulike kanaler, noen som pull requests, noen som meldinger i ulike chattekanaler, og så videre.
Han mener samarbeid om kode best gjøres i kodeeditoren – alt på ett sted.
I betaversjonen som er lansert nå kan du invitere andre utviklere til kodebasen din, og så kan to eller flere utviklere kode samtidig i de samme filene. Når en utenfor jobber på en fil som ligger på din maskin, så vil de ifølge Zed oppleve det som om filen ligger lokalt på egen maskin.
Når du er inne i en kodefil en av kollegaene dine redigerer, kan du hoppe til der de er i koden og følge vedkommende. Hvis du vil kan dere bytte roller, slik at kollegaen følger deg. På den måten kan dere parprogrammere enklere selv om dere sitter på ulike steder i verden.
I løpet av de neste månedene skal det komme en innebygget chatfunksjon, slik at man kan diskutere og samarbeide utover bare det å redigere i en fil.
Ellers nevner vi at Zed har en innebygget skjermdelingsfunksjon som lar deg dele skjermen med andre utviklere.
Vi prøver GitHub Blocks: - Lovende, men uferdig
Støtter mange språk
Zed støtter for øyeblikket Rust, TypeScript, JSON, C/C++ og Python, hvor Rust er hovedfokus for øyeblikket. Undertegnede har imidlertid prøvd editoren litt, og TypeScript/JavaScript ser ut til å fungere upåklagelig.
Siden Zed baserer seg på Microsofts Language Server Protocol skal det være greit å utvide støtten for programmeringsspråk. Language Server Protocol gjør at du får autofullføring, enklere navigering i kode, og så videre – det meste av det du kjenner til fra VS Code. Copilot får du imidlertid ikke, siden det jo er en tjeneste fra GitHub og konkurrenten Microsoft.
«Foreløpig er Zed kun tilgjengelig for macOS.»
Foreløpig er Zed kun tilgjengelig for macOS, men støtte for andre plattformer skal komme. Utviklerne bak Zed vil fokusere på macOS en stund til for å få på plass all den funksjonaliteten de ønsker, før de tar dette videre til andre plattformer.
– Betaversjonen vi deler i dag er en skygge av det verktøyet vi ser for oss, skriver Zed i lanseringsbloggposten.
Her er nedlastingslenken, hvis du vil prøve editoren.