This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-03-04
Channels
- # aleph (8)
- # aws (14)
- # babashka (37)
- # beginners (30)
- # calva (5)
- # cider (4)
- # clj-kondo (21)
- # cljsrn (4)
- # clojure (234)
- # clojure-denmark (1)
- # clojure-europe (10)
- # clojure-france (10)
- # clojure-italy (4)
- # clojure-nl (17)
- # clojure-sanfrancisco (1)
- # clojure-spec (8)
- # clojure-uk (44)
- # clojurescript (20)
- # cursive (9)
- # datascript (2)
- # datomic (5)
- # emacs (9)
- # fulcro (50)
- # graalvm (32)
- # jackdaw (18)
- # leiningen (1)
- # malli (10)
- # meander (10)
- # nrepl (10)
- # off-topic (15)
- # pathom (20)
- # re-frame (14)
- # reagent (37)
- # reitit (7)
- # ring (1)
- # shadow-cljs (102)
- # test-check (6)
- # tree-sitter (15)
- # vim (4)
- # xtdb (2)
- # yada (1)
and its not a Wet Wednesday
hey this is good news https://twitter.com/AJEnglish/status/1235120820046958592
Morning folks
One of the things that I miss atm is that because I'm the sole Clojure developer at my $WORK, I don't have anyone to bounce ideas against. To validate what I'm doing, or to challenge me in my assumptions π
I thought you had us
@dharrigan I'm not the only Clojure person in my shop, but I am the most "experienced" dev working in it simply because of my Lisp background. All the other Clojurians are in upper management now and down in Liverpool, so it can be pretty lonely. I have my co-worker here, but she's fresh out of school and a Java dev, so I default to playing mentor a lot despite feeling insecure about my own position. I can bounce some things off her, but there's kind of a gap of FP/clojure specific things that she isn't familiar with, but I don't feel are worth bothering my CTO with when I can figure it out myself. Communicating what I do know can be difficult at times too.
do find that a Lisp background can be confusing when working with Clojure
Clojure is first-and-foremost a Java toolkit, and being a lisp comes second to that
there - I've said it
Yes, the point is to be interfacing with java.
as a die-hard lisper I have no problems with this.
it's the whole package for me - persistent datastructures, fp, macros and java-interop... and it works just as well when you substitute javascript for java
Anybody done any "specing" based on types? I've been doing a lot of java-interopy stuff and thought I would take the time to spec the functions but where I really want to say, :ret SomeJavaType
It looks like I have to say, :ret #(instance? SomeJavaType %)
which is a bit ugly. As far as I know, I can't use raw Java types as specs, but I really wish I could.
@dominicm Yeah, fair enough, though :ret SomeType
would also be fairly clear in the doc string, though not a valid spec. It's actually fairly surprising to me that something like (s/type-of Type)
is not a thing, but I suppose I can always create something like this π
Yeah, true. Though (s/int-in)
is also an alias for a fairly obvious predicate function too for example and that exists. None of this is exactly the end of the world though. Just a curiosity.
https://github.com/clojure/spec.alpha/blob/31165fec69ff86129a1ada8b3f50864922dfc88a/src/main/clojure/clojure/spec/gen/alpha.clj#L131-L188 gives an idea of the sort of things that ARE built in
I kind of got distracted there for a sec, but I actually like Clojure for what it is and represents a lot. I can understand where some of the Lisper complaints come from, but they aren't deal-breakers for me, and I can see where Lisp failed to adapt. Having a Clojure .jar sitting in the heart of a massive jungle of Java infrastructure running it all feels very Greenspunian. Java dragged C programmers halfway to lisp, Clojure's here to finish the job, better than lisp could. And I like that instead of having to be forceful about it, we can just wrap everyone else in a giant lispy embrace. The news that we can do python interop now was pretty exciting for me because of it.
I think the #1 thing for me about Clojure -- why I love it -- is the malleability, which is an artifact of having the language semantics "be" the REPL.
common-lisp is probably more malleable than clojure (e.g. reader-macros), but i don't like it - the mutable datastructures in the stdlib are a deal-breaker, and CLOS is very clever but ugh, i just don't like OO anymore, and then i really do like the clojure syntax additions for literal datastructures
I meant malleability of the program, not the data. I don't love mutability π