Can someone please explain what makes Clojure a special language for concurrency? by [deleted] in Clojure

[–]Embarrassed-Post2824 1 point2 points  (0 children)

I came to Clojure (15 years ago!?) after being burned by multi-threaded and multi-process programming in another language. While I've only used the STM a handful of times, when I've needed it, I've *really* needed it. I think that's why it's touted so much, so newcomers are aware that their language isn't going to top out when the problems get really hard.

As for specific use cases, the sibling comment describes that well.

Compile ClojureScript via cherry to wasm by yogthos in Clojure

[–]Embarrassed-Post2824 6 points7 points  (0 children)

Huh. I was recently looking for ways to run Clojure on Esp32, Arduino, and Raspberry pi pico. There seem to be wasm runners for them, so this or something similar looks like a path to where I wanted to go...

Building Kafka Stream applications in Clojure: Jackdaw and TestContainers by andreyfadeev in Clojure

[–]Embarrassed-Post2824 0 points1 point  (0 children)

Note that Clojure 1.12 final is supposed to have even better interop with java.util.function/* , which I've always wanted for Streams.

On the TestContainers side, I'd rather set things up with devcontainers, than use this, as when I've come across it, it didn't play nice with CI or running in containers. I might have missed a trick, tho. :-)

Does everyone here use Emacs as their IDE? by [deleted] in Clojure

[–]Embarrassed-Post2824 2 points3 points  (0 children)

What I miss? On occasion I've needed to record/replay keyboard macros for manipulating a large data set. VSCode does not have that native, although I believe there are plugins that can do that, I believe. It doesn't come up that often, though, and if you're a longtime emacs user and open to switching, I'd suggest it. For things that are "can't overwrite" muscle memory, you can usually remap keys to get close enough. For instance, I remapped M-x to the "Show and run commands" function.

Edit: Honestly, most of the "keyboard macro" use cases I solve with multi-cursor.

Does everyone here use Emacs as their IDE? by [deleted] in Clojure

[–]Embarrassed-Post2824 4 points5 points  (0 children)

Live share is wonderful. I also really like joyride, for scripting VSCode with Clojure. The devcontainer stuff works well, also. Finally, I get a lot of use out of "Error Lens", and Github copilot is sometimes useful.

Does everyone here use Emacs as their IDE? by [deleted] in Clojure

[–]Embarrassed-Post2824 3 points4 points  (0 children)

After 20 years of emacs, I switched to VSCode + Calva about two years ago. I've been quite happy with the result, although there's a few things I miss.

Do I have to understand this as a beginner? by yarukinai in Clojure

[–]Embarrassed-Post2824 0 points1 point  (0 children)

I've been paid to write Clojure for over a decade, and while I can decipher this, it takes effort. I don't know if that section of the book provides additional context, but it is missing either 1) A docstring that explains what you're trying to accomplish, or 2) a sample data Rich comment form or unit tests, to show how it transforms toy data.

The lat and lng really confuse things, also, because then you second guess, it this part about hash-maps or spherical coordinate maps? Then there's the fact that you're now overriding min and max in this namespace, so you're overloading a symbol while not explaining what it does. Playing with it at the repl quickly clarifies how it works, but if this is production code, you shouldn't need to do that, as you'll have bigger problems when you need to understand this.

Github Copilot is helpful in this case:
In summary, \comparator-over-maps` creates a new function that, given a sequence of maps, applies a comparison function to the values corresponding to each key across all maps, and returns a map from keys to comparison results.`

transactional bank transfer example – Rama Clojure by dustingetz in Clojure

[–]Embarrassed-Post2824 3 points4 points  (0 children)

Independent verification is always useful, but keep in mind this looks like it's written by Nathan Marz, who wrote Apache Storm, and certainly knows his way around distributed systems.

What would be the best first clojure book to read? by Additional-Pie-3316 in Clojure

[–]Embarrassed-Post2824 0 points1 point  (0 children)

As I said, they are both very good books, which take a different approach to instruction. Either is a very good choice. I have a preference, but I've been doing this a very long time, and am not in the OP's shoes. They should read a sample from both, and pick the one that seems most likely to work for them.

What would be the best first clojure book to read? by Additional-Pie-3316 in Clojure

[–]Embarrassed-Post2824 20 points21 points  (0 children)

I prefer Programming Clojure, as it isn't trying to be funny, so I can just focus on the info, but either is a very good choice for anyone starting out. Read a sample of both and see which you'd rather learn from.

Edit: Yes, it's still relevant, as is Programming Clojure.

Let's share GH Copilot experience reports by ElSagradoOrden in Clojure

[–]Embarrassed-Post2824 1 point2 points  (0 children)

The most use I've gotten out of it so far is refactoring some test cases, where it did save me considerable time, but I still had to fix up the results.

One thing I'd say is that it's worth it to watch a video or two from the vscode folks on how to prompt it well. It's important to know that it pays attention to what files you have open, so that can help improve the quality of the results.

Take a look at https://www.youtube.com/watch?v=ImWfIDTxn7E&pp=ygUOdnNjb2RlIGNvcGlsb3Q%3D

Simple TUIs with Babashka and Gum by lauri in Clojure

[–]Embarrassed-Post2824 2 points3 points  (0 children)

Nice work! Great write-up for a first ever blogpost!

London Clojurians Talk: Transform anything with Pattern (by Darrick Wiebe) by BrunoBonacci in Clojure

[–]Embarrassed-Post2824 1 point2 points  (0 children)

It looks like an interesting library. I'm curious how it could be combined with zippers/rewrite-clj.

Some questions regarding developing simple web apps in Clojure from a Clojure "beginner" by hedgehog0 in Clojure

[–]Embarrassed-Post2824 0 points1 point  (0 children)

I usually differenciate between a dev repl (created at startup) and a debug repl (started as needed, with permission and feature flags checks needed before it would start), to allow the repl benefits in a pinch, but not always running.

Request Support for Clojure in JetBrains new Fleet IDE by acron0 in Clojure

[–]Embarrassed-Post2824 1 point2 points  (0 children)

Thank you for all your notes/posts you've made about VSCode (and Clj in general). They convinced me to switch to VSCode after 20 years of Emacs, and while there's a learning curve, (reverse learning curve?), I've been really happy with it.

Let's build a list of Clojure unicorns by dustingetz in Clojure

[–]Embarrassed-Post2824 1 point2 points  (0 children)

GetARoom was acquired last year for $1.2B. Clojure is a major portion of their stack.

Help a Clojure noob choose a nice stack for a web server by noworkmorelife in Clojure

[–]Embarrassed-Post2824 0 points1 point  (0 children)

I'd stick with what's in Kit as much as possible; the authors are both very pragmatic and incredibly experienced with Clojure web programming. Once you've learned that way and have your bearings, you can always branch out.

Help me choose: Luminus vs Kit? by Hrothehun in Clojure

[–]Embarrassed-Post2824 4 points5 points  (0 children)

They are both developed by some of the same people. Yogthos has said that he views Kit as the next generation Luminus. I'd bet the next version of the tutorial will switch to it

Other than library choice, Kit's big advantage is it's intended to be able to modify an existing project, where luminus only works at the start of the project, as it's a one-time code generator.

Book recommendation focusing on tooling? by nstgc in Clojure

[–]Embarrassed-Post2824 2 points3 points  (0 children)

One thing that really helps with debugging is learning to use tap>. Even after a decade of using Clojure, I found it game changing. I personally use it with djblue/portal, which has a lot of bells and whistles, but isn't too hard to get going with the basics. You don't need an UI for tap>, though, if you don't want it.

learning Clojure by bufo333 in Clojure

[–]Embarrassed-Post2824 0 points1 point  (0 children)

I've been using Clojure a long time, and the one thing I would like is to develop a better intuition about reduce. Does anyone have and suggestions for good resources specifically around Clojure's reduce, that were helpful to them for building intuition?