Beginner-friendly environment -- help needed

Hi.

Two Clojure project have been accepted to Rails Girls Summer of Code 2020:

Kaocha, submitted by @plexus, and data science in clojure, submitted by me.

I’ll write about it more soon, looking for coaches and advice.

Anyway, some students have already reached out and are willing to explore.

For that, we need a beginner-friendly environment that is comfortable and frictionless to start with. This is important, as we are discussing Clojure with people who just wish to explore it a little bit, and we would like the exploration to be about Clojure, and not about tooling setup.

As a spacemacs user, I only played a little with Atom and VSCode.

So, my question is: assuming that someone already feels comfortable with VSCode, Atom, Intellij, what tooling would you suggest for a quick start?

Also, is there a good self-contained quick-start guide that you would recommend (creating a project, opening the REPL, and just starting to explore)?

1 Like

what about using https://sekao.net/nightcode/ ?

1 Like

I’m going to suggest Calva. The tooling setup is done after installing Calva in VS Code.

I don’t have a self-contained quick-start yet. But these two Calva docs pages cover the starting steps after having created a project.

There is also this. (Which is my first and only attempt at recording a video ever…)

3 Likes

@jr0cket, I imagine you may have some opinion about this. :pray:

Thanks @PEZ, that is very helpful!

Do you have any thoughts about the Calva default keybindings? They seem a bit overwhelming to me (maybe because I don’t know the vscode experience very well).

1 Like

It helps thinking about ctrl+alt+c as the ”Calva key”. And also in VS Code one should take advantage of the command palette. So ctrl+shift+p-> search. I have mentioned that a bit here: Finding Calva Commands

1 Like

Nightcode is an excellent concept, however, during a ClojureBridge London event we had a range of issues using it. It was no simpler or trouble free than any other tool. Just as LightTable, Nightcode quickly becomes limited once people start working on projects.

We encourage people to use the editors / ide’s they are already familiar with. Or if nothing, then we have Clojure in the browser.

Typcially the easiest editor setup is VS Code and Calva and its helpful that many people new or recently started coding are familiar with VS Code.

Thank you.

2 Likes

@daslu I concur that VS Code would be a good choice if people don’t have their own preferences.

The ClojureBridge London content has quick start guides for VS Code & Calva, Emacs & Spacemacs, Atom & Protorepl (not sure protorel is still active) and Intellij & Cursive

The VS Code & Calva quickstart is on these two pages
https://clojurebridgelondon.github.io/workshop/development-tools/install-guides/vscode-calva.html
https://clojurebridgelondon.github.io/workshop/development-tools/editor-guides/vscode-calva.html

All the content is under creative commons license, so feel free to use it anywhere.

There may be more useful things to add (and perhaps new things to add, as @pez keeps adding lots of nice things)

Thanks
John

1 Like

Thanks! :blush: It was a while since i read those. But saw that the Paredit docs link is outdated. It should point to Paredit – a Visual Guide.

Of course, if anyone wanted to use Spacemacs, I have a video that shows you how to set up a full Clojure development experience in Emacs with only two git clone commands

https://practicalli.github.io/spacemacs/install-spacemacs/

It would seem that both Spacemacs and VS Code have some support for R, which seem to be relevant to your summer of code project (I have not tried either of these yet)

https://develop.spacemacs.org/layers/+lang/ess/README.html (Emacs Speaks Statistic)
https://marketplace.visualstudio.com/items?itemName=Mikhail-Arkhipov.r

Thanks

I create an issue: https://github.com/ClojureBridgeLondon/workshop-content-gitbook/issues/39

After just 20 minutes of playing I can confirm that Nightcode/Nightlight gets annoying with InstaREPL for example.

Just did quick test of VSCode+Calva+WSL support. I’m impressed how great it works, especially when using WSL.

1 Like

OMG. That’s so sweet to hear! You just made my day.

1 Like

Cool. I’ll have a look at the whole thing. Watch that PR tab. :smile:

atom has a newer extension that works pretty great with the built in clojure socket repl: https://atom.io/packages/chlorine

:slight_smile: I’ve even assumed that it was not possible to use WSL from VSCode. It’s very important since R (with plenty locally compiled packages) and nRepl are on Linux (WSL) which is target environment for clojisr library. With Calva it’s possible to seamlessly join these two worlds. Thanks a lot. I’ll give a try for this setup I suppose (now I use Emacs through Cygwin X Server).

1 Like

I’m a bit surprised ProtoREPL even still works in recent versions of Atom – I’ve seen folks report breakage, particularly with recent versions of Ink (used for showing inline results) which changed its API and broke quite a few tools.

These days, the best-maintained package for Clojure with Atom is https://atom.io/packages/chlorine as noted by @swikr but it doesn’t use nREPL – it uses a plain socket REPL instead which can be a bit more fiddly for beginners to get up and running (even tho’ it is built into Clojure and doesn’t require any tooling or dependencies at all).

@generateme @PEZ @jr0cket @swlkr @seancorfield thank you for the quick and kind help!

I guess we will go with Calva for now, as it seems from your comments that it is expected to be the most hassle-free for quick explorations.
Indeed, its support for R and RMarkdown may be helpful (though most R users are used to RStudio anyway).

(Indeed Spacemacs (+ Cider + Emacs Speaks Statistics) is wonderful, if one already knows Emacs.)

Looking forward to reading into all the links you’ve shared.

1 Like

I made a pretty frictionless Clojure beginner tutorial. It is based on Blockly visual programming, no installation is required (click first link in this repository). It is, though, not at all suited for writing arbitrary programs but for playing with and understanding the very basics of Clojure. As it has never been used in the field, I do not know whether it is of any use in practice. So honest feedback is very welcome.

2 Likes

In my experience, IntelliJ + Cursive has been the most beginner friendly solution.

The doc for both is great. And they have more of a “just work” feel to them, due to their commercial nature.

For learning, both can be used for free.

1 Like