This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-01-02
Channels
- # announcements (1)
- # aws (5)
- # babashka (13)
- # beginners (202)
- # bristol-clojurians (3)
- # cider (16)
- # clojure (283)
- # clojure-dev (8)
- # clojure-finland (30)
- # clojure-italy (4)
- # clojure-nl (6)
- # clojure-spec (17)
- # clojure-survey (161)
- # clojure-sweden (7)
- # clojure-uk (62)
- # clojurescript (4)
- # core-async (31)
- # cursive (3)
- # datomic (7)
- # defnpodcast (1)
- # fulcro (8)
- # jobs (2)
- # lumo (2)
- # malli (2)
- # off-topic (24)
- # other-languages (1)
- # overtone (1)
- # re-frame (6)
- # remote-jobs (3)
- # shadow-cljs (6)
- # spacemacs (17)
- # tools-deps (20)
if you magically knew the answer, what would you do with the information?
what kind of tooling?
Fireplace vs conjure maybe... Although I think users go where the tooling is. So I'm probably working the wrong direction. Wagging the tail of the dog so to speak.
Fair question. I don't think it's actionable but I do think it would be interesting to see how much uptake either of those have (REBL, Socket REPL).
I think I have a sense of REBL from the Patreon/issues/traffic
I could see socket/nrepl being of interest to @cfleming but not sure who else (but maybe he knows that answer already)
Q17 What tools do you use to compile/package/deploy/release your Clojure projects? Answers: clj, Leiningen, Boot, Maven, Gradle, Ant, make, custom scripts
What's missing? What should be removed?
@alexmiller Can you share the REBL usage sense you have? (since it sounds like it won't go into the survey).
it falls off rapidly after that :)
That's too bad. I think REBL is awesome and would love to see more folks using it. Of course, I'd also like to see more updates from Cognitect on it too š
it's small right now and a comparatively narrow slice of attention. lot of chicken and egg there of course. we expected it to be a slow burn.
If it were OSS, I'd be eager to contribute š
not my call
Q17. Given the breadth of packaging tools for clj
, is it worth separating some of those out as individual options? (I don't feel strongly about that, just a suggestion). Otherwise, that list sounds good to me.
like the IDE one, I'm trying to get a big picture feel (doing a separate clj-focused survey at some point might be interesting)
so trying to get the "families"
this question is on the "Clojure" page too so it omits some cljs possibilities (that's a separate question)
lots of people put shadow-cljs in the comments for this one, not sure how best to communicate clojure-ness here
always a bunch of Ansible here too, not sure if that makes sense
like maybe the question needs different wording here
maybe I should remove "deploy"
For Q15, will 1.10.1 and 1.10.0 be separate options? Or will you just ask about the overall version? (1.10 vs 1.9 etc)
I changed it to 1.10.x (so grouped). I decided I cared more about 1.10.x vs others than about 1.10.0 vs 1.10.1
Shadow-cljs is listed in Q22 -- I'm surprised it was "lots" in Q17. Maybe add "(not ClojureScript)` to the question? :)
you can look in the Other responses - it's easily the most listed
Not doubting you, just echoing your surprise, and suggesting a way to avoid it?
yeah, thx
@alexmiller thought about separating compile/package
from deploy/release
? that's probably why there is a lot of Ansible in the responses
yeah, maybe it's time to tease this apart a bit more. It could be a matrix question too with tool / use dimensions
I'm not even sure what the right set of options for "deploy" is but maybe that's a good signal of needing more info
deploy
has multiple meanings -- we talk about deploying systems to production but we also talk about deploying JAR files to Clojars/Central (and probably other meanings too?)
I think I'd start with a) what are the right verbs? and b) what are the right nouns? (with the anticipation of maybe changing the whole approach based on the answers)
yeah, lib vs app are different domains
for libs, I'm interested in knowing whether you make an artifact, how you make it, and how you put it somewhere for people to use
I think it would be good to get some statistics on OS usage: Linux, MacOS, Windows, other - maybe split into: local dev environment / production environment
+1, got it
(my impression is that a lot of people develop on MacOS and deploy to linux for example)
this is worth asking and I will look at the question options for it
some kind of matrix answer is probably best
I get the impression that Windows usage is increasing (for development) as Clojure reaches more people -- based on the number of questions I see about Windows-specific tooling over the last year.
Would be nice to have a sense of "primary development O/S" and "primary production O/S" (but I suspect that will be mostly Linux so it may not be as interesting?).
yeah, I'll split it out although I suspect Linux is the 99% for prod
Windows dev use is a 2 way thing too - when it's bad, it pushes Windows users away, either forever, or to WSL or Linux VM
so "there are few Windows users" can be cause or effect
It would be nice to finalize CLI on Windows so it could be promoted to the main site, instead of a wiki on an alpha repo š
yep, it is one of my goals for 2020 :)
yeah, I haven't even looked at any of that yte
We should probably take this to #clj-on-windows if we want to dig in further. I've certainly been pretty happy with Scoop as a package manager for Windows but the deps.clj
native image has simpler command-line quoting than the PS script so that's also very appealing... And CLI-in-Clojure, compiled to per-platform native code seems nicer than bash + PS + ...
There is now a single-line PS installer for the executable. The only requirement is Powershell (to run the installer and the checksum code for caching) and java.exe. Works in cmd.exe
on the topic of finalising the windows cli, it would be useful to ask what terminal windows users use
the windows cli needs to be ran on powershell, but I'm not super confident powershell is what most people use by default
Good point! I never used Powershell until the CLI installer required it, and I still do nearly everything from either cmd or WSL instead.
Well, the Scoop PS installer adds cmd-clj
and cmd-clojure
shims that call the PS versions from cmd.exe but I don't know how well quoting works with those...
yeah, I'm still thinking about how and whether to get that in the survey
some common answer sets: ā¢ (for clj git deps): no artifact, n/a, git repo ā¢ (for Maven artifacts): jar, Leiningen/boot/clj, Leiningen/boot/clj, clojars/s3/deps.co/? ā¢ (for cljs libs): shadow?, shadow? buck?, npm?
still not sure I even have the right set of dimensions here, but I think this set of questions could be replaced with something more interesting/useful
and be more concrete about library vs apps make it able to have more interesting concrete options
Candidate verbs of interest: ā¢ manage dependencies ("manage" is weak) ā¢ compile (I assume this is mostly for apps and in tandem with packaging, so maybe should not be included) ā¢ run tests ā¢ package (create an artifact - jar, war, vm package, cloud template ?) ā¢ release library (make a version of a library available for use) ā¢ deploy application
stepping away for a few, feel free to comment on that
I think it would be interesting to see Clojure and ClojureScript as separate server side languages.
The survey is already partitioned into Clojure-specific, ClojureScript-specific, and common sections...
he means in the server-side language used with cljs question
I can break those out. I have no idea what that breakdown would be
Ah, gotcha.
Q21 gives a partial sense of that, separating Browser from Node.js?
I guess Q21 includes some small group of folks using cljs only on the backend, no frontend...?
Also, I am sometimes using Nashorn as my CLJS REPL, so maybe that should be a an option for whatever Q asked about that.
I may have missed this, but is there a draft of this weāre looking at while discussing?
Is Q11 useful information for anyone? It seems like that might inform the development of Clojure itself, but itās mostly asking about things which are done now.
Re: editor choice, itās tricky. In general, I tend to think that Emacs vs non-Emacs is the main interesting question, but Iām not sure the same is true of e.g. Atom. Thinking about it, I tend to have a view of Emacs as a homogeneous environment which is clearly not true despite CIDERās dominance.
I think it's fairly true as far as Clojure/Script dev in emacs goes -- I've only run across a small handful of people who don't use CIDER, and that tends to come hand-in-hand with several other packages. I'm (idly) curious what non-homogeneity you were thinking of.
Emacs is pretty much the textbook definition of a non-homogeneous environment - every Emacs installation on the planet is basically a special snowflake. But specifically for Clojure, thereās CIDER, clojure-mode without CIDER, inf-clojure, enspiral and probably more Iām not aware of. Someone mentioned monroe, which Iāve seen around but have no idea if anyone beyond the author is using.
Oh, totally agreed that emacs in general is all over the place. But my impression as an emacs user has been that the vast majority of people are using CIDER at this point (98%+, maybe?).
Thatās my impression too, but I donāt really know. Iād be interested to know how many people use clj-refactor, too.
I'd love to know of the Atom users how many are still trying to use ProtoREPL vs how many are now using Chlorine -- but it's purely curiosity, rather than a useful metric. And of course, with the demise of ProtoREPL, there may well have been people abandoning Atom altogether...
I donāt think that clojure-kit warrants a separate question, especially if thereās an Other option which can be filled in manually. I follow their repo so I see all their issues, and thereās very little activity.
Thatās what I decided too
There were 3 people that listed it in other last year
It would be nice if it were possible to have a series of checkboxes or a radio button associated with each option, so selecting Atom would allow you to choose between Chlorine, Proto-REPL or whatever.
Neither of those are worth breaking out imo
Actually, I still find this one useful, particularly when compared longitudinally over many years
It'd be interesting to have a free-response question about libraries -- something like "What non-core libraries do you use most?" or "What third-party libraries are most critical for you as a Clojure/Script developer?". I think the answers would be useful for Clojurists Together, and would be useful to the community in helping less community-involved folks keep up with the critical ecosystem as new parts of it emerge. That said, I realize that free-text questions are a pain in the ass to deal with š
Iād definitely be interested in this too. It would be really useful to have a list of libraries by popularity, but I have no idea how to collect that or how to measure popularity.
I guess number of stars on github is a proxy, but a pretty rough one. It seems like it especially wouldn't capture libraries gradually falling out into disuse (I know I, at least, rarely remove stars...).
That definitely seems better than github stars, but also doesn't seems like it captures decreased use over time very well.
Unless people actually list all of their libraries (and dependent libraries?) it seems unlikely that this would yield meaningful data
which is to say, I completely agree that if I could wave a wand and know the answer to this, I'd be interested. I've spent time a couple years trying to design a question to do so, and gave up. Either there is public stuff that could be automatically analyzed (pour one out for clj-info RIP) better than a survey OR it's manual which is either too tedious OR it's manual but wildly incomplete.
you also have to take into account transitive dependencies and lib frequency to really get good information
the automated approach is the best answer to that imo
The best I can think of would be to find all project.clj and deps.edn files on Github and parse them. I think Github provides data dumps which might make that tractable, but I donāt know enough about it.
very doable - clj-info used to do this
sorry cross-clj ? whatever it was calleed
Oh yeah, cross-clj. That was wider in scope though, it actually parsed all the program source, and only did it for a specific list of projects.
I think Eric Normand did this analysis too
or maybe this https://jakemccrary.com/blog/2017/04/17/what-are-the-most-used-clojure-libraries/
I think the danger is in over-reporting direct deps and under-reporting transitive deps, but sounds like a fun project :)
That all makes sense to me, and clearly youāve spent plenty of time thinking about it!
@cfleming mentioned a good point. "how many people use clj-refactor". Maybe make this a bit more broad and check static analysis tools? clojure-lsp, clj-refactor, joker, clj-kondo, cursive
Yeah a multi select. I think all of the refactoring tools require static analysis of some sort though
Iām not planning on expanding the survey to include stuff like this, although I think a lib and dev tool survey would possibly be interesting
In Q23 Iād like to know how many people are using figwheel main and how many are using figwheel classic.
Also, thereās only an option for āClojureScriptās browser REPLā, but it also has REPLs for node.js, nashorn etc. Thereās probably a whole spectrum of potential information to be teased out here, but I donāt know how to ask the right questions for āI use the node.js REPL for server side code but the browser REPL is too hard to set upā.
@cfleming on Q23, I'm wondering if asking this question in a different way would help make it more useful. Something like "What tools do you use for interactive ClojureScript development?" with multi select
Yes, that sounds better. I think there are too many dimensions to get all the information, but that would be a good start.
yeah, "REPL" seems very limiting given all the things that are available
like is Ghostwheel another option too?
Right, lots of people donāt use REPLs at all and just use hot reloading, and that might be distorting the āI donāt use a REPLā answer.
I actually donāt know the answer to that - Iām aware that Ghostwheel is a thing that exists, but thatās about it.
I guess ghostwheel is an additional thing that might be used in tandem with more than one answer