Programmeringsspråket Dart er kanskje mest kjent som programmeringsspråket som brukes i Flutter, Googles rammeverk for kryssplattformutvikling. Google kaller det for et "klient-optimalisert" språk, men det kan også brukes til å skrive backendtjenester.
Men ikke alle er fornøyd med alt i Dart. Det amerikanske oppstartsselskapet Voyver mener Rust løser en del ting bedre enn Dart, skriver The New Stack.
Derfor har selskapet nå implementert hele kjernebiblioteket til Rust i en Dart-versjon som har fått navnet rust_core. Denne ble lansert i versjon 1.0 denne uken.
– Fra et språkperspektiv mener vi Dart dessverre har mangler på en del områder, som denne pakken løser, skriver selskapet i en FAQ.
«Vi fant ut at vi manglet et felles API.»
Sømløs integrasjon
Voyvers utviklere bruker både Rust og Dart, og i november i fjor annonserte Henry McMahon, som vedlikeholder biblioteket, at selskapet hadde utviklet rust_core for at du skal kunne "programmere i Dart som du ville gjort det i Rust".
– Vi fant ut at vi manglet et felles API for vårt team av i hovedsak Rust-utviklere, og i hovedsak Rust-kode. Rust_core løste dette for oss, sa McMahon til The New Stack da.
I forbindelse med lanseringen av rust_core v1.0.0 er det også laget dokumentasjon til biblioteket: Rust Core Book.
Der står det blant annet at "rust_cores" primære mål er å bringe Rusts funksjonalitet og ergonomi til Dart.
På Reddit skriver selskapet at det å ha ett felles API på tvers av to ulike språk gjør at det blir enklere for Rust- og Dart-utviklere å jobbe sammen, og at utvikling går raskere blant annet på grunn av mindre "kontekst-svitsjing".
I dokumentasjon er det en kort gjennomgang for Dart-utviklere som ikke har erfaring med Rust, og vice versa. Som denne tabellen som viser hvilke typer Dart-utviklere får tilgang til ved å bruke rust_core i Dart:
Bedre feilhåndtering
De som vil lese mer om alt som ligger i rust_core for Dart kan lese FAQ-en, der det er en punktliste med oversikt over Rust-funksjonalitet som Dart-brukere nå også kan få glede av.
Noen av fordelene går på enklere og bedre feilhåndtering, og redusert risiko for bugs eller at programmet krasjer.
For eksempel bruker Dart "try/catch exceptions", men med rust_core vil du nå kunne håndtere feil som verdier gjennom Result-typen. Det vil si at i stedet for å "kaste" en feil, vil du enten få returnert "ok" eller "err" med en tilhørende verdi.
McMahon har skrevet et blogginnlegg der du kan lese mer om hvorfor han mener Result-typen som brukes i Rust er en bedre måte å håndtere feil på enn Darts try/catch.
Google vraker C++ og Go – jobber dobbelt så kjapt
På spørsmål fra en utvikler på Reddit, innrømmer McMahon at det kanskje kan være en liten terskel for Dart-utviklere å begynne å kode på en helt ny måte:
– Fra det jeg har sett, det eneste utviklere har slitt med å lære seg er det å bruke Result. Utviklere synes det er tungvint i starten, helt til de ser at kodekvaliteten øker og at det hjelper dem med å håndtere og debugge vanskelige problemer, skriver McMahon.