Er elendig i nynorsk – laga nynorskspråket «Brunost»
Han brukar ikkje nynorsk sjølv, men har laga programmeringsspråket Brunost – på nynorsk. Snart kan det også bli laga Vaffel og Syltetøy.
– Eg fekk faktisk 2 i nynorsk på ungdomskulen, trass i å komme frå Midt-Telemark, utviklar John Mikael Lindbakk til kode24.
Men det er intet hinder for å lage eit programmeringsspråk på nettopp nynorsk, synest han.
Og det har han gjort. Språket heiter Brunost.
– Brunost er eit heilt funksjonelt programmeringsspråk, bygd opp frå botnen. Det er eit interpreted språk, på same måte som Python, men syntaksen er 100 prosent nynorsk. Språket omsettast ikkje til noko anna språk og er heilt frittståande, legg Lindbakk til.
Måtte rette opp i feil
Til vanleg er Lindbakk konsulent og fagansvarleg for Java hjå Bspoke, men Brunost er laga som eit sideprosjekt.
Han har allereie fått mykje respons på språket i IT-forum på nett.
– Nynorsken min er så dårleg at mange som har kommentert på Reddit og Hacker News har peika ut ting som eg har måtta rette opp i!
Han har då også svara på spørsmål på bokmål til denne saka.
– Kvifor laga du Brunost?
– Det er nok ingen djup motivasjon bak Brunost, anna enn at eg sjølv blei underhalden av tanken på å kode på nynorsk.
Ikkje seriøst meint
Det er ikkje første gong nokon lagar eit norsk programmeringspråk. I fjor kom SkarpC som ein slags aprilspøk, som overset norsk syntaks til C#.
– Brunost tar ei anna tilnærming: det er eit heilt sjølvstendig språk som ikkje omsettast til noko anna, noko som gir full fridom til å forme syntaksen slik eg ønsker, seier Lindbakk.
Han understrekar at Brunost ikkje er meint for seriøs bruk i produksjon.
– Hadde eg laga eit språk som eg meinte at folk burde bruke, så ville det vore veldig annleis.
Slik fungerer det
Så til dei tekniske detaljane:
Oversettaren til Brunost er skrive i lågnivå-språket Zig, som siktar seg inn på C/C#-marknaden.
– Eg har ikkje skrive noko Zig før og tenkte at dette var ein gylden moglegheit. Syntaksen til Brunost er veldig inspirert av språkfamilien C, så det vil sjå kjent ut for dei fleste utviklarar som jobbar med Java, C#, og så vidare.
bruk terminal
terminal.skriv("Hei verda!")
– I Brunost har vi det meste ein forventar i eit programmeringsspråk, som loops, også kjent som medan og forKvart:
låst liste er [1, 2, 3]
forKvart nummer i liste {
terminal.skriv(nummer)
}
open teljar er 1
medan (teljar erMindreEnn 4) gjer {
terminal.skriv(teljar)
teljar er teljar + 1
}
Han påpeikar at kvar setning les som ei nynorsk setning.
– Kvart programmeringsspråk må balansere at det skal vere lesbart, ordrikt og konsist. Brunost lener seg meir mot å vere ordrik på ein måte som er naturleg for nokon som les nynorsk. Ein annan eigenskap er mutability. På same måte som Kotlin har "val" og "var" så har Brunost "open" og "låst". Dette seier noko om variabelen er "open" for endringar, eller om den er låst, seier Lindbakk.
Så fortel han eigenskapen typar som har variablar.
– I dette tilfellet har vi namn, som er ein låst verdi som vi ikkje har lov til å endre. Og vi har alder, som er "open" for endringar.
bruk terminal
type Bil {
låst namn er "ukjend"
open alder er 0
}
open minBil er Bil {
namn er "Toyota",
alder er 5,
}
minBil.alder er 10
terminal.skriv(minBil.alder)
Slit med tastaturet
Han trur den mest unike eigenskapen til Brunost er «påkrevd nynorsk».
– Brunost sin omsettar kjem med ein nynorsk ordbok som sjekkar om namna på variablar, typar, funksjonar og parameter er nynorsk. Er det ikkje nynorsk, feilar applikasjonen. Er dette ein god ting? Nei. Har eg planar om å utvide det til å sjekke strengar for nynorsk også? Ja, seier Lindbakk.
Dersom ein forsøker å skrive noko som ikkje er nynorsk, kjem denne feilmeldinga:
Feil: Namnet er ikkje gyldig nynorsk: 'thisIsNotNynorsk' på linje 8, kolonne 6
Det kan vere ei utfordring. Enno verre for Lindbakk er det at han brukar ein amerikansk tastatur-layout til vanleg.
– Då er det ekstremt frustrerande å skrive Brunost der eg stadig vekk må byte mellom norsk og engelsk layout! Brunost er kanskje det verste språket for meg: Eg fekk 2-ar i nynorsk OG eg kan ikkje bruke tastaturet mitt slik eg pleiar.
Gjenopnar lukka sår
– Korleis har responsen vore så langt?
– Veldig god! Det er dei som kritiserer nynorsken min og gjenopnar lukka sår frå då eg lærte nynorsk på ungdomskulen. Så er det dei som ikkje nødvendigvis tar Brunost så seriøst, men ser noko større med ideen, seier utviklaren.
Over 3000 nordmenn har vore inne på nettsida og lese om Brunost.
– Det er 2995 fleire enn eg forventa.
Han fortel at nokon har bedt han lage ein høgnorsk versjon av Brunost, utan at han har umiddelbare planar om det.
– Sjølv om det freistar.
Vaffel og Syltetøy
Så kva blir det neste prosjektet? Det veit han ikkje enno. Men han er ikkje ferdig med Brunost heilt enno.
Snart kan det komme både ein server kalla Vaffel og eit rammeverk kalla Syltetøy.
– Mitt personlege mål med Brunost er å komme så langt at eg kan hoste ei nettside om Brunost... i Brunost. Det vil seie at eg må få på plass ein web server av noko slag. Moglegvis eit rammeverk.
Eit av måla framover er å støtte streams og gjere Brunost til det mest nynorske programmeringsspråket på marknaden.
Han er også open for å samarbeide med andre utviklarar der ute for å utvide konseptet.
– Det er mykje kult ein kan bygge vidare på her om ein leitar etter eit prosjekt, og det er veldig ope for alle erfaringsnivå her. Studentar, hobbytenkarar og profesjonelle er alle velkomne om dei føler seg inspirert. Eg kan ikkje garantere at dette er produktiv bruk av tida deira, vel og merke, smilar Lindbakk.