clojure-norway

mokr 2026-06-04T05:28:43.056769Z

Morn!

slipset 2026-06-04T05:36:00.663519Z

Mrn. Pre-sommer lunch?

hypirion 2026-06-04T05:44:30.033839Z

Morn!

gunnar 2026-06-04T05:45:52.027399Z

Morn!

boosja 2026-06-04T05:51:45.474879Z

Morn!

msolli 2026-06-04T06:50:24.676989Z

Morn!

emil0r 2026-06-04T07:05:07.208379Z

Morn

2026-06-04T07:44:05.903799Z

Morn

teodorlu 2026-06-04T08:18:29.848709Z

God morgen!

leifericf 2026-06-04T09:35:19.009039Z

[...] fjerne detaljer fra koden som ikke bærer teori.Dette med å "bygge et vokabular for å prate om domenet" er også noe jeg bemerket meg fra #CKKPVDX53 - Christoph og Nate prater ofte om det. Det er også et tema som stadig dukker opp i Prolog community, som er enda mer deklarativt enn Clojure (Clojure's implementasjon av miniKanren i core.logic er basically samme konsept). Jeg tenker også på konspetene "essential tasks" og "accidental tasks" som definert av Fred Brooks i "https://web.archive.org/web/20160910002130/http://worrydream.com/refs/Brooks-NoSilverBullet.pdf" når dette temaet dukker opp.

👍 1
leifericf 2026-06-04T09:37:03.211619Z

Med Clojure og andre deklarative språk tenker man mer på hva en ønsker å oppnå ("essential tasks") og mindre på hvordan de tingene gjøres rent mekanisk ("accidental tasks.")

teodorlu 2026-06-04T09:38:25.971619Z

Jepp! Få vekk støyen, behold signalet. Da leser koden mye bedre! 😊

leifericf 2026-06-04T09:39:02.735679Z

Egentlig er jeg veldig fascinert av logisk programmering i Prolog og core.logic Det føles nesten litt "magisk."

leifericf 2026-06-04T09:43:05.839329Z

Fun fact: Joe Armstrong skrev den første versjon av Erlang i Prolog. Det var i 1986, samme året jeg ble født. Erlang ble skrevet om til C i 1989 og ble da 70x raskere enn Prolog-versjonen. https://www.erlang.org/blog/beam-compiler-history/ kan en lese hele den fantastiske historien/evolusjonen til BEAM.

teodorlu 2026-06-04T09:53:36.007719Z

Veldig spennnende at Armstrong & co implementerte hele Erlang én gang først før de begynte med lavnivå-koden. Først få ut hele problemet og hele implementasjonen, før man prøver å gjøre implementasjonen effektiv. Da vet man liksom hvordan dataen bør flyte gjennom systemet.

leifericf 2026-06-04T09:55:55.415459Z

Ja, de dro "make it work, then make it better" til det ekstreme.

leifericf 2026-06-04T09:57:09.011479Z

Så gjorde de implementasjonen ekstremt deklarativ først (Prolog), før de gikk low-level (C), og deretter (delvis) "self-hosted." Den store nedsiden med Prolog og logisk programmering generelt er at det er veldig treigt og ressurskrevende sammenlignet med andre fremgangsmåter.

leifericf 2026-06-04T09:58:34.795889Z

Hvis logisk programmering hadde vært raskere hadde det vært den "beste" måten å "kode direkte i domenet" på.

leifericf 2026-06-04T09:59:46.467579Z

Logisk programmering føles som neste naturlige steg i retningen høyere abstraksjon etter funksjonell programmering. Jeg venter i spenning på at noen skal implementere noe à la Prolog (idéen, ikke nødvendigvis syntaksen) på en mer effektiv måte, som gjør det realistisk å bruke utenfor akademiet.

leifericf 2026-06-04T10:07:43.731279Z

Logisk programmering har ikke hatt sin "Rich Hickey" enda, hehe

teodorlu 2026-06-04T10:11:52.716429Z

Tja — skal teorien om programmet enkode dataflyten? Hvis nei er logikkprogrammering bedre, hvis ja, bør programmene våre ha en rekkefølge de må kjøres i. Jeg har hatt ugreie opplevelser med feilsøking når lazyness er involvert, både i Clojure (exception har tryna i urealisert slutten av en (map ,,)) og i Haskell. Hvordan dataen flyter er høyst relevant hvor hvordan koden yter!

👍 1
🤔 1
teodorlu 2026-06-04T10:39:33.005069Z

Således er jo også Clojure en mening om hvilke verdier som bør være i språket! • Immutable data structures er verdt ytelseskostnaden, og bør fremmes helt til topp. • En del ytelsesgreier er ikke verdt teoristøyen. Folk som kritiserer Clojure fra lavnivå-perspektiv tar ofte tak i akkurat det; de ønsker ytelsesbeslutninger mer "in your face" enn det Clojure tilbyr.

👍 1
leifericf 2026-06-04T11:00:31.389509Z

Ja, enig. Men Clojure kan også ha god ytelse, ref. https://mino-lang.org/documentation/performance/ 🙂 Hadde jeg valgt Zig fremfor C kunne den vært enda raskere.

teodorlu 2026-06-04T11:03:13.543359Z

Jepp! Jeg skulle ønske feks Zig-godsakene kunne vært levert som en greie man brukte interkativt fra Clojure. Representere informasjonen at Zig-AST trenger i Clojure, og kompilere Zig-funksjoner interaktivt i REPL-loopen.

