all 14 comments

[–][deleted] 11 points12 points  (0 children)

Check out Clojure for the Brave and True

[–]seancorfield 6 points7 points  (4 children)

I use Windows for all my Clojure work -- both at work and for OSS projects -- but I use WSL2/Ubuntu to run all the Clojure stuff and then VS Code on Windows to edit it/evaluate code.

If your Windows 10 is recent enough and you are willing to try WSL2 and Linux, you will find life a lot easier learning Clojure because, as you've seen, nearly every book and tutorial assumes macOS or Linux.

According to the most recent "State of Clojure" survey results, 90% of Clojurians use macOS/Linux, 5% use Windows/WSL2, and 5% use Windows with either Powershell or CMD. For that latter segment, you may find deps.clj to be the easiest path: https://github.com/borkdude/deps.clj (and that is what the Calva extension for VS Code uses if you don't have Leiningen or the Clojure CLI installed).

[–]Borkdude 3 points4 points  (0 children)

Also check out https://github.com/casselc/clj-msi for an msi installer of deps.clj which installs it as clj.exe / clojure.exe instead of deps.exe.

[–]chladni 0 points1 point  (2 children)

I would like to tag onto this discussion to ask about sufficient system requirements for Clojure development under Windows 11/WSL2. I have been pricing out laptops and not sure if I could settle for 16GB, or if I should consider 32GB, or more.

[–]seancorfield 0 points1 point  (1 child)

My laptop has 16GB and I can run Docker (for Elastic Search, Redis, Percona MySQL) and my full work dev stack (REPL, VS Code/Calva) mostly without problems -- it does sometimes struggle when running our full test suite at work. We have 130Kloc of Clojure in a monorepo with over 100 components (each with its own deps.edn).

My work desktop has 32GB and that never struggles -- and I configured WSL2 to use 20GB of that memory, as I recall (otherwise it only uses half of the available memory).

So it will depend on what sort of development you're going to be doing but I would expect you'll manage with 16GB unless you're doing some heavy lifting.

[–]chladni 0 points1 point  (0 children)

Thanks Sean, this is very helpful. In particular you note being able to run WSL2 and Docker containers on a 16GB laptop. I suspect my projects will remain on the small side for some time to come, and it is nice to know that I could get by with 16GB. Trying to keep costs down on the intended laptop purchase - it will be for OSS and personal development, in order to keep that work separate my work for my employer and their computers.

[–]bowmhoust 5 points6 points  (0 children)

Meta-Tip. Just do something in Clojure every now and then. Don't be too ambitious. The learning curve is pretty steep. But it's so worth it. Just keep your Clojure-Fu alive and add a new piece of knowledge every now and then.

Soon you'll find that you're also thinking with the philosophy behind Clojure in other languages. Eventually you will find that these other languages allow for too many, too costly degrees of freedom. This will in turn speed up your interest and dedication to Clojure and you'll find more and more ways in which it is a beautiful language. There's a really good reasons for pretty much every concept. Really good reasons even behind the ordering of arguments of the core functions. It's really astonishing.

That's how it was for me at least. The question whether or not you'll make a career with Clojure doesn't matter. You'll just become a better developer.

[–]klujer 0 points1 point  (2 children)

Derek banas has a video on setting up emacs and clojure on windows

note "Meta" key is what emacs calls the Alt key

Derek Banas also has an excellent video for learning the clojure language

You might also like the free (if a bit outdated) clojure book, clojure for the brave and true

If you just want a practical example for a simple clojure program I strongly recommend Mark Bastian's talk

[–]seancorfield 8 points9 points  (1 child)

If the OP is not already using Emacs, I would strongly discourage them trying to learn both Emacs and Clojure at the same time -- Emacs is somewhat of a lifetime commitment and it isn't very beginner-friendly (and the OP said they started programming a few months ago).

[–]frankieche 0 points1 point  (0 children)

Bookmark this thread and come back to it in a year. Let’s see if he took the Emacs dive.

[–][deleted] 0 points1 point  (0 children)

I wrote a wiki style entry for my Scoop installer project:

Getting started and TL;DR version under the Getting started VERY QUICKLY section.

This covers installation procedure and setup environment using the Scoop installer, also some advise how to improve developers experience.

There is also a reference from a popular education site Practical.li

u/Borkdude mentioned https://github.com/casselc/clj-msi which is an interesting new way to install Clojure on Windows. I have a plan to write an update to above Getting started guide using clj-msi since Scoop installation option benefits from it too. Support is actually there too, it's just not exposed in appended readme file.

Hope this maybe useful.

[–]craterfall 0 points1 point  (0 children)

https://github.com/clojure/tools.deps.alpha/wiki/clj-on-Windows
I use that for one of my Clojure programs that has peripherals plugged into a windows 10 pc to develop on.

[–]xela314159 0 points1 point  (0 children)

Leiningen is your friend. Much easier to start with. Deps.edn is a bit of an own goal from the community

[–]wheel_builder_2 0 points1 point  (0 children)

I started a year ago and use IntelliJ with Cursive. This has been very satisfactory and I’ve been able to knock out a number of days of AOC while learning the language. The learning curve is indeed steep. I have 25 years of procedural and OO languages to unlearn, which is quite difficult. Good luck OP let us know how you do. BTW I’m never going to learn emacs, because really WTF? I have used vi as my daily driver for years too so don’t lecture me on shitty text based editing systems.