This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-11-04
Channels
- # announcements (13)
- # beginners (51)
- # boot (3)
- # calva (10)
- # cider (20)
- # clj-kondo (55)
- # cljs-dev (60)
- # clojure (99)
- # clojure-europe (6)
- # clojure-gamedev (9)
- # clojure-italy (19)
- # clojure-nl (7)
- # clojure-spec (20)
- # clojure-uk (42)
- # clojurescript (96)
- # clojurex (37)
- # clojutre (1)
- # cursive (37)
- # data-science (2)
- # datomic (15)
- # defnpodcast (9)
- # duct (7)
- # emacs (6)
- # events (9)
- # fulcro (124)
- # jackdaw (4)
- # jobs (4)
- # leiningen (9)
- # malli (7)
- # mount (3)
- # off-topic (109)
- # other-languages (8)
- # re-frame (39)
- # reagent (4)
- # reitit (6)
- # remote-jobs (2)
- # rewrite-clj (36)
- # ring (4)
- # shadow-cljs (16)
- # spacemacs (16)
- # tools-deps (91)
- # vim (8)
- # yada (2)
Howdy folks! Happy Monday š I wanted to open up a conversation about tooling and what IDEs you all are using? I have been going through the terrible tedious process of setting up the tooling to develop in Jetbrains Intellj... I am looking for better options and would love to hear your input. I do use emacs keybindings so I am naturally thinking of taking the leap to emacs and I have also been checking out http://spacemacs.org/ which looks pretty cool. Has any of you used this distro? Any thoughts? Thanks!
Not sure if its relevant but I develop using the linux debian VM on the google pixelbook
@lorilynjmiller With spacemacs you're halfway to vim. You can find more "convincing" (propaganda) in #vim š
Honestly, though. Since vim has spoiled me for other editors, I pretty much have to use it. It has all the Clojurey goodness you need, although it can be a bit disjointed.
@mruzekw fireplace is the base requirement for Clojure, but you'll probably want to throw in a few more plugins š
coc.nvim (with clojure-lsp
), vim-sexp, vim-sexp-mappings-for-regular-people, ... https://github.com/walterl/dotfiles/blob/master/nvim/init.vim#L98
Been using Atom + Chlorine for a while, Iām trying out Intellij/Cursive right now for perspective (setting it up wasnāt necessarily fun, but it was OK IMO).
Haha yeah I totally love pycharm which is what drove me to initially set up on intellj.. but the tooling setup being so cumbersome has made me feel like it may not the best tool.. ya know?
My background is as a designer (service/UX) and Iām generally horrified with the state of editors š Does Intellij count as neck-beard level software? I wish I had known that at the time! I think what made it feel easier was that I set it up halfway two months ago and gave up, then came back today and was delighted that prior me had laid some ground work.
To me, both VS Code and Atom had lower thresholds to get going and show actual proof that I was getting somewhere, thatās why Iāve stuck with Atom for so long. VSCode, unfortunately, has a very, very limited API to do fancy stuff like for example Parinfer does. Parinfer is a must for me, I donāt care what the haters say. Paredit + Parinfer is more powerful than Paredit alone.
I haven't done it myself, but would guess that Cursive's creator would have streamlined the installation as much as possible, or at least gotten the instructions precise?
I found it much easier to get going this time around TBH. I think it mostly has to do with me straightening out some project-level stuff with how I use deps.edn
, some shadow-cljs settings and so on.
This time around, it was really quite straightforward.
@henrik I had meant that I think Jetbrains/Intellj is more of a "basic" editor (ironically except for setting it up.. at least in my experience anyway) and I was considering growing out my neckbeard to accommodate the switch to emacs or vim
Yeah I will admit, the last time I set up using intellj was a few months ago. I am actually revisiting .clj again after doing some python things for the last few months
I was scarred from my experiences from way back when which is what instigated this inquiry
Ah, I see! Itās probably relative to what youāre used to. To me, Cursive seems to cover quite a lot of functionality that youād need.
I'll throw in another "vote" for Atom/Chlorine. When I got started with Clojure (2010) I used a mix of Sublime Text and Eclipse (with CounterClockWise for Clojure) but fairly quickly got fed up and moved (back) to Emacs (after nearly a twenty year break). And that was about as OK as Emacs ever gets but I never found a configuration I really liked -- I tried several curated setups as well as building a few of my own, over the years. And then I saw Jason Gilman present ProtoREPL at Conj one year and decided to give Atom/ProtoREPL a try -- and I've stuck with Atom ever since (three? four? years). I switched from ProtoREPL to Chlorine about a year ago because a) ProtoREPL is not being maintained and b) I wanted a simpler toolchain based on Socket REPL instead of nREPL. I keep dipping my toes into VSCode and Calva but for some reason I just can't really "enjoy" it, so I keep coming back to Atom.
I have tried several versions of IntelliJ over the years and never liked it as an editing experience. Purely subjective, I suspect, but it just felt cumbersome.
@henrik If you have suggestions about how to improve the Cursive onboarding experience, Iād love to hear them.
@U0567Q30W What stumped me the first time around was getting a REPL going, but at that point I was starting the REPL from within Atom. I canāt remember the exact mess, but it was something to do with deps.edn, args, starting namespace, etc. Today Iām just connecting to an externally started port, and setting up a āremoteā (though the word āremoteā denotes āexternal to my LANā in my head) REPL was positively easy. Other than that, I found the settings pertaining to Clojure hard to navigate, being peppered allover the preferences rather then collected together, but Iām assuming that this is idiomatic for Intellij. Today, that didnāt block me for some reason.
Thanks - yes, youāre right that the settings being in various places is how itās expected in IntelliJ. They should all be searchable though.
There actually should be a little popup indicator which shows how to configure that, but now that you mention it I havenāt seen it for a while. Iāll check if that got broken somewhere along the way.
Ok, I see thereās a couple of problems with this: itās only shown when the toolwindow bars are hidden (which isnāt necessary for this reminder), and I need to update the text to reflect the fact that parinfer is also configured here.
I canāt find any mention of it in the documentation: https://cursive-ide.com/userguide/paredit.html In my opinion, mentioning it there is even more important, because itāll put a firm conclusion to any searching for the keywords ācursiveā and āparinferā when all else fails.
Yes, that is definitely true. Iāve been gradually updating my doc recently since it had become terribly out of date, but itās a slow process.
I use neovim with #conjure, and other plugins such as parinfer, vim-sexp, coc, etcera.
from install to fully featured .clj IDE in less than 13 mins. Im like" whoaa OK is this is too good to be true?" and significantly cut down on mousetime to boot :thinking_face:
I was about to give Spacemacs a try a while back and promptly ran into a fresh SSL bug that prevented any packages from being installed from within the editor itself, with the recommended solution to do an astounding amount of manual edits to get it up and running. If thatās been fixed, it might be time to try it again!
not sure how long "awhile back" is but these updates range from 5 years to 2 months š¤· Idk I think I am going to give it a go. I will report back with results
@lorilynjmiller Did you run into File mode specification error: (file-missing Cannot open load file No such file or directory cider-eval-sexp-fu)
when installing the Clojure layer?
I probably encountered every error there was while bumbling around tbh ! but that doesn't sound familiar.
That commit history for spacemacs is slightly misleading - there hasn't been a release on the master
branch in a long time, but if you switch to develop
there have been some updates much more recently
conclusion: sounds like many of you are pretty pro-vim. I think I am going to try to be greedy and give spacemacs a go since it promises the functionality of both? I will let you know how it goes
Vim has a much bigger market share among general developers than Emacs, Emacs has a waaay bigger share among clojurians. https://www.surveymonkey.com/results/SM-S9JVNXNQV/ (ctrl+f "emacs")
thanks for sharing it @jack.crawley92
@deleted-user Yeah I think I am ready to grow out my neckbeard a little bit and commit to learning one of the "big boys" (for lack of better term)... I figure they must be the OGs for a reason, right? I guess I'm at the point I'd rather just spend my time learning something that will really stick (and be versatile) throughout my career... I remember when I made the switch to Linux for example, it totally rocked my world.
oh thanks @jack.crawley92
No problem. For reference against the general population: https://insights.stackoverflow.com/survey/2019#technology-_-most-popular-development-environments
I'm going to write up a post about going from zero to Neovim + Conjure in < 10 minutes or so soon, that might be interesting to people trialing a few editors and stuff too.
Nope, I might be able to do it tonight / tomorrow. I'll be on https://oli.me.uk
https://oli.me.uk/getting-started-with-clojure-neovim-and-conjure-in-minutes/ here you go! @mruzekw
I started with Emacs Live and then went to Emacs Prelude. Have been using that for yeeeears.
If you're agnostic about Clojure editors, it might be worth checking out VSCode + Calva, it's a pretty low barrier to install
FWIW I use Spacemacs, but I wouldn't bet on it long-term. I'd go with Doom. The Spacemacs developer is unresponsive and they haven't pushed a release in around 2 years.
@borkdude thats what I'm heard. I'm more interested in investing my time to learn a powerful, functional environment that will sustain my long-term development as opposed to fast easy set up though
same for me on Emacs Prelude / CIDER. I'm putting everthing, including elpa, inside a git repo, just in case.