💯 1
leifericf 2026-06-04T11:03:50.625219Z

Kul tanke!

leifericf 2026-06-04T11:05:10.097039Z

Clojure data -> Zig AST, JIT-aktig typ?

leifericf 2026-06-04T11:07:08.809859Z

Det er opp til 3 lag med IR mellom Zig AST og maskinkode også, avhengig av plattform.

teodorlu 2026-06-04T11:26:23.051189Z

jepps!

teodorlu 2026-06-04T11:27:44.301169Z

tror utfordringen blir å gjøre det hyggelig å redigere. Hvis man er i en clojure-fil blir zig-style completions kjipt. Hvis man er i en Zig-fil blir Clojure-bruken kjip.

🤔 1
leifericf 2026-06-04T11:32:13.488149Z

https://github.com/clojurewasm/ClojureWasm rusler i samme nabolag om ikke annet.

teodorlu 2026-06-04T11:37:45.974489Z

her ser det ut som de har implementert en ny Clojure-dialekt i Zig, og kompilert zig-koden til webassembly? jeg har liksom ikke lyst til å miste JVM-plattformen =/

leifericf 2026-06-04T12:07:57.763999Z

Japp! Den der ligner mer på noe à la mitt eksperiment med mino

leifericf 2026-06-04T12:08:55.785099Z

JVM-plattformen er ganske awesome! Jeg har et nytt prosjekt på trappene som bruker interop og Java libs (litt på samme måte som med https://eido.leifericf.com/).

2026-06-04T12:15:10.596959Z

Derfor er ontologi nyttig.

Zeniten 2026-06-04T15:40:02.453149Z

Morn!

teodorlu 2026-06-04T08:27:01.388599Z

Nå som såpass mange er enige om at programmering kan og bør sees som en øvelse i å bygge teori (Naur 1985), har jeg lyst til å løfte fram en annen, gammel, relatert ide: å se på notasjon som en måte å tenke på (Iverson, 1979). Jeg vet ikke nøyaktig hva Naur tenkte om programmeringsspråk, men la oss anta at han skrev C-liknende greier. Da blir notasjonen automatisk sløv, mellom linjene kode som uttrykker teorien blir det allokering, deallokering, ekstra argumenter for lengden på lister, etc. Når vi skriver Clojure fra dag til dag, kan vi gjøre en øvelse med å fjerne detaljer fra koden som ikke bærer teori. Da forfremmes koden fra enkoding av maskininstrukser til notasjon. Notation as a Tool of Thought (Kenneth E. Iversons Turing Award Lecture fra 1979) gir en haug med eksempler på når god notasjon gjør problemet og løsningen klar.

👀 2
teodorlu 2026-06-05T07:26:26.650199Z

@andersmurphy da tenker du på ontologien som notasjon, og derfor som et mentalverktøy? At øvelsen i å skrive ut ontologien lar deg strukturere og få oversikt? Eller misforstår jeg?

2026-06-05T07:34:07.126579Z

Begge dele, jeg ser en ontologi som en vej til at udvikle et fælles sprog. Hvis man tænker over det, især i clojure, bliver en ontologi en data-DSL, som derefter ender som en del af ens notation.

👍 2
2026-06-05T07:38:27.912739Z

> Begge deler, jeg ser på en ontologi som en måte å utvikle et felles språk på. Hvis du tenker over det, spesielt i clojure, blir en ontologi en data-DSL, som deretter ender opp som en del av notasjonen din.

teodorlu 2026-06-05T07:45:16.927949Z

Gir mening. Ontologien tvinger fram en disiplin man kan hoppe over når man fortsetter å uttrykke seg vagt. Iverson sammenlikner matematisk notasjon med programmeringsspråk. Matematisk notasjon er kompakt, men tvetydig. Den tvetydigheten gjør notasjonen sløv i enkelte tilfeller. Han skriver om det i artikkelen, men jeg finner ikke noe godt sitat akkurat nå.

teodorlu 2026-06-05T07:45:36.853489Z

Bare skriv dansk, altså, null problem for meg å lese!

👍 1
2026-06-05T08:09:06.654979Z

Den første komprimering er akronymer. Derefter APL. 🤣

2026-06-05T08:10:57.927639Z

Spørgsmålet er, hvor meget du fortsætter med at udvikle de ulæselige symboler i din notation.

2026-06-05T08:12:48.213949Z

eller udvider du det bare med læselige ord?

teodorlu 2026-06-05T08:16:49.362199Z

jepp 😄 "husk hva alle symbolene betyr" funker OK i matematisk notasjon (det er ikke mange symboler, og man er enige om hvilke symboler man bør bruke) og i APL, så lenge man skriver matematikk. Gi meg navn i navnerom! Det er her Clojure eksisterer i et så spennende design-rom. Vi har: 1. en konsis notasjon for matematikk og uttrykk 2. null forvirring fra infiks-operatorer 3. … og gode måter å modellere informasjon og kode (navn og navnerom for vars og map-keys med navnerom) APL ignorerer 3, sånn jeg ser det.

💯 1
2026-06-05T08:25:35.440829Z

Computer Science Meta notation

👀 1
😁 1
teodorlu 2026-06-05T08:28:38.537139Z

Guy Steele om (3): https://www.youtube.com/watch?v=_ahvzDzKdB0

🤣 1