is "Clojure for the Brave and True" eBook really good/helpful/educational/didactic? How much will I learn with it? I saw some positive feedbacks about this book.
Do any vlogs or books use the deps.edn setup instead of Lein ?!
Of course, and it should be very easy to look up.
Off the top of my head, at least Practically Clojure and Sean Corfield's blog use deps.edn.
It's alright but not everyone likes the writing itself. Some bits are also outdated, but they are also not deal breakers by any means. If that doesn't bother you, I'd definitely suggest finishing it. It's not terribly long, it's easy to read, its material is tailored to beginners.
I havenβt read it in years but it was where I learned. It definitely has a style. If you like it go with it. If not there are lots of good options
the official docs on http://clojure.org are drier, but are very clear and readable compared to most language docs, I suggest looking up what you can find on the left sidebar here https://clojure.org/reference/reader as they come up in the book (it's a weird URL but it's the closest to a "destination for the reference docs" I could find)
also the clojure.repl namespace is useful for getting more info as you go (`find-doc`, apropos , source, and doc in particular)
I think the main complaints about Brave are a) Emacs upfront and b) it's a bit dated. You can ignore a) and use whatever editor you prefer and still learn from the book. You can mostly ignore b) too since Clojure evolves very slowly by design, as long as you supplement it with something like Programming Clojure 3rd ed, the material on http://clojure.org, and maybe the material on http://clojure-doc.org (which got a massive overhaul in 2023 to bring it up to date with Clojure 1.11 and 1.12).
oh yeah I forgot how much of that book was about emacs. that part is much more likely to be out of date than the clojure stuff
Emacs aint outdated : (
But the way you configure it to work with Clojure has evolved more than Clojure itself over the past morre-than-I-care-to-count years since Brave and True was written.
This is my favourite free resource. Russ Olsen from Getting Clojure is interviewed in this podcast, and he verbally takes you through his book: β’ Data: https://podcasts.apple.com/us/podcast/s1-e2-data-with-russ-olsen/id1461500416?i=1000438141815 β’ Code: https://podcasts.apple.com/us/podcast/s1-e3-code-with-russ-olsen/id1461500416?i=1000439040140 β’ State: https://podcasts.apple.com/us/podcast/s1-e4-state-with-russ-olsen/id1461500416?i=1000440022102 (more Clojure 101 stuff here: https://www.notion.so/matterindustries/Clojure-101-47c7cb41975347cbbca74e6ebeb9517a#76fcc67ee7274919b55d6b805f24f3a6 )
One question Sea, Noise and others that said about this book being a little outdated, which topics in the book are outdated? Syntax? Macros? Libraries? What?
I read the initial page in clojure doc, it is a very good material, laziness, data manipulation, etc, will take a look in other materials from that page I will see Clojure official website too
Disclaimer: I never read Brave and True, as it came out a little bit too late compared to my own Clojure journey. Skimming the ToC, I expect: β’ Chapter 2 ("Emacs") is likely outdated in the setup instructions. I'm not an Emacs user myself, so I can't really do much for you except point you to #emacs or #cider for up-to-date help with that. β’ I have a feeling that "modern" Clojure puts a lot less emphasis on refs and transactional memory than people initially believed, which could be good context to keep in mind when reading Chapter 10. Atoms (generally one per application) seem to be plenty enough for the vast majority of use-cases. β’ Similarly, the overall idiomatic trend seems to be moving away from records and towards plan maps instead, which may color Chapter 13. I've personally used protocols a little bit, but never had a real use-case for multimethods, though I don't know how typical that last one is. β’ Build and dependency management seems to be moving over to clj & tools.build, so the two appendices are likely less relevant. In particular, while you can still find some dinosaurs (like myself) clutching Leiningen like they'd drown if they had to learn something new, I haven't heard a heartbeat from Boot in a few years.
Apart from that (general category: things Rich thought would be important when building Clojure, but turned out not to be as much), there is the category of things that did not yet exist when Brave and True was written. I don't have an exhaustive list, but, off the top of my head: β’ Reducers and Transducers. β’ datafy β’ Interop has been cleaned up quite a bit in Clojure 1.12
One thing that I feel important to emphasize: I don't think anything that's in the book has become "wrong"; Clojure has been remarkably stable over the past 10 years.
Brave and True came out in 2015 I think? Clojure 1.6 was current then. So you can get a sense of what Clojure has added in 1.7 and beyond from https://en.wikipedia.org/wiki/Clojure#Release_history with a lot more detail here https://github.com/clojure/clojure/blob/master/changes.md -- so it doesn't cover transducers, reader conditionals, tap> and associated tooling (Portal, Reveal, Morse), Spec, Clojure CLI / deps.edn, tools.build / build.clj. That's pretty much all additive. The annual State of Clojure survey has shown a steady switchover from Leiningen to the official CLI / deps.edn / build.clj stuff (Leiningen is now in the minority).
my recommendation of looking at the clojure reference in parallel wasn't because brave and true is outdated per se, but because IMHO there are some things the official clojure docs explain better than brave and true
After you read CftBaT I recommend http://Elements%20of%20Clojure; personally I found it conceptually rewarding.
thank you everyone for the nice tips! I will take a deep look at everything you guys said π I didn't know about the existence of a annual Clojure survey, I'm sure that this survey contains some valuable info too I think Slack doesn't have an option to reply to a specific message in a thread chat like Discord/WhatsApp so it is a little hard to reply for each message, so the message above is a thanks for everyone here
I personally prefer Rich's introduction for java devs (you can find it on youtube) in combination with aphyr's series: https://aphyr.com/posts/301-clojure-from-the-ground-up-welcome but doing these and Clojure-For-The-Brave definitely doesn't hurt.