https://clojureverse.org/t/what-do-beginners-struggle-with/5383/150?u=pez in the What do beginners struggle with? is highlighting several things to me. > I started (again) on Clojure after I gave up on my last try about 2 years ago. While there could be several reasons you take a pause in learning some big new thing, it still could be that in this case the path could have been paved in a way that they didn't need to drop the effort. > In most books or tutorial there a lots of references how this would be done in Java or Java Script to explain a certain issue or functionality. I mostly don’t find it helpful at all. Reagent is explained mostly for people who did work with React. That’s it. It’s like I try to learn Japanese, and I am explained by what is the word is in Chinese. Just as with the user assuming things in the unlearning process can create a bump in their road, us assuming things can also do it. Goes without saying, and I think using examples from common languages to contrast agains is a reasonable and good thing to do. But we probably need more easily discoverable approaches than we currently have. > I still fight 90% of the time to get somehow the dots connected between cljs-start, Leiningen, deps.edn, cli, figwheel, Calva, REPL. As stated, I never did Java or JS, so I don’t have any experience with maven or npm, or what is a typical way of setting up dependencies in project (I choose Clojure exactly because I don’t want to learn these languages or tools). None of the Clojure books I have or online resource I found does cover these things in a good way for beginners. I had a similar discussion in #calva the other day. The user (an experienced LISPer) was wondering if Figwheel was doing things in their project, even though it was a plain deps.edn project. (This is possibly my fault in that case for confusing users with Figwheel options in such situations.) I think we need Getting Started material that clearly and early establishes the roles between the different tools and options.
Yes, as it is, clojure material seems settled on whether its identity could ever be removed even somewhat from Java, and not just the JVM. Similar for cljs I guess, though chances are as time goes on even surface familiarity with JS and the whole transpilation thing will grow, which might make that path easier to go down... maybe