Fork me on GitHub
#clojure-norway
<
2023-08-21
>
infosophy06:08:14

🥐 2
🍎 2
augustl07:08:45

motgen!

😂 2
2
cjohansen08:08:31

Programmet til JavaZone er klart! https://2023.javazone.no/program

cjohansen08:08:32

Hvem skal?

🙋 4
👀 2
cjohansen08:08:43

Jeg står på scenen onsdag 10:20

🎉 2
msolli08:08:51

Morn! Lykke til med presentasjonen! (Jeg har ikke billett, dessverre.)

slipset08:08:37

Jeg kunne ha stått på scenen, men er ikke i Oslo akkurat da.

🥲 2
cjohansen08:08:54

Det var sørgelige greier @marius.enerly! Men jeg flyr litt Clojure under radaren

🎉 6
teodorlu10:08:53

Dagens Clojure-dusjtanke: > Det er bedre å designe navnerom enn designe taksonomier. Det er vanskelig å få ikke-taksonomi-navnerom til å funke skikkelig bra i språk med typesystemer. Med “taksonomi” tenker jeg på hierarkier, der vi plasserer katt under pattedyr under dyr … også videre, mens i et “navnerom” vil jeg ha navn som funker bra sammen. Er dette noe dere har tenkt på? :thinking_face: Jeg går liksom og lurer litt på hvorfor jeg liker dette dynamiske språket når jeg egentlig slett ikke har noe imot typesystemer — særlig når man skal refaktorere.

augustl10:08:20

fint satt ord på noe jeg også grubler mye over! Et navnerom er en liten ting som lever sitt eget liv, og som ikke trenger å passe inn i noen taksonomi. Taksonomi-design er der alt går galt, og det er umulig å få riktig (men en taksonomi prøver alltid å fremstå som den er riktig og har dermed innebygget dissonans?) Veldig det samme med Datomic, der skriver du ustrukturerte navnerom, ingen taksonomi, all struktur kommer i business-spesifikke spørringer på navnerommene dine

👍 4
augustl10:08:05

også kjent som “decomplecting”?

teodorlu10:08:23

> men en taksonomi prøver alltid å fremstå som den er riktig og har dermed innebygget dissonans

teodorlu10:08:41

Godt poeng med datomic!

cjohansen10:08:01

Problemet med en taksonomi oppstår kanskje fordi det ofte er mulig å lage flere taksonomier av en gitt mengde råstoff, men når du har valgt én så må du forholde deg til den, og du har ingen anledning til å representere de alternative taksonomiene som ville delt inn råmatrialet på en annen måte?

2
cjohansen10:08:26

Kronglete formulert, og kanskje feil. Men altså: Du kan bare plassere en mengde rådata inn i ett konkret hierarki om gangen.

cjohansen10:08:49

Å ikke bygge hierarkier inn i modellen gir deg heller muligheten til å konstruere dem når de trengs, ved bruk

6
augustl10:08:58

ah, dette er fint. Minner om det Rich Hickey sier om aggregater, og at et bilhjul trenger å gi mening uavhengig av kontekst, og ikke bare i konteksten bil

augustl10:08:12

og at aggregater skaper problemet som “jeg har en maybe sheep”

cjohansen10:08:44

ja, det var sikkert det budskapet jeg hadde i bakhodet 😅 Usikker på om det var @U3X7174KS sin opprinnelige tanke

augustl10:08:23

taksonomier er en håpløs intellektuell øvelse, men noen ganger har man flaks og får til en taksonomi som matcher problemet sitt sånn noenlunde? :thinking_face:

teodorlu10:08:53

jo, dette gir mening! (synes nå jeg) man må liksom tenke litt mer lavnivå. Og det er gjennom å tenke litt mer lavnivå man kan samle sammen de greiene man vil ha når de trengs.

🎯 2
cjohansen10:08:10

byggeklosser heller enn byggverk 🙂

👍 2
teodorlu10:08:20

så elementene i et navnerom er løsere koblet enn elementene i en taksonomi?

augustl10:08:59

en taksonomi er vel per definisjon noe som forsøker å få alt inn i ett system

👍 2
teodorlu10:08:02

det er jo vanskelig å lage taksonomier. I alle fall taksonomier som ikke er feil.