Wow dang, I never knew about Emacs Prelude š¤Æ went through many struggles w/ stock Emacs distro, and untangling the out-of-date stuff from Clojure for the Brave and True, and getting Parinfer going properly.
Spacemacs has a lot of concrete abstractions baked into the structure and IMO many of the choices are questionable. It reinvents the wheel a lot, purely to make it easier for the user to configure. As Emacs grows, it becomes more and more restrictive.
I figured, since I was using cider, going with Prelude was probably a safe bet, since they're both maintained by bbatsov
As long as I'm on Linux I don't mind it, it's lazy enough to be ok. But I don't run new instances much.
I'm using this (I think): https://emacsformacosx.com/tips
I'm not sure anymore how I set it up. Oh wait, I activate the server in my init.el so it depends on one running instance already:
(require 'server)
(unless (server-running-p)
(server-start))
and I have one alias like this:
alias em='/usr/local/bin/emacsclient -nw'
to be honest, I don't use it often from the terminalOn switching to the dev branch of Spacemacs, it shouts VERSION 0.300 IS ALMOST OUT!
at you, giving the impression that the maintainers are aware of the perception with regards to releases/responsiveness that some have voiced here.
perfect timing for editor chat; VS Code has a "WSL Mode" now where you connect to your dev environment in Windows Subsystem for Linux from a GUI running in Windows. Does anyone know if Atom has similar functionality?
@michael.e.loughlin i haven't seen anything built in. don't know if it's relevant, but found this: https://github.com/watzon/wsl-proxy btw, there's now a #atom-editor
Today a friend asked me what language I would use on the frontend if I were to start a company today. My answer is ClojureScript and gave my best shot at presenting a strong case for it. Pasted the convo here: https://gist.github.com/eccentric-j/5f1ff458d4ac2531cb3cc591c7a2e65f. Is there anything I missed or got wrong?
Did you think about Google Closure Compiler? I also think dependency management is good in CLJS and I am not sure if you mentioned full interop with JS.
@jack.crawley92 @deleted-user thanks for mentioning Doom -- i was holding off on trying it, but it sounds worth giving it a go. have either of you used https://github.com/plexus/chemacs ? it seems like it could be helpful in trying diff emacs setups.
chemacs sounds like it'd be nice to be able to switch to try new things, but also for testing -- started using it in a separate account. not brave enough yet to go all-in š
you should check out the doom emacs discord server. there's a #help channel and the maintainer of doom (Henrik) hangs out and is extremely helpful with things
+ melpa 17 commit(s) behind 20191031 -> 20191104
+ emacsmirror-mirror 1 commit(s) behind 20191030 -> 20191104
+ ivy-hydra 5 commit(s) behind 20191031 -> 20191103
+ doom-themes 7 commit(s) behind 20191031 -> 20191103
+ doom-modeline 1 commit(s) behind 20191031 -> 20191104
+ treemacs-magit 2 commit(s) behind 20191023 -> 20191103
+ evil-collection 2 commit(s) behind 20191028 -> 20191102
+ doom-snippets 5 commit(s) behind 20191026 -> 20191103
+ dired-rsync 6 commit(s) behind 20190508 -> 20191104
+ magit 1 commit(s) behind 20191030 -> 20191102
+ forge 1 commit(s) behind 20191030 -> 20191104
+ cider 7 commit(s) behind 20191028 -> 20191103
+ erlang 23 commit(s) behind 20191101 -> 20191104
+ go-mode 1 commit(s) behind 20191023 -> 20191025
+ edit-indirect 1 commit(s) behind 20180422 -> 20191103
+ evil-org 1 commit(s) behind 20191025 -> 20191101
+ web-mode 6 commit(s) behind 20191028 -> 20191104
There are 17 packages available to update. Update them? (y or n) y
@deleted-user I've installed Doom but it's not recognizing CLJ, CLJS and EDN files.
It's in Fundamental mode in all clojure files.
So, no syntax highlighting.
> Vim has a much bigger market share among general developers than Emacs, Emacs has a waaay bigger share among clojurians.
that's true. i used vim for many years before jump into emacs for clojure development but now i just wished i had met emacs before! <3:emacs:
i think the major factor that pushes people away from emacs is the el
and at the same time it's why everybody who's using it loves it.