This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-03-15
Channels
- # announcements (1)
- # architecture (8)
- # babashka (7)
- # beginners (5)
- # biff (8)
- # calva (24)
- # cider (9)
- # clerk (14)
- # clj-kondo (7)
- # clojars (14)
- # clojure (49)
- # clojure-europe (11)
- # clojure-nl (1)
- # clojure-norway (90)
- # clojure-uk (3)
- # clojurescript (5)
- # core-typed (70)
- # cursive (35)
- # data-science (4)
- # datalevin (6)
- # datomic (2)
- # emacs (3)
- # fulcro (1)
- # holy-lambda (1)
- # hyperfiddle (5)
- # lsp (26)
- # malli (28)
- # off-topic (9)
- # re-frame (21)
- # releases (1)
- # shadow-cljs (7)
- # squint (6)
- # testing (14)
> En annen ting jeg tenkte: Nå tar jeg “REPL-connected editor for gitt.” LFE er en Lisp. Når selv ikke andre Lisp utviklere forstår idéen og verdien av det, så forstår jeg bedre hvorfor det er vanskelig å selge inn idéen til andre som ikke er kjent med Lisp i det hele tatt. Det finns minst två kategorier av Lisp-utvecklare: 1. Lisp-kodare som vill göra en Lisp (på kul eller för att det saknas en Lisp) 2. Icke-lisp-kodare som vill göra ett programeringsspråk och får veta att det är relativt mycket enklare att göra en Lisp än något C-liknande. Kanske hittar de till https://www.buildyourownlisp.com/ eller https://github.com/kanaka/mal Den första kategorin börjar med att se till att det finns en repl för interaktiv programmering, eller tänker sig väldigt noga för innan de skjuter upp den grejen (👀 ClojureDart). Den andra kategorin vet inget om interaktiv programmering och förstår inte tillfället de står inför när de börjat göra sin lisp och implementerat sin första read-eval-print-loop.
Peter Deutch var väl bara 14 när han började porta Lisp 1.5 till PDP-1 och där också ska ha gjort den första REPL:en. Är det en egen kategori?
@pez vil du si at de to kategoriene Lisp-utviklere har forskjellig motivasjon? For noen er Lisp målet, mens for andre er ikke Lisp i seg selv målet?
god morgen! La dette bli nok en dag med fruktbare og lærerike diskusjoner om programmering!
@teodorlu nej, jag tror inte att det handlar om målet egentligen, utan om förkunskaper. Om man inte känner till interaktiv programmering är risken stor att man missar/struntar i det steget. Om man känner till interaktiv programmering (och gillar det) kommer man se till att det ingår i ens Lisp. För den senare kategorin behöver det inte ens vara en Lisp man utvecklar. Man kommer överväga att låta interaktiv programmering påverka ens design av språket.
Ett exempel är när Borkdude och jag skulle släppa #C03DPCLCV9N. Borkdude som är en radikal release early-typ, insisterade på att vi kunde släppa det utan en nrepl-server, men jag vägrade. Jag använder interaktiv programmering mycket mer än han gör. Han behöver det inte lika mycket. Saker kommer ut rätt vid första försöket när han är igång. 😃
De siste par månedene har jeg sporet av litt og tatt en grundigere kikk på Fennel, Prolog, Erlang (igjen), LFE (LispFlavouredErlang), og Gleam. Konklusjon: Det er mye kult som skjer der, men det er ikke kult nok til at jeg synes det er verdt å bruke spesielt mye tid og energi på det. Det er rett og slett uutholdelig uten "interaktiv utvikling," som vi har i Clojure. Men hvis det blir noe logic programming på meg blir det via core.logic
. Trenger jeg å utvikle for BEAM blir det sannsynligvis LFE eller Clojerl. Det er interessant at Clojure er så bra at andre ting føles litt "meh" i forhold. Spesielt når man har tilgang på så mange forskjellige runtimes via Clojure.
Kult at du går så hardt til verks 🙂 Får meg til å skamme meg litt over hvor lite jeg faktisk ser på andre miljøer 🙈
Det er noe med det siste poenget ditt: Clojure er så bra at andre ting føles litt "meh". Når du har hatt den opplevelsen nok ganger så forsvinner litt av nysgjerrigheten... Litt dumt kanskje, men da er det bra at vi late har nysgjerrigperer som deg som trår vannet litt for oss 😄
Det er forsåvidt mulig å få til interaktiv utvikling i Fennel om man bruker neovim 🙂 (og sikkert andre ting) Ganske kult siden nvim selv bruker lua som konfigurasjon og du evaluerer kode i selve editoren. Når det er sagt har jeg ikke brukt det til mer enn konfigurasjon, og selv da savner jeg clojure som er hakket mer robust og har mer verktøy o.l. tilgjengelig.
Etter jeg oppdaget Clojure har jeg blitt mer interessert i runtimes/VM-er enn programmeringsspråk. Det er så utrolig mange programmeringsspråk, men relativt få runtimes/VM-er. Da inkluderer jeg "native," typ LLVM/MLIR, etc. Hvis man kan targete JVM, GraalVM, BEAM, og native, så kan man i praksis gjøre alt. Det eneste Clojure ikke er god på enda er "native," men #jank har nylig endret kurs og skal kompilere direkte til LLVM IR, og derifra til maskinkode.
Jo, men vi har hatt maaange laaange tråder i kanalen, og forfatteren har endret kurs.
Hehehe! Takk, det er " a blessing and a curse." Mildt autistiske/ADHD-aktige manier i "bursts."
Mitt største problem er at jeg ikke klarer å holde interesser og fokus spesielt lenge. Kunst, musikk og programmering generelt har vært unntakene. Innenfor programmering er det kun Clojure som har holdt meg noenlunde i ro i en lengre periode. Og lesing/skriving. Venner og familier irriterer seg ofte over at jeg gjør alt for mye samtidig og fullfører svært lite 😅 Med en gang jeg føler jeg har tappet et tema eller lært de mest interessante aspektene, durer jeg videre.
For eksempel, det var en periode jeg kun leste om botanikk og mykologi, blomster, frø og sopp. Jeg brukte et drøyt halvår på å lære om dufter og hvordan man lager dem, etc. Mye rart. Det meste er ubrukelig, men alt kan være interessant!
> Kult at du går så hardt til verks 🙂 Får meg til å skamme meg litt over hvor lite jeg faktisk ser på andre miljøer 🙈 Personlig tenker jeg at det er en superfordel at noen går bredt (hva gjør alle språkene?), mens andre går dypt (nå skal vi helt ned i Lisp-kaninhullet, særlig den biten som gjør Clojure særegen).
> Det er forsåvidt mulig å få til interaktiv utvikling i Fennel om man bruker neovim 🙂 (og sikkert andre ting) > Ganske kult siden nvim selv bruker lua som konfigurasjon og du evaluerer kode i selve editoren. Når det er sagt har jeg ikke brukt det til mer enn konfigurasjon, og selv da savner jeg clojure som er hakket mer robust og har mer verktøy o.l. tilgjengelig. Sååå … Fennel kompilerer til Lua, og Neovim utvides med Lua. Betyr det at vi kan få en lisp-maskin-opplevelse med neovim og fennel? Ala Emacs & Emacs Lisp? Eller bommer jeg fullstendig nå?
Stemmer! Det er i alle fall på god vei. Det at fennel må kompileres før det sendes inn i neovim legger nok til litt ekstra slik at det ikke føles like native som emacs og emacs lisp. Godeste Olical utvikler verktøy for å lette denne overgangen da: https://github.com/Olical/nfnl. Men jeg har ikke brukt emacs nok til å si for sikkert hvor stor forskjellen er mellom de to opplevelsene.

