Fork me on GitHub

Good Morning!


Morning chaps!


Morning 🌞




Morning All - Wednesday is here!

parrot 4
Ben Hammond10:03:49

and its not a Wet Wednesday




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 😞


Anyone else in the same boat?

Ben Hammond15:03:52

I thought you had us


Simply be right all the time and the problem is solved


Ah I do I do πŸ™‚


But I can't share company secrets πŸ™‚


This group is invaluable to me πŸ™‚

Edward Hughes16:03:48

@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.

Ben Hammond16:03:55

do find that a Lisp background can be confusing when working with Clojure

Ben Hammond16:03:28

Clojure is first-and-foremost a Java toolkit, and being a lisp comes second to that

Ben Hammond16:03:00

there - I've said it

Edward Hughes16:03:06

Yes, the point is to be interfacing with java.

Edward Hughes16:03:18

as a die-hard lisper I have no problems with this.

Edward Hughes16:03:29

Unlike some others.

πŸ˜† 8

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

πŸ‘ 8
Wes Hall16:03:35

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.


Ugly, but clear. πŸ™‚

Wes Hall16:03:59

@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 πŸ™‚


Well, type-of would just be an alias for what you put above πŸ™‚

Wes Hall17:03:40

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.


I think that's because it assists with generation


no way for spec to assist with type generation

Wes Hall17:03:10

Ahh, that's a fantastic point, didn't consider that.

Edward Hughes17:03:13

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.

πŸ‘ 8

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 πŸ™‚


I've always found Clojure to be quite a fun language where you can just mess around in a repl and get something working, I've really enjoyed the small feedback cycles from it. I've always hated the null pointer exceptions in the repl however πŸ˜‚


Are peeps here using Langohr for RabbitMQ?


I’ve used it before and just the bog standard java interop. I found both to be decent.