Veien til native ytelse
Hvordan Norscode beveger seg fra en kjøretid mot native maskinkode med AOT — og hva det ærlig betyr for farten.
Et vanlig spørsmål er hvor raskt Norscode egentlig er, og hvor raskt det kan bli. Det korte svaret: språket beveger seg oppover, trinn for trinn, og målet er native ytelse — uten å gi slipp på lesbarhet og trygghet.
Fra kjøretid til maskinkode
I dag kjøres et ferdig program som en lenket pakke via kjøretiden. Det er kompilert og statisk typet, og godt foran tolkede språk — men mellom programmet og maskinen ligger fortsatt et lag. Neste steg er AOT: å kompilere rett til native maskinkode for Linux, macOS og Windows. Da forsvinner mellomlaget, og du sitter igjen med en helt vanlig kjørbar fil.
Hva AOT gir
Å fjerne tolke-laget er det største enkeltspranget et språk kan ta i ytelse. Regnetung kode som før gikk gjennom kjøretiden, kjøres nå direkte av maskinen. For de aller fleste tjenester betyr det at ytelse slutter å være noe du tenker på.
Ærlig om taket
Norscode har en søppelsamler som rydder minnet for deg. Det er en stor del av hvorfor språket er trygt og lettlest — og samtidig grunnen til at det aller siste laget av ytelse tilhører språk med manuell minnekontroll, som Rust og C. Med AOT havner Norscode i selskap med raske, kompilerte språk som Go og C#: mer enn nok for nesten alt, men ikke helt på metallet.
Bygges nå
Verktøykjeden har allerede byggeklossene for dette — kodegenerering for x86-64 og ARM64, og skriving av native kjørbare filer for de tre store plattformene. Det er ikke ferdig, og vi lover ikke tall vi ikke har målt. Men retningen er lagt, og den er lagt uten å ofre det Norscode er til for.
Les også
- Nytt nettsted for språketnorscode.no handler nå om programmeringsspråket, med dokumentasjon, eksempler og nedlastinger.
- Hvorfor kjøretiden sier neiEn kort forklaring av kapabilitetsmodellen, og hvorfor den er slått på fra første stund.
- Kompilatoren bygger seg selvNorscode er selvhostende: verktøykjeden er skrevet i språket den kompilerer.