Spennende! Dette vil jeg prøve ut. Jeg bruker Neovim til småting selv (når jeg bare vil fortsette i terminalen jeg har åpen). Akkurat nå har jeg null config. Config i Fennel og mulighet til å laste ny config uten å restarte prosessen høres spennnende ut! 💯
Anbefaler å sjekke ut dette prosjektet i så fall https://github.com/rafaeldelboni/cajus-nfnl/ ! Gir deg et fennel-oppsett med noen grunnleggende plugins for å gjøre LSP og sånt. Hadde startet der selv om jeg ikke hadde så mye egen config å porte over
Av alle disse tingene er det nok Lua som interesserer meg mest, men mest Lua VM (ikke så mye selve språket) og Fennel. Lua appelerer til meg fordi det var designet for å være lite/enkelt, raskt, embedable og med særskilt fokus på interop med andre språk, særlig C/C++. På en måte føler jeg Fennel + Lua VM er en "konkurrent" av Clojure + GraalVM (Babashka). Jeg har ikke sjekket dette men jeg mistenker at Fennel er enda mindre, raskere og har bedre interop enn Babashka pga. Lua VM. Men Babashka har kanskje bedre tooling og definitivt et større og mer aktivt community.
Enig, Fennel er veldig nisje slik jeg har skjønt det. Har ikke prøvd koble det på det større Lua-økosystemet for å løse typiske problemer jeg ville brukt babashka til (da jeg har null peiling på lua utenom fennel), men det hadde vært spennende å prøvd ut
Fennel er heller ikke "førsteklasses funksjonelt", av mangel på et bedre uttrykk. Det er noen clojure-inspirerte bibltioketer, men en ikke like smud som å bruke et språk som er designet for FP
Det hadde vært interessant å se en fullverdig Clojure implementasjon på Lua VM. Men jeg vet ikke om det er mulig en gang fordi Lua har kun én collection type de kaller "Table" som ligner på en slags rar hybrid av vector og map. Jeg vet ikke om resten av Clojure kan implementeres over det.
Lua har en JIT compiler så det skal være mulig (tror jeg) å oppnå "the full Clojure experience."
Det er sikkert mulig i teorien, men jeg tror det være en enorm oppgave. Å følge jank-bloggen gir et godt innblikk i hvor komplekst det er å faktisk implementere en clojure
Denne er interessant for å lese om Fennel vs. clojure https://fennel-lang.org/from-clojure
> Note that nil
in Fennel is rather different from Clojure; in Clojure it has many different meanings, ("nil punning") but in Fennel it always represents the absence of a value. As such, tables cannot contain nil
. Attempting to put nil
in a table is equivalent to removing the value from the table
🙃
Spent på hvordan Luajit vil takle å rydde opp etter immutable collections :thinking_face:
Nevnes i artikkelen over at det finnes noen egne FP-biblioteker for lua, kanskje de gjør noe lurt 🤷
> In general, Fennel isn’t exactly compatible with Clojure, as it is a different language. There’s no arity overloading, data structures aren’t persistent, and there are no lazy sequences, only iterators over tables. All these features can be implemented as libraries, and I’ve already made a bunch that should make a Clojure programmer feel more at home. Kilde: https://andreyor.st/posts/2023-05-15-clojures-coreasync-port-for-the-fennel-language/
TIL https://moonscript.org er også en greie 🙂
Fant også noen https://www.mcours.net/cours/pdf/hasclic3/hasssclic818.pdf som var litt vanskelig å finne. Og https://the-ravi-programming-language.readthedocs.io/en/latest/lua_bytecode_reference.html. Så nå er det "bare" å implementere en renspikka Clojure på Lua VM 😛
Og det finnes visst https://gitlab.com/technomancy/jeejah (har ikke testet enda).
> Ett exempel är när Borkdude och jag skulle släppa #C03DPCLCV9N. Borkdude som är en radikal release early-typ, insisterade på att vi kunde släppa det utan en nrepl-server, men jag vägrade. Jag använder interaktiv programmering mycket mer än han gör. Han behöver det inte lika mycket. Saker kommer ut rätt vid första försöket när han är igång. 😃 Jeg har hatt litt samme erfaring med å jobbe med Borkdude. Han klarer å se for seg hvordan alt blir på første forsøk, så han trenger ikke at systemene støtter interaktivitet! Jeg har slitt med akkurat det på Neil. Ikke alt er intuitivt (for meg), men han kan alt. Så for han holder det med noen enhetstester, noen integrasjonstester og CLJ-kondo, så er han effektiv. Jeg har hatt behov for å gå rolig fram med REPL og finne ut hva som gjør hva. Så jeg har litt andre behov til kodebasen enn det han har.
bevis på at @christian767 egentlig er en JS-utvikler (og du store min så gøy det var å finne igjen flickr-kontoen jeg hadde glemt at jeg hadde!)
Aldri vært så star struck som da jeg spiste frokost med David Nolen på Web Rebels 2013.
Bildet over er fra Cosmopolite, husker ikke når vi var der, tror det var tidligere?
Jeg spiste frokost med Reginal Braithwaithe det samme året, da var jeg også star struck 😄
Sånn til interaktiv programmering og sånt. emacs har http://doc.endlessparentheses.com/Fun/inferior-lisp-mode.html som inf-clojure-mode
er bygd på. Dette ga interaktiv programmering til f.eks planck. Hvis jeg ikke tar helt feil, er denne igjen bygget på comint-mode (https://www.masteringemacs.org/article/comint-writing-command-interpreter) som også brukes av emacs sql mode.
Så når man har en shell-aktig greie og en skikkelig editor, så er en halvfungerende repl integrasjon ikke så fryktelig langt unna.
@magnars og @christian767 er velkomne til å emacs-splaine meg.
ah, David Nolen hadde jo en “influencer-periode”, synd han har forsvunnet litt under radaren
Hørte ham si på en podcast at han tok jobben med å reise rundt på konferanser for å promotere Clojurescript, men at han nå var ferdig med den delen av jobben.
Min policy för att acceptera kontaktförfrågningar på LinkedIn är att om det är en Clojure-programmerare så säger jag ja! Bara säger. Här är en grej som föddes i den här gruppen som jag just postade till LinkedIn: https://www.linkedin.com/feed/update/urn:li:activity:7174354878029316096/
Av alle disse tingene er det nok Lua som interesserer meg mest, men mest Lua VM (ikke så mye selve språket) og Fennel. Lua appelerer til meg fordi det var designet for å være lite/enkelt, raskt, embedable og med særskilt fokus på interop med andre språk, særlig C/C++. På en måte føler jeg Fennel + Lua VM er en "konkurrent" av Clojure + GraalVM (Babashka). Jeg har ikke sjekket dette men jeg mistenker at Fennel er enda mindre, raskere og har bedre interop enn Babashka pga. Lua VM. Men Babashka har kanskje bedre tooling og definitivt et større og mer aktivt community.
I blant kan man tenke at det er litt synd at denne gruppa går på norsk. Det er så mye lurt som blir sagt her.
Samme her! Jeg har gått inn i noen andre globale kanaler med et "#C061XGG1W mindset" og brent meg et par ganger 😅
Jeg tror kanskje litt av grunnen til at det funker såpass bra i #C061XGG1W er fordi det er en litt liten gruppe. Hvis vi hadde 100-doblet antall folk i kanalen, er jeg redd noe av magien ville blitt borte.
Og jeg har bare lært at “god morgen” er lurt av @U0525KG62 He’s the OG “Good morning”
Det er ganske forfriskende at https://www.lua.org/pil/ kun er på 289 sider. En indikasjon på at språket er lite. Den kan jo leses på noen få dager. Kjøpte e-boka til kun $22 USD. Det er brått 12 år siden sist jeg har rørt dette, og jeg må bruke det på jobb igjen (for å skripte C++ spillmotoren). Jeg har allerede på agendaen å lære meg Fennel og vise det til de andre som bruker Lua på jobben etter hvert 🙂
https://youtu.be/I_rzFahRFeE?si=OP6eAYWOAHnA3evi var også en fin intro.
Jeg tror lua er grunnen til at neovim er mer populært i dag. Jeg liker at det er et enkelt språk: den samme egenskapen som clojure har og grunnen til at jeg liker å jobbe med den. Lua betyr måne på portugisisk. https://en.wikipedia.org/wiki/Lua_(programming_language)