What software tool is indispensable for your day-to-day work? Perhaps something that makes you more productive? Or automates the mundane? Or even helps you figure things out in a hurry? Does such a tool exist? If you didn't think of the REPL, then our episode is for you! https://clojuredesign.club/episode/099-repl-your-world/ I can't believe we're almost to Episode 100! As part of the celebration, we're going back to one of our favorite topics: the REPL. What's your favorite way to use the REPL?
Thanks a lot for the episode. I had a lightbulb moment realizing that REPL is also an optionânext to Babashka, terminal and shell scriptsâto write short ad-hoc scripts, such a db queries, api calls with auth, and such; and that REPL can be used like a terminal with the advantage clojure + history captured nicely in a file. quite obvious now in retrospect, but it hadn't occurred to me before.
@marcel187 That's great to hear about the lightbulb moment! Thanks for sharing! In case you haven't heard it, in https://clojuredesign.club/episode/012-embrace-the-repl/, you can hear all about how I was really slow to use the REPL. Now I don't want anyone else to miss out!
Thanks a lot, I want to check that one out as well. The more I listen to episodes, the more I enjoy that lightweight short-nugget format, and am kind of struggling with deciding what to listen to next đ
@michaelssingh I find the podcast format a good fit for my needs, but one does have to realize that you're not going to learn Clojure directly from it. Like you alluded to, it's more like listening to your more experienced colleagues having fun talking at lunch. Except you can rewind and listen again. And you can listen while exercising. And you can cross-reference the subjects at https://clojuredesign.club/. I find that I get the best results by pairing the podcast with a good Clojure book, some videos, and lots of hitting the fingers on the keyboard.
BTW: another great episode. I like the term "connected editor". It succinctly describes the experience!
I donât understand the purpose of your podcasts, what is the premise, to teach concepts? Most that I have listed sound like two people having a personal conversation, which leaves me in the end wondering why I am even listening to this.
For me, I was drawn here by the whole âdesignâ since I am a beginner and want as much information on this topic as possible. Can you point me to episodes that might be most useful to me?
@michaelssingh Are you a Clojure beginner, or a beginner dev in general? If you haven't already, start with the https://clojuredesign.club/episode/002-tic-tac-toe-state-in-a-row/ series and then the https://clojuredesign.club/episode/006-all-wrapped-up-in-twitter/ series.
Both!
OK. Good to hear!
Where are you at in your learning process with Clojure? Have you read any books or tutorials? How's your tooling setup? What sorts of programs have you written so far?
Searching for knowledge with regards to designing production programs in a functional way. I have read quite a few books, some of Clojure for the Brave and True, bits of Getting Clojure, most of Programming Clojure, and a little of Clojure Applied.
Currently, I am reading How to Design Programs and kinda went down the Racket rabbit hole.
I use Emacs, along with packages for structural-based editing and CIDER.
I have a simple program that I havenât touched in quite some time since I am busy reading at the moment https://github.com/michaelssingh/irc-bot
Ah Racket! I haven't used it much myself, but it seems like a neat language. Matthew Flatt talked at the Clojure conference back in 2019. I loved his talk. https://www.youtube.com/watch?v=LN0qG-i1iT0
Another book lots of people seem to love is https://www.manning.com/books/the-joy-of-clojure-second-edition.
Oh, if you're not in the #beginners channel, there's lots of very helpful people there too.
It sounds like you have a dev setup. Based on the comment block I see in your https://github.com/michaelssingh/irc-bot/blob/main/src/irc_bot/core.clj, it looks you know about evaluating forms in your editor. I didn't know about that for a while, myself!
Send me a DM sometime. I'd love to hear more about what brought you to Clojure and what you're aiming for.
@ander Ah yes! We should have mentioned it. I know we've brought it up before, but bringing up Clerk would have definitely fit right in for this episode.
The Tic Tac Toe series (Ep 002-005) is definitely a must, but I'm assuming you've listened to it. I like the https://clojuredesign.club/episode/015-finding-the-time/. We actually have code samples for that one too!
Not yet, actually, those are also on my list đ thx for the recommendations
Great episode. I was sure that Clerk was going to get a shout out, especially during the discussion on the REPL as a primary interface to an application. Clerk feels like it's a perfect match for this
My two cents on the discussion above: different people are going to find different mediums and approaches to learning work better or worse for them, and I think that's also a function of where you are currently in your learning and dev knowledge. For me, design in Clojure isn't something I am going to learn as any sort of objective thing or recipe by reading a Clojure book. The books are fine for learning idioms and syntax, but design is all about tradeoffs and learning how people with experience in the language and paradigm think. I have a strong enough base in software design in OOP that learning recipes isn't sufficient for me: I need the mental models. I've yet to find good software books that do more than give a surface treatment to tradeoffs. They tend to hand wave a lot and pay lip service to the fact that there are tradeoffs, but they don't help me build my intuition with heuristics: they don't teach me to think a different way. I've gotten a lot of that skill over my career through reflection and talking to other developers. The format of this podcast being a conversation that I can listen to fits well with that. This podcast has helped reframe the way I think about problems and build my Clojure toolkit. But! It's a really slow burn. I would certainly recommend this podcast, but like a lot of good TV shows, you have to "get through the first season before it gets good" in the sense that cherry picking episodes isn't really going to be useful and teach you things in isolation. The value I've derived from the podcast comes from listening to all the episodes (sometimes multiple times), thinking on what's been discussed, and reflecting on how it aligns with my OOP experience and personal exploration of Clojure. It's kind of like, over time, @neumann and @nate work their way into your brain and slowly change the way you see Clojure code. There aren't direct answers like a cook book, but you slowly figure out what it means to be a chef. Or it's just not for your preferred way of learning (at all, or at this time), and that's okay too. đ
@john.t.richardson.dev Thank you! I think we got the term "connected editor" from somewhere else, but I can't remember where! Maybe @nate knows!
@michaelssingh, good point. I agree that the podcast isn't so much about getting your footing in Clojure. This discussion thread gets me thinking that we should mention the purpose a bit more clearly. Thanks for the feedback!
@jason.bullers, I like what you're saying about developing a mental model. I think you nailed it! I can turn around and point to others I've spent hours talking with who have shared their perspectives with me. Over the years, those perspectives have completely transformed me as a programmer. Reframing the way you think is so profound! Thank you for taking the time to think about that and share!
Haha. I canât remember where I first heard âconnected editorâ, but I remember it instantly conveying the concept better than REPL driven development.
@nate This is a whole rabbit hole now. I searched google for "connected editor" REPL and I see a bunch of "REPL-connected editor" results, but they are recent. If I limit the search to all matches prior to Dec 31, 2019, the earliest results that comes up is:
https://clojuredesign.club/episode/023-poster-child/
Interesting. Also shows that weâve been using the cake metaphor for longer than the composition series.
That metaphor composes really well with our podcast!
Hahaha!
The puns never stop đ