Klongs comeback: Slik gir WebAssembly klassiske språk nytt liv i nettleseren
Slik får du et programmeringsspråk rett i nettleseren
Du husker sikkert følelsen. Du vil prøve et nytt programmeringsspråk, men så må du laste ned en interpreter, konfigurere miljøet, og håpe at alt fungerer sammen med operativsystemet ditt. Den frustrasjonen alene er nok til at du gir opp.
Men hva om du bare kunne åpnet en fane i nettleseren og begynne å kode?
Nettleseren som prøvelab
Det er akkurat det som skjer med Klong. Dette er et lite array-programmeringsspråk laget av Nils M Holm. Noen har kompilert Holms C-interpreter til WebAssembly og pakket det inn i et notatblokk-grensesnitt i nettleseren. Ingen installasjon. Ingen server-avhengigheter. Bare du, nettleseren din, og noen virkelig uttrykksfulle array-operasjoner.
Notatblokken fungerer som en mini-Jupyter: cellene deler interpreter-tilstand, du kan kjøre dem enkeltvis eller sammen, og arbeidet ditt lagres lokalt. I tillegg kan du eksportere notatblokkene som .kg-filer og dele dem med andre.
Hvorfor array-språk fortsatt er relevante
Array-programmeringsspråk som Klong, J og APL har en dedikert tilhengerskare av en grunn. De lar deg uttrykke komplekse operasjoner med bemerkelsesverdig konsisjon. Ta for eksempel en primtallsjekker:
prime::{&/x!:\2+!_x^1%2}
prime(97)
Ingen løkker. Ingen indekser. Ingen midlertidige variabler. Hele algoritmen får plass på én linje, og den jobber på hele arrays om gangen.
Denne tenkemåten – å behandle operasjoner som transformasjoner på datastrukturer heller enn steg-for-steg instruksjoner – kan fundamentalt endre hvordan du angriper problemer. Selv om du aldri skriver produksjonskode i et array-språk, så overføres tankemodellene til renere og mer uttrykksfull kode i din daglige jobb.
WebAssembly: Den store likemannen
Den interessante tekniske historien her er WebAssembly. I stedet for å skrive om Klong i JavaScript – noe som hadde vært en massiv oppgave for et språk med sin egen interpreter – kompilerte utvikleren den eksisterende C-implementasjonen direkte til WASM. Resultatet: en tynn bro mater kildekoden til interpreteren, mens en web worker håndterer kjøringen og forhindrer at useriøse programmer fryser nettleseren.
Dette mønsteret blir stadig vanligere. Eldre systemer skrevet i C eller C++ kan nå nå nettleseren uten fullstendige omskrivninger. Det demokratiserer tilgangen til kraftfulle verktøy som ellers ville vært bundet til desktop-installasjoner.
Fjerner barrieren for eksperimentering
For utviklere som er nysgjerrige på funksjonell eller array-programmering, fjerner nettleserbaserte miljøer det største hinderet: friksjonen. Du kan eksperimentere i lunsjpausen, prøve eksempler fra en tutorial, og beholde nyttige resultater uten å forplikte deg til et fullt utviklermiljø.
Denne tilgjengeligheten betyr noe. Den beste måten å forstå hvorfor folk elsker disse språkene på, er å oppleve dem selv – ikke å lese dokumentasjon om dem.
Enten du er en startup som utforsker nye paradigm, en nysgjerrig utvikler på jakt etter forskjellige programmeringsstiler, eller bare en som setter pris på elegante løsninger, så representerer nettleserbaserte programmeringsmiljøer som denne Klong-notatblokken den type friksjonsfri eksperimentering som hjelper utviklermiljøet å vokse.
Noen ganger er det beste verktøyet for å lære noe nytt rett og slett det som er lettest å komme i gang med.