I frequently use the "pause on exception" feature of the debugger or also place breakpoints strategically and then use the console as REPL for further debugging.
Breakpoints require halting your system, so while you can inspect the system's state, you can't meaningfully alter it as you could with the kinds of Clojure REPL workflows talked about here.
Another limitation is that you can't really inspect parts of your system outside the context of the currently running function where the breakpoint was triggered.
I think debugging with state-preserving hot reloading in UI development is probably the closest analogue I've encountered to debugging workflows with a Clojure REPL, though it's still nowhere near as flexible.
Fix and continue. Various language implementations provide that.
It took some time to break my old habits and start using the REPL. It's unfortunately made me a bit lazier writing unit tests :), as I can hammer on a piece of code until I know it works - and small, deterministic functions tend to not break once you get them working. So much of my test code is integration tests.
Nowadays, when I have to work in Java (or Scala, Javascript, Python, etc), I seriously miss the Clojure REPL. Though Clojure (and Lisp in general) has definitely affected the way I write code in other languages.
I find that quite surprising, as I use the REPL a lot when coding in Python.
Monster lists 68000 positions after a search for 'Java', and 180 for 'Clojure'.
The last Clojure survey has ~2500 people responding. Which is basically the same for several years now. I we assume that 10 times more people are actively using Clojure, then that would be 25000. Still a lot less than the probably 7 million Java programmers and 8 million Python developers. https://www.zdnet.com/article/programming-languages-python-d...
However, there are some other metrics we can look at. For example, if we look at downloads for popular libraries, we can see that Ring's been downloaded 9,058,741 times, and obviously there are repeat downloads for the same users, but even accounting for that it indicates a much bigger user base than you're suggesting. https://clojars.org/ring/ring-core
Other data points would be commercial tooling like Cursive and commercial funding for projects with organizations like Clojurists Together indicates that there is a critical mass of commercial users who are willing to fund projects
https://lambdaisland.com/blog/2020-02-03-open-collective-lam...
https://www.clojuriststogether.org/
Finally, Clojure usage is growing for new projects both in enterprise and government sectors in countries like Finalnd
https://twitter.com/autiomaa/status/1235944730267193345
https://docs.google.com/presentation/d/1nCZ-GmWLcH8Dcz3XJHY0...
This is a very different picture from a tiny isolated community of a few thousand developers that you seem to be painting.
This says nothing about the number of human users.
> This is a very different picture from a tiny isolated community of a few thousand developers that you seem to be painting.
https://opencollective.com/lambda-island#section-contributor...
They have 13 contributors.
It obviously does because people are using these libraries in their projects. As I noted, it's an indirect measure, but it still gives an idea of the usage. And Open Collective was just announced last month, so not sure what point you were trying to make there. Wonder why you didn't mention anything about Clojurists Together, doesn't fit your narrative? https://www.clojuriststogether.org/members/
Obviously it says nothing about the number. If we look at the number of downloads of the current version, it's ~40000. Now many systems may download it multiple times. So the number is not an indicator for a large user community.
> Wonder why you didn't mention anything about Clojurists Together, doesn't fit your narrative? https://www.clojuriststogether.org/members/
It 'fits my narrative' well. Just count the number of the members.
Don't get me wrong, that's all fine and useful in a small community, but to claim a handful of companies and a few hundred people is an indicator of a mainstream popularity is just massive overselling and looks 'silly' (to quote you again, sorry).
Mainstream: large relative and absolute numbers of users.
For example the Porsche Taycan (-> Microsoft) is not a mainstream car, even though Bill Gates has one and Porsche is an incredible profitable company. https://www.economist.com/business/2019/09/12/porsche-is-sma...
I thought being in the top is the definition of 'mainstream': 'most people use it, know it, learn it, ...'.
But Clojure is neither widely known nor widely used. The last Clojure survey was done by just 2500 people.
> You seem to have a personal much more restrictive definition which only includes the top few languages for reasons unstated.
The top ten languages are all two orders of magnitude more used than Clojure. They are mainstream. Literally they have millions of users. That's the definition of mainstream. Mainstream pop: the music most people hear and which dominates the charts. No one would claim that free jazz is mainstream, even though it has some stable fan group.
Programmers are equally productive[0] (or way more because of their big ecosystems) in languages that have a fast code-run cycle.
[0] https://groups.google.com/forum/#!topic/comp.lang.lisp/L5dZ-...
I don't know a single person who's worked with this workflow on a serious project and would want to go back to compile/run cycle afterwards.
Meanwhile, Clojure leverages host ecosystem getting all the same benefits as any other language running on it.
I would disagree with this. I feel much more productive in Lisp than, e.g. go or C or C++. In Smalltalk, the productivity was so great that I was dead tired after 8 hours, as it was all thinking and effectively zero compiling.
Probably it's hard to comprehend what developing in a REPL feels like, majorly because no other commercial language has a REPL as powerful as Clojure.
I gave a talk[1] explaining the REPL and most people in the audience (including senior Java, C# and Python developers) had never seen something like that before.
REPL is the reason why I (and perhaps other Clojure devs) endure the pain around Clojure tooling, demand, supply and ecosystem in general.
[1] https://www.youtube.com/watch?v=Bs44qdAX5yo