I'm not an Emacs user, but I'm working on the State of Clojure Survey, and I'm trying to put together the popular modes for interactive Clojure development (REPL integration). Am I missing a popular mode from this list? • CIDER • inf-clojure • Monroe • Rail
@bozhidar That’s helpful. Thank you! I’ll take a shot at updating in the morning.
I’m still curious if it is worth having paredit, parinfer, smartparens, and lispy in the list since I have the higher level question about structural editing.
@neumann my suggestion to structure the Emacs specific questions in the survey as follows (hopefully I didn't miss anything). The options for each question are in alphabetic order. Note: I can create something similar for Neovim/vim too if interested.
Which Emacs Version do you currently use
- 29.x
- 30.x
- 31.0 (from nightly/git)
- something else
Which Emacs distribution do you currently use
- Build from source code
- Emacs Plus
- Homebrew
- Operating System package (Debian, Arch, Nix, etc.)
- something else
What Emacs configuration do you currently use
- LambdaIsland Corgi
- Doom
- Prelude
- Roll my own
- Spacemacs
- something else
Which Clojure language modes do you currently use
- clojure-mode
- clojure-ts-mode (new Treesitter based clojure-mode)
- inf-clojure-mode
Which Clojure REPL package do you currently use
- CIDER
- inf-clojure
- Monroe (nrepl client)
- Rail
- something else
Which Language Server Protocol Client do you currently use
- lsp-mode
- eglot (Emacs built-in)
- something else
Which Structural Editing packages do you currently use
- lispy / lispyville
- paredit
- parinfer
- smartparens
- vim-style editing
- something else
Which packages for LLM/AI tools do you currently use
- ECA (Editor Code Editor)
- something elseOh that’s quite awesome, @jr0cket!
Yup! @jr0cket's list is 100% correct to my eyes. It's a few more questions, but all of those are relevant to emacs users, and the questions are all well structured for data analysis.
CIDER works with both clojure-mode and clojure-ts-mode, so as worded above this is misleading. clojure-mode / clojure-ts-mode is orthogonal to whatever REPL client (or something else) you're using. One uses the traditional (and quite basic) regex based parsing, the other uses TreeSitter.
So, change "- clojure-mode (CIDER)" to "- clojure-mode (CIDER's current default)" ❓
I'm not sure why CIDER needs to be mentioned in this context at all - I'd probably use something like clojure-mode (traditional major mode) and clojure-ts-mode (TreeSitter-based major mode). Not a big deal, though. Just want to avoid confusion in people who are not very familiar with the various bits and pieces of Emacs packages they might be using.
CIDER is just the repl part, clojure-mode and clojure-ts-mode is how emacs recognize the language with a few features, nothing related to repl
True, though, I suspect many people use clojure-mode after having installed CIDER, and don't really know.
Good point about CIDER not being specific to language mode, its so easy to think of it all as CIDER 🙂 . I've updated those options to be 'clojure-mode' and 'clojure-ts-mode (new treesitter-based clojure-mode)'. Thanks for the feedback.
@jr0cket Are you thinking a single choice (radio selection) or a multiple choice (check boxes) for those? They seem orthogonal, so that's why I'm asking.
I assumed all survey questions were multiple choice.
Oh wow, what a thread. It almost feels like we don't even need a survey - all the people who have both Clojure & Emacs in their lives and care about it are all in here laughcry
Today, we learned that @ag cares about us, and that is nice. simple_smile
Here's the current draft. I'd love feedback.
@jr0cket Thanks so much for the questions.
Thanks you everyone here who contributed!
@neumann I don’t think inf-clojure-mode should be in the question for clojure-mode and clojure-ts-mode as it’s not really this kind of major mode. (it’s a REPL major mode)
Also for the LSP question - there’s an “other” option there, but I believe there’s nothing besides lsp-mode and eglot. 😄 But admittedly there are always some more obscure Emacs packages that one could miss…
@bozhidar Got it! I'll remove inf-clojure-mode. I see inf-clojure is already in the list below. Thank you!
As for "other", in some cases I expect very few of those, but I don't have a way of hearing about new things without it.
My impression is that these are alternatives to each other (with different features, of course), but again, I'm not an Emacs user, so let me know.
orthogonal to these (but highly related, and still within emacs) is another choice (`lsp-mode` vs eglot) - don't know if those are on the survey already, but I suspect understanding their use would be interesting.
@ericdallo is sophisticated with such things and may have an opinion.
the ones you mentioned make sense for repl IMO @neumann, but Harold's point is really valid, it's very common to see in Clojure Emacs land people using LSP + REPL, or only REPL, AFAICS for the survey, it may make sense to consider those options.
Here's what I have right now. Let me know what I should add:
Add lsp-mode and eglot?
@ericdallo @hhausman Would adding those two cover what you're talking about? Should I add anything else?
I didn't mention it explicitly, but you correctly inferred that I'm trying to focus on choice points. The ones where getting relative counts is really interesting.
Updated question. I'm open to more feedback.
Are they check boxes or radio? --- that is, can the survey taker pick any/all? Or do they have to pick just one?
Does https://github.com/clojure-emacs/clojure-ts-mode fit into this list?
Checkboxes. You can pick as many that apply.
oh, yes, that's cool. In that case clojure-ts-mode is also interesting.
Is there a separate question about paredit vs. smartparens? And how many holy wars are we trying to start 😉?
You're seeing the whole list. I can add whatever you think is useful.
You might want to include them as links so folks who haven't a clue what some of these are (hint: me!) might learn about them.
Survey Monkey won't let me link things.
Oh wow, but yeah, at this point we're surveying emacs users?
Bad monkey!
Oh, to be clear, these options are only shown if someone says their primary dev environment is emacs.
Nice! Let me think for a moment.
There are flavors of emacs usages too. Like spacemacs and doom emacs... and folks who roll their own vanilla emacs configs.
those options look good to me!
@ericdallo, what do you think of adding lispy , paredit, smarparens? Which do you use?
I don't have any questions in the survey that try to tease out flavors of Emacs so far. If we collect that information, who would it help? How does it help?
You might want to hear from @jr0cket who writes books on these things! He might have some great additions.
My goal is to try and get a sense of the distribution of use.
I guess it would tell folks what is more popular.
Yeah. So if there is a lot of diversity, it's worth collecting some stats to get a sense of the distribution.
If I should break it into separate questions, I can do that too.
I'd assume so.
Right now, my plan is to just have a long list of modes and have people select the ones they have used.
Will the data be able to be stratified by user's age, or level of clojure experience? I think a plot of usage of these modes against peoples level of experience would be amazing.
Yes. It will be stratified by level of Clojure experience and years of professional experience.
We don't collect age.
There are types of emacs users too. Those that love to customize their configs, and those like me, who barely know how emacs works, but are very happy with it. That might be an interesting aspect to ask about.
I've been very happy stealing from @ericdallo's doom emacs config for years!
Current list
If someone wants to give me a list of Emacs editors, I can add it as a separate question.
Hmm... I think they call them "configuration frameworks". I think there are many, but spacemacs and doom emacs are popular.
I think Spaceemacs, doom-emacs, vanilla, and others are good options for those configuration frameworks
OK. Let me take a shot at writing that....
Does vanilla really mean "none, I roll my own"?
Wasn't there a lambdaisland emacs configuration? Could include that since it comes from clojure-land.
Feedback?
(I have to run out for a while, but I'll be back later. I'll catch up on the thread when I'm back.)
Maybe it was this?: https://github.com/corgi-emacs/corgi
Emacs key bindings is also an interesting question, maybe. Evil vs Emacs vs Other (please specify).
@bozhidar - small apologies for pulling you into a long thread, but you may have valuable input here. 🙇
If you are including paredit, you should probably also include parinfer?
I don't know how deep @neumann wanna go, Emacs can go deeper in every direction :) I'm pretty satisfied with current questions about major packages and config frameworks, TBH not sure how relevant it's is to know about parens manipulation tools especificaly
It's interesting to know what folks prefer. Maybe paredit-like vs parinfer? Just two?
Time for 💤
@ericdallo I know what you mean about going deeper in every direction!
I'm not so sure about including a questions about modal editing (vim style) vs standard emacs key bindings. I think that's getting further away from Clojure-related things.
I am interested in the editing of Clojure code. Is this a good list for that? paredit, parinfer, smartparens, and lispy
yes; depending on your zoom level, parinfer isn't quite the same as the other three, but they're certainly all related to 'editing Clojure code'. simple_smile
I'm thinking of adding this question for everyone. I think it would be good data to have independent of editor:
If I add that, should I still keep paredit, parinfer, smartparens, and lispy in the list of modes to ask about?
Made the question more specific.
I need to get some sleep. I'll back in the morning. 💤
Btw, I one thing you should keep in mind is that many people who are using some configuration like Spacemacs have no idea what modes they are using. 😄
The list of Emacs packages seems quite exhaustive - perhaps the only more notable Clojure-related package missing there is clj-refactor.el.
I'm also wondering if adding only clojure-ts-mode without clojure-mode will be a bit misleading, as I don't expect all users to be aware there are 2 Clojure major modes these days, so some people might think that clojure-ts-mode is clojure-mode.
What's Rail, btw? I have some vague memory of seeing something about it, but when Googling I can't think anything. I don't see such a package in MELPA either.