teodorlu10:08:27

Kanskje det er litt av cluet også — hvis vi bare ikke gjør det slipper vi å gjøre akkurat den feilen. Lettere å lage en ting og gi tingen et navn. Så kan vi prøve å bruke tingen sammen med de andre tingene i samme navnerom.

augustl10:08:31

å totalt unngå problemer ved å gjøre ting annerledes er en rød tråd i Clojure og Datomic. Aka incidental complexity

augustl10:08:54

og å påpeke for andre at noe de gjør er incidental complexity viser seg å være en rundt regnet umulig øvelse. “Du har et problem du ikke trenger å ha, som er usynlig for deg”

💯 4
augustl10:08:01

får lyst til å sette på “Eg ser” av Eidsvåg

cjohansen10:08:50

Ja, dette har blitt mitt livs store mysterie

😢 2
augustl10:08:54

“hmm, jeg har aldri hatt problemer med at all data er muterbar i javascript” - og det er jo en korrekt virkelighetsoppfattelse, du bare merker det ikke :S

teodorlu10:08:15

> og å påpeke for andre at noe de gjør er incidental complexity viser seg å være en rundt regnet umulig øvelse. “Du har et problem du ikke trenger å ha, som er usynlig for deg” Her tror jeg utfordringen er å tilby en alternativ måte å forstå verden på (uten taksonomier) heller enn å fjerne incidental complexity.

teodorlu10:08:39

Når jeg lærer Clojure, lærer jeg bedre måter å gjøre ting på!

augustl10:08:00

å drive andre til omvendelse med argumenter og logikk er vel ca. ikke en ting. Tror det beste man har er å stå frem som et godt eksempel på et eller annet vis

teodorlu10:08:56

“se hvor mye vi kan få gjort når vi følger disse prinsippene”

teodorlu11:08:19

mer problemløsning, mindre vifting med armene!

augustl11:08:59

og akkurat det er jo forsåvidt et slags mysterie - hvor er alle disse startupene som er milevis raskere enn andre, fordi de slipper all denne incidental complexityen? Ikke at det er eneste målestokk, men det virker på en måte som det mangler “resultater” på noe vis. Kanskje til dels fordi vi ikke måler software-teams på den måten, og til dels fordi det kanskje faktisk er kjappere å ansette 100 JavaScript-folk til å kjøre ut ting?

teodorlu11:08:04

> og akkurat det er jo forsåvidt et slags mysterie - hvor er alle disse startupene som er milevis raskere enn andre, fordi de slipper all denne incidental complexityen? Fordi du tenker at man kanskje burde klare å levere fortere når man har jobbet litt sammen, og har eksisterende kode man kan bygge på?

augustl11:08:14

usikker på hvilken metrikk man skal gå etter - men hvis Clojure faktisk fjerner incidental complexity, hvorfor er det ikke mere utbredt siden det er økonomisk/lønnsomt å slippe problemer?

teodorlu11:08:07

tja — clojure er jo ikke den eneste måten å bygge kode på heller. Når man sampler mellom alle bedrifter som finnes, tror jeg “har clojure vs har ikke clojure” drukner litt i “har teknologiteam som faktisk funker og kode man faktisk klarer å bygge videre på”

teodorlu11:08:26

et argument jeg leste https://www.oilshell.org/blog/2022/03/backlog-arch.html, i mine ord: > det er to måter å bygge store systemer på. > den ene er med typer på alt sammen. > den andre måten er å ha en “smal midje med data” og operasjoner som bygger på den smale midjen. jeg føler liksom at jeg liker smal midje (clojure, unix) bedre. Men jeg klarer ikke avfeie at den andre metoden funker også. Windows ble jo en hakket større kommersiell suksess enn Unix.

slipset20:08:40

Og midt oppi alt dukket nebbdyret opp.

2
augustl07:08:11

the taxonomy tax 🔥

😁 2
teodorlu07:08:46

thinking in types: the tax of taxonomies

odinodin10:08:59

har lyst til å henge denne på veggen på kontoret :star-struck:

❤️ 10
😁 4
augustl13:08:42

fra jobb i dag (for 9000. gang): “hmm, lurer på når denne kolonna i databasen fikk denne verdien, og hvorfor”

👍 4