Fork me on GitHub

Wouldn't the survey be the best bet to estimate that?


Maybe? I don’t recall if it’s been translated into other languages.


they say tens of thousands


@danielcompton that seems like a decent guess, but then I start to wonder what defines a professional clojure programmer. A lot of people know enough languages that picking up clojure isn’t a leap, or they’ve done it in the small but work primarily in another language, etc.


I’ve been doing clojure for about 8 years dedicated I think, but was contracting and working with it before then. I dunno how I would have identified myself when I was working with it, but not doing it 100% of the time.

Alex Miller (Clojure team)00:06:28

I’d guess some multiple of that, but like you said, depends who you count

Alex Miller (Clojure team)00:06:38

Based on all the data I have, I don’t think 50k is crazy if you take a broad definition


The way I was imagining defining a “professional Clojure programmer” is someone who works for 30 hours/week or more and more than 50% of their time spent coding is doing Clojure

Alex Miller (Clojure team)03:06:33

In my opinion if someone pays you to write Clojure, you’re a professional Clojure programmer


Sure, for my purposes of preparing a talk I was looking for a narrower definition which was more around industry usage. I certainly wouldn’t say someone couldn’t call themselves a Clojure programmer unless they did 50% of their work in Clojure


As in “this many salaries are paid by writing Clojure”


So probably somewhere between 10k and 50k


Does anyone use the “with-test” macro?


For short, self-contained files/scripts (e.g. lein tasks)


Ah good use case. I’ve just been going through docs. I think rust by convention outs tests in the same ns as the code. Wondering if anyone else did so in clojure


Quite a bit of tooling won't find such tests: they either only look for test namespaces in certain folders or that match certain patterns (such as ending with -test).


("by default" I should add)


Yeah. That’s a good point. I’m very tools centric so I kinda want to get into more detailed knowledge like invoking tests myself, compiling etc


I kinda like being able to look in a separate but related namespace for tests, from an organizational point of view


This recent-ish behavior on compile-time errors as the clj process boots:

Full report at:
/tmp/clojure-4449509300422461865.edn problematic in CI environments, since it forces me to ssh into the instance (or recreate the issue locally). Wondering if one could revert to the old behavior (print the stacktrace to stdout) somehow.


ah, fantastic thanks, will set that prop in my leiningen setup


anyone ever see this error?

/home/dan/.m2/repository/org/clojure/clojure/1.10.0/clojure-1.10.0-sources.jar(clojure/asm/ error: cannot access Symbol
  private static class Entry extends Symbol {
  bad source file: /home/dan/.m2/repository/org/clojure/clojure/1.10.0/clojure-1.10.0-sources.jar(clojure/asm/
    file does not contain class clojure.asm.Symbol
    Please remove or make sure it appears in the correct subdirectory of the sourcepath.


i deleted from m2 but getting the same response from cider-jack-in (which just runs /home/dan/bin/lein update-in :dependencies conj \[nrepl\ \"0.6.0\"\] -- update-in :plugins conj \[cider/cider-nrepl\ \"0.22.0-beta4\"\] -- repl :headless :host localhost


Is there a way I can trace the memory use of a function? In a deep way, so not just the memory of the function object, but I want to know how much memory was used to execute the function.


I tried VisualVM's sampler, but it doesn't seem to trace the execution deeply. All my functions always consume only around 16B


Do you mean, from the time a function starts executing, until it returns, what is the total amount of memory allocated via Java new?


Yes, ideally


Well, and including the stack frames


Hum... ok, maybe what I'm doing doesn't totally make sense. I have two functions that do the same thing, in that they both process a large collection of items. I believe one of them would retain a pointer to all elements as it processes it, and thus could out of memory, and the other wouldn't. But now I'm looking for a way to test that assertion


At first I thought, one should use more memory then the other. But, they use exactly the same amount.


But that's mostly because profilers measure allocation


So they allocate the same amount, because they process the same number of items, in pretty much the same way


So it is more, which one could reclaim more memory if needed


And I'm not sure how to test for that


use/generate lots of data, eyeball your process memory... science !


"qualitative measurement" =)


Hum.. ya I guess


with a restricted small max heap


I'll tyr that