Fork me on GitHub

Good Morning!! 🙂



Wes Hall11:10:09

Thought of the day: vscode + calva is a massively underrated clojure development toolset. Only environment so far in which I can open my project (figwheel main and some server side clj), and open a repl environment with a single shortcut that works across both sides seamlessly. It's really really nice. Definitely worth checking out if you haven't.


@wesley.hall vscode seems to have the best collaborative editing support (i could find) too


atom has a plugin, but it's crap... emacs has some half-assed solutions which are also crap... vscode's worked great out of the box

Wes Hall11:10:40

I've not looked at that yet. I took a bit of an atom detour based mostly on the fact that it does seem to be more widely used, but found I had to really wrestle with it. Calva just seems to be really smooth. Drop down a deps.edn and an 'dev.cljs.edn' for figwheel and ask for a repl. All fires up and you can immediately start working with it, evaluating forms etc. Spent days trying to get this working in atom, worked perfectly out of the box in vscode. I fear the MS association might put some people off, but i am finding it absolutely marvellous so far.


I'd be interested to hear how people thought it compared to IntelliJ+Cursive


vscode + calva is pretty popular here. It's one of the few toolsets I've used that "just work" when it comes to Clojure

Wes Hall11:10:59

@tcsavage You've dropped vim+fireplace?


Vim no, fireplace yes. I generally make do without any fancy tooling when writing Clojure, but when I want it I jump into vscode

👍 1
Wes Hall11:10:48

@yogidevbear I was a very long term intellij user in my Java days. Probably 2002 / 2003 that I started with it. It's nice enough but has fallen into that trap of becoming a full blown "IDE". Little too "eclipse-like" for my taste these days, which is a bit sad because it used to be a mind blowingly good "editor" back in the day, but I just find it "heavy" in 2019.


same @wesley.hall - last time i tried intellij i was overwhelmed by the amount of junk i wasn't interested in... a long way from the (visually, not technically) quite straightforward structural code indexing and refactoring support i used to love back in the day


strange - I really like a lot of the stuff you get with IntelliJ. My main criticism of cursive is that it doesn't do enough IDE stuff


(tbh a bit more refactoring support would go a long way)

Wes Hall12:10:14

I don't think it's cursive so much. To me, the warts show through from the platform underneath. The platform went through a bit of a bloat explosion through the various "J2EE" iterations and I don't think it every really recovered. I think the cursive folks have done a great job of building a nice clojure layer on top of the platform, but it feels a bit like trying to build a "startup team" inside a big enterprise. You can't quite ever escape the mothership.

Ben Hammond12:10:44

you can switch off all of those j2ee plugins though

Ben Hammond12:10:28

having a Project Window that lets me browse the directories on the source tree is such a killer feature for me

Ben Hammond12:10:50

that was what really bugged me about Vim/Emacs

Ben Hammond12:10:10

I know you can get them, but they felt clunky by comparison

Ben Hammond12:10:27

(or perhaps I wasn't prepared to give them a proper chance)

Ben Hammond12:10:35

+1 for VisualStudio though

Wes Hall12:10:39

True, but you still get all of the weird module / cp configuration stuff. Intellij is one of those tools that kinds of represents the project in it's own config and relies quite a lot on watching and syncing. It goes right back to trying to normalise ant vs maven. The "module configuration" stuff is a baffling set of configuration options even for me, who has been using it a while.

Wes Hall12:10:12

I've done probably most of my clojure work with emacs. I am by no means a power user (which is, perhaps a 60 year commitment ;)), but it works for me well enough. Sometimes though, I do like a bit more of a modern UX.


@ben.hammond i so much prefer helm's search approach to project structure over any hierarchy based GUI i ever tried


(where helm is an emacs package for searching for stuff in case you're not familiar)

Ben Hammond12:10:15

In theory I really like the attach JVM debugger to REPL that Cursive permits but In practise, it seems like Clojure puts JVM SafePoints few and far between so the debugger spins endlessly waiting for threads to pause...

Ben Hammond12:10:52

or is that just me?

Wes Hall12:10:08

The debugger was an absolute killer feature in Java land. Used to use it all the time, but it's design seems to be quite Java centric. I never really got it to work usefully in cursive.


in java-land you really need a debugger though... repl and print seems to mostly do the job for me in clj-land

Wes Hall12:10:48

Yeah, quite right. I don't think the lack of functional debugger was ever a real problem for me when working with clojure. Oddly it is the existence of one that doesn't work that works against me in cursive because this is another problem really. Whole bunch of features that are not disabled, but don't work properly.


what’s wrong with the clojure debugger?


im not able to place breakpoints inside a method easily (in spacemacs), but do it on the top level without a problem. then it’s easy to step through?


i gather there's nothing wrong with it these days... i just don't use it and haven't yet gotten into a situation where i need it


I use cursive full time and used to be quite familiar with the debugger in my Java days. I just don't find myself ever reaching for a debugger in Clojure.


Same for using cursive, though I might give vscode another try, I gave it a go a while back and the experience didn’t make me want to jump in, it seems things have improved =)…


TIL: when-first (clojure.core is big)


I like nano


😂 It does feel very safe, I must admit 😉


I find the keymappings for Calva quite unweldy


and my mind is so ingrained in modal editing that I find myself mistyping when using vscode


when moving from clojure 1.9 to clojure 1.10 changes the results of your calculations


but only by a little bit


@otfrom changes how, and what sort of calculations ?


medians from sampling from distributions (10 times, but with the same random seed, so comparable)

Wes Hall16:10:26

That's pretty serious. Wonder if it's clojure or some weird JVM thing.

Wes Hall16:10:30

Oh sorry, clojure only changed

Wes Hall16:10:36

So, that eliminates one thing 😉


@otfrom using a jvm random impl ?


it is an end to end test that is failing so I'll have to put some more in to track it down I think

Ben Hammond16:10:36

if you roll back, is the 'correct' behaviour restored?


I need a much smaller example


And I might be looking in the wrong place