Fork me on GitHub
#clojure-norway
<
2022-03-08
>
oddsor11:03:58

Ref samtale i dagens Clojure-lunsj; her er presentasjonen til Fred George om mikrotjenester og om at han ikke vet om det er nyttig i en Clojure/FP-verden https://youtu.be/yPf5MfOZPY0

1
👌 1
💯 1
leifericf12:03:23

Dette har også vært en diskusjon i Erlang-miljøet, hvor man kan si at alt er mikrotjenester by design. Typ alt man gjør er selvstendige prosesser som kun kan prate med hverandre via utveksling av meldinger. I og med at hele Erlang-økosystemet er lagt opp slik, og alle prosessene kjører på samme virtuelle maskin (som kan være distribuert over utallige fysiske maskiner i et nettverk), så gir det ikke like mye mening å prate om “microservices.” Jeg har ikke sett på denne presentasjonen fra Fred George enda, men jeg skal sjekke den ut senere—nysgjerrig på om tematikken ligner.

oddsor13:03:16

Den ligner; han nevner Elixir som et FP-alternativ til Clojure som ligner mer på hvordan han ser verden. Det praktiske med kubernetes/kafka som lim i stedet for BEAM’en er jo at det er mulig å ha et mer flerspråklig system.

👍 1
oddsor13:03:15

Personlig syns jeg BEAM’en er spennende, skulle ønske jeg forstod mer av hva man “får” i forhold til å bruke podder/containere og en felles meldingsbuss 😢

msolli13:03:57

Clojure dukker opp rundt 36:00.

👍 1
leifericf13:03:24

@UDB2Q0W13 Ja, det gir mening å se på Kafka og Kubernetes som “alternativer” til BEAM på noen måter. Særlig Kafka. Jeg holdt på med Erlang/OTP og Elixir før Clojure, og startet også “Elixir |> Oslo” meet-up gruppa i sin tid 🙂 Jeg er fortsatt ikke helt sikker på hva jeg liker best: Elixir eller Clojure. De er fantastiske språk begge to, med sine egne styrker og svakheter. Det finnes også https://lfe.io og https://www.clojerl.org, som er svært interessante prosjekter synes jeg. Clojerl er på en måte Clojure-varianten av Elixir. BEAM er en svært moden, testet og stabil plattform for distribuerte systemer, så jeg synes det gir mye mening å “gjenbruke” den på samme måten som Clojure på JVM.

leifericf13:03:33

Jeg kan anbefale å sjekke ut boka “The Erlang Runtime System” (a.k.a. “The BEAM Book”) av Erik Stenman for å få mer innsikt i hvordan Erlang sin runtime fungerer. Boka er gratis og offentlig tilgjengelig https://blog.stenmans.org/theBeamBook/. Elixir kompilerer til samme maskinkode, og kjører på samme infrastruktur. Det er et bunnsolid system, hvor man kan hente mye inspirasjon og kunnskap.

leifericf13:03:28

Clojure sin store styrke er jo at språket i utgangspunktet er svært generisk, fleksibelt og “runtime agnostic.” Det er egentlig ingen gode tekniske grunner til at Clojerl ikke kunne tatt av istedenfor Elixir, utenom “de vanlige klagene” folk har om Clojure or Lisp mer generelt. Hadde vært kult om det prosjektet fikk like mye love som JVM, JavaScript og CLR variantene av Clojure.

msolli14:03:23

Jeg veit ikke, alt dette pratet om mikrotjenester i denne videoen - det føles veldig 2015. Kanskje fordi den er fra 2015. I seksjonen hvor han snakker om Clojure sammenligner han hvordan man i funksjonell programmering setter sammen funksjoner med hvordan man setter sammen mikrotjenester vha. en event bus. Var det forsøk på en analogi? Eller mener han det er en motsetning der? Mener han vi ikke trenger en event bus siden vi har funksjoner som kan kalle andre funksjoner?Synes det hele ble veldig rart. Tjenestearkitektur er jo helt og fullstendig uavhengig av implementasjonsspråk.

oddsor14:03:00

Han mener nok det er kanskje en motsetning, men at han ikke føler seg kvalifisert nok til å konkludere. Ref de tre eksemplene på prosjekter han har vært involvert i hvor mikrotjenestene minker og vokser jo mer Clojure som var involvert (kan likegodt ha vært relatert mer til problemet som ble jobbet på)

👍 1