Fork me on GitHub
#off-topic
<
2019-11-04
>
lambduhhh16:11:30

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!

lambduhhh16:11:06

Not sure if its relevant but I develop using the linux debian VM on the google pixelbook

walterl16:11:06

@lorilynjmiller With spacemacs you're halfway to vim. You can find more "convincing" (propaganda) in #vim šŸ˜œ

šŸ˜‚ 4
mruzekw16:11:00

Iā€™ve heard good things about VSCode + Calva, but donā€™t use it personally (yet)

mruzekw16:11:09

Trying out vim + fireplace first

walterl16:11:23

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.

walterl16:11:18

@mruzekw fireplace is the base requirement for Clojure, but you'll probably want to throw in a few more plugins šŸ™‚

mruzekw16:11:37

What else would you suggest?

walterl16:11:28

coc.nvim (with clojure-lsp), vim-sexp, vim-sexp-mappings-for-regular-people, ... https://github.com/walterl/dotfiles/blob/master/nvim/init.vim#L98

henrik16:11:01

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).

henrik16:11:21

Initial impressions are good.

lambduhhh16:11:29

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?

lambduhhh16:11:58

or maybe I just want to grow out my neckbeard haha idk

henrik16:11:27

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.

henrik16:11:08

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.

andy.fingerhut16:11:40

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?

henrik16:11:49

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.

lambduhhh16:11:39

@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

lambduhhh16:11:14

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

lambduhhh16:11:05

I was scarred from my experiences from way back when which is what instigated this inquiry

henrik16:11:36

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.

seancorfield18:11:19

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.

seancorfield18:11:57

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.

cfleming19:11:02

@henrik If you have suggestions about how to improve the Cursive onboarding experience, Iā€™d love to hear them.

henrik19:11:38

@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.

cfleming19:11:36

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.

henrik19:11:22

Oh, and Parinfer was hard to find!

cfleming19:11:55

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.

cfleming19:11:37

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.

henrik19:11:45

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.

cfleming19:11:44

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.

dharrigan16:11:10

I use neovim with #conjure, and other plugins such as parinfer, vim-sexp, coc, etcera.

dharrigan16:11:35

You can pry my modal editor from my cold dead hands....

lambduhhh16:11:13

So this is the video that peaked my interest for spacemacs btw

lambduhhh16:11:45

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:

henrik16:11:46

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!

lambduhhh16:11:40

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

šŸ‘ 4
danielstockton16:11:09

Using spacemacs for a while and pretty happy

šŸ˜ 4
henrik17:11:18

@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?

lambduhhh17:11:54

I probably encountered every error there was while bumbling around tbh ! but that doesn't sound familiar.

lambduhhh17:11:35

I am still quite the novice, and was even more so back then!

bfay20:11:59

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

lambduhhh16:11:00

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

Jcaw17:11:50

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")

wcalderipe23:11:11

thanks for sharing it @jack.crawley92

Jcaw13:11:58

No problem

Jcaw17:11:30

Make of that what you will

lambduhhh17:11:32

@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.

Olical17:11:56

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.

šŸ‘ 20
mruzekw18:11:36

Have you posted this yet?

Olical18:11:15

Nope, I might be able to do it tonight / tomorrow. I'll be on https://oli.me.uk

mruzekw19:11:53

Cool! Thanks

mruzekw16:11:32

:crazykermitmeme:

borkdude17:11:04

I started with Emacs Live and then went to Emacs Prelude. Have been using that for yeeeears.

borkdude17:11:52

If you're agnostic about Clojure editors, it might be worth checking out VSCode + Calva, it's a pretty low barrier to install

avi17:11:25

Similarly, #chlorine on Atom is starting to get really good

Jcaw17:11:26

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.

Jcaw17:11:45

Haven't used prelude, but I've heard a lot of good things.

Jcaw17:11:02

Yes, it's unusable IMO unless you pull directly from develop

deleted17:11:16

and then develop breaks alllllll the time

Jcaw17:11:13

It's not as bad as it used to be at least

lambduhhh17:11:26

@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

borkdude17:11:45

same for me on Emacs Prelude / CIDER. I'm putting everthing, including elpa, inside a git repo, just in case.

cider 4
chepprey17:11:23

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.

Jcaw17:11:51

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.

borkdude17:11:58

I figured, since I was using cider, going with Prelude was probably a safe bet, since they're both maintained by bbatsov

lambduhhh17:11:58

I'm loving this discussion ! thank you guys for all the awesome info!!

Jcaw17:11:16

Yep, exactly my thoughts

Jcaw17:11:12

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.

Jcaw17:11:36

Windows is awful

borkdude17:11:42

emacsclient is a thing

ā˜ļø 16
Jcaw17:11:45

Hmm. That's weird. I have no idea.

borkdude17:11:06

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))

borkdude17:11:56

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 terminal

borkdude17:11:15

I still have nano configured as the git commit message editor šŸ˜›

henrik17:11:00

On 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.

Jcaw18:11:25

@henrik I think it's been doing that for about a year

henrik18:11:00

ā€œsoonā€ in very relative terms then.

cfleming19:11:38

ā€œWe anticipate releasing before the heat death of the universeā€

šŸ˜„ 16
mloughlin21:11:37

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?

sogaiu21:11:41

@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

mloughlin12:11:11

thanks, I'll take a look šŸ‘

jaide21:11:36

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?

walterl21:11:27

Well I'm sold. Definitely doing my next web app in cljs šŸ™‚

šŸŽ© 8
David Pham07:11:29

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.

jaide19:11:21

Oh you're right, I should have called out JS interop more.

sogaiu21:11:28

@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.

Jcaw21:11:42

Haven't used it, but I will once I bite the bullet and switch to Doom

sogaiu22:11:47

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 šŸ™‚

deleted22:11:22

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

henrik22:11:48

Well, heā€™s got my automatic seal of approval, clearly.

deleted22:11:32

+ 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

Jcaw13:11:38

That's nice.

Ahmed Hassan07:11:41

@deleted-user I've installed Doom but it's not recognizing CLJ, CLJS and EDN files.

Ahmed Hassan07:11:22

It's in Fundamental mode in all clojure files.

Ahmed Hassan07:11:38

So, no syntax highlighting.

sogaiu22:11:05

that's good to know :thumbsup:

wcalderipe23:11:21

> 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.