Qt-ekser med Qt-konkurrent for Rust: – Blir vanskelig å finne C++-utviklere

Kryssplattform-rammeverket Slint skal gjøre det enklere å lage grafiske brukergrensesnitt til "alt".

Slint kan brukes til å lage grafiske grensesnitt til både embeddedløsninger, desktop- og mobil-applikasjoner. 📸: Slint / kode24
Slint kan brukes til å lage grafiske grensesnitt til både embeddedløsninger, desktop- og mobil-applikasjoner. 📸: Slint / kode24 Vis mer

Det norskutviklede kryssplattform-rammeverket for å lage grafiske brukergrensesnitt, Qt, har fått en ny konkurrent; Slint. Det er to tidligere Qt-ansatte som står bak, skriver DevClass.

Slint opplyser i en pressemelding at de har laget et omfattende sett med verktøy for å bygge "native" brukergrensesnitt for desktop og embedded-løsninger, alt sammen implementert i Rust.

"Dette er en stor milepæl, og resultatet av tre års arbeid fra 50 bidragsytere", skriver selskapet.

Qt hadde for mye "legacy"

DevClass har snakket med de to Slint-grunnleggerne Simon Hausmann og Olivier Goffart, som forteller til nettstedet at de mener Qt i løpet av årene hadde opparbeidet seg mye "legacy".

– Det gjorde produktet tungt, litt tungvint, og på noen måter lite fleksibelt. Vi følte det var på tide med en ny start, sier Hausmann.

«Vi følte det var på tide med en ny start.»

Simon Hausmann har bakgrunn som "Chief Software Engineer" i The Qt Company frem til 2020, og har lang erfaring med utvikling av Qt også i tiden før Qt ble kjøpt opp av Nokia i 2008. Senere ble Qt kjøpt opp av Digia, og så i 2014 ble The Qt Company spunnet ut som et eget selskap.

Hausmann møtte kollegaen Olivier Goffart da begge jobbet for Trolltech. Goffart flyttet til Berlin for å starte sitt eget selskap, men fortsatte å jobbe innenfor Qt-økosystemet.

Ut med C++, inn med Rust

Utviklingen av Slint, som står for "Straightforward, Lightweight, Native Toolkit", begynte i mai 2020 under navnet "SixtyFPS".

Ifølge selskapet er Slint bygget fra bunnen av for å være en komplett verktøykasse for utvikling av grafiske brukergrensensnitt. For å gjøre det raskere å utvikle applikasjoner med Slint, er det utviklet "tooling" i form av blant annet en plugin for VS Code som gir deg syntaks-utheving, kodefullføring og mye annet.

Det er også mulig å integrere med andre IDE-er via Language Server Protocol.

En plugin til VS Code gir automatisk kodefullføring og syntaksutheving. 📸: Slint
En plugin til VS Code gir automatisk kodefullføring og syntaksutheving. 📸: Slint Vis mer

Slint har API-er som gjør at du kan bruke det til å lage grafiske brukergrensesnitt for applikasjoner skrevet i en rekke ulike programmeringsspråk, som C++, JavaScript eller Rust. Men selve Slint er 100 prosent skrevet i Rust – mens konkurrenten Qt er laget i C++.

Til DevClass sier de to gründerne at valget om å gå vekk fra C++ og over til Rust var veldig bevisst, og at de gjorde det for å bygge en mer fremtidssikker løsning.

– Om 15-20 år vil det være vanskelig å finne C++-utviklere, hevder Hausmann.

Det at løsningen er bygget med Rust gjør at du kan kompilere til WebAssembly, og få applikasjoner du lager til å kjøre direkte i nettleseren.

Kan kjøre med under 300 kB RAM

Slint er åpen kildekode, og kan brukes gratis til veldig mye – også til kommersielle formål mot at Slint kan nevne prosjektet ditt i markedsføring. Men det er mulig å kjøpe lisenser som gir utvidet support, og som kan være aktuelle i tilfeller der kundene krever konfidensialitet.

Slint kan brukes til å lage grafiske brukergrensesnitt til desktopapplikasjoner for Windows, macOS eller Linux, men gründerne sier til DevClass at de innser at det er så mange gratisalternativer til både desktop og mobil at de ikke tror noen vil betale for bruk på disse plattformene. Derfor er det embedded som vil være det mest interessante kommersielle markedet for Slint.

Siden Slint kan kjøre på systemer med mindre enn 300 kB med RAM, som Raspberry Pi Pico, skal løsningen være godt egnet til å utvikle brukergrensesnitt for embedded-løsninger. Ett eksempel kan være å lage grafiske brukergrensesnitt til skrivere og kopimaskiner.

Her kjører et grafisk printerbrukergrensesnitt på en Raspberry Pi Pico (RP2040) med 264 kB RAM. 📸: Slint
Her kjører et grafisk printerbrukergrensesnitt på en Raspberry Pi Pico (RP2040) med 264 kB RAM. 📸: Slint Vis mer

Dette er plattformene du kan bruke foreløpig:

  • Linux (desktop og embedded), macOS, Windows, WebAssembly, Blackberry QNX, samt "bare metal" – altså rett på maskinvaren uten OS.
  • ARM Cortex-M, Cortex-A, Intel x86, RISC-V, Cadence Tensilica, ++
  • OpenGL ES eller andre løsninger for programvarebaserte eller maskinvareaksellererte grafikk-API-er.

Planen videre for Slint er å komme med en grafisk editor som skal la designere og utviklere samarbeide om design og produktutvikling, støtte for flere programmeringsspråk, samt støtte for iOS og Android.

Du kan laste ned og teste ut Slint her.