clojuredesign-podcast

neumann 2023-11-16T21:28:21.789169Z

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?

🚀 3
Marcel Krcah 2023-11-18T21:33:24.781259Z

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.

neumann 2023-11-19T01:05:34.242189Z

@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!

Marcel Krcah 2023-11-19T20:35:15.027269Z

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 😅

JR 2023-11-22T22:45:57.034309Z

@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.

➕ 3
JR 2023-11-22T22:49:57.996969Z

BTW: another great episode. I like the term "connected editor". It succinctly describes the experience!

λ 2023-11-17T15:36:12.500479Z

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.

λ 2023-11-17T15:38:59.434299Z

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?

neumann 2023-11-17T16:58:57.225429Z

@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.

λ 2023-11-17T17:25:20.065869Z

Both!

neumann 2023-11-17T17:55:12.157339Z

OK. Good to hear!

neumann 2023-11-17T17:56:28.813639Z

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?

λ 2023-11-17T17:59:15.883609Z

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.

λ 2023-11-17T17:59:44.111379Z

Currently, I am reading How to Design Programs and kinda went down the Racket rabbit hole.

λ 2023-11-17T18:00:23.308719Z

I use Emacs, along with packages for structural-based editing and CIDER.

λ 2023-11-17T18:01:24.760239Z

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

neumann 2023-11-17T18:03:58.513339Z

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

neumann 2023-11-17T18:04:55.796839Z

Another book lots of people seem to love is https://www.manning.com/books/the-joy-of-clojure-second-edition.

neumann 2023-11-17T18:10:44.690299Z

Oh, if you're not in the #beginners channel, there's lots of very helpful people there too.

neumann 2023-11-17T18:13:01.600269Z

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!

neumann 2023-11-17T18:13:54.979169Z

Send me a DM sometime. I'd love to hear more about what brought you to Clojure and what you're aiming for.

neumann 2023-11-21T16:27:40.373799Z

@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.

neumann 2023-11-20T16:38:08.708409Z

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!

Marcel Krcah 2023-11-20T20:05:47.300569Z

Not yet, actually, those are also on my list 🙂 thx for the recommendations

👍 1
ander 2023-11-21T02:30:25.447519Z

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

2023-11-23T15:02:19.134599Z

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. 🙂

neumann 2023-11-23T16:36:43.117179Z

@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!

neumann 2023-11-23T16:41:17.782519Z

@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!

neumann 2023-11-23T16:42:05.890019Z

@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!

nate 2023-11-23T17:03:47.752079Z

Haha. I can’t remember where I first heard “connected editor”, but I remember it instantly conveying the concept better than REPL driven development.

neumann 2023-11-23T17:14:33.893389Z

@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/

nate 2023-11-23T17:16:03.232779Z

Interesting. Also shows that we’ve been using the cake metaphor for longer than the composition series.

neumann 2023-11-23T17:16:27.871829Z

That metaphor composes really well with our podcast!

🙄 1
nate 2023-11-23T17:17:51.979429Z

Hahaha!

2023-11-23T17:39:03.052519Z

The puns never stop 😂