Sveriges mest populära poddar

Functional Design in Clojure

Ep 099: REPL Your World

25 min • 16 november 2023

Each week, we discuss a different topic about Clojure and functional programming.

If you have a question or topic you'd like us to discuss, tweet @clojuredesign, send an email to [email protected], or join the #clojuredesign-podcast channel on the Clojurians Slack.

This week, the topic is: "taking the REPL beyond your application". We free our REPL to explore and automate the world around us.

Our discussion includes:

  • What are the different ways of working with the REPL?
  • How can you be more productive by using the REPL?
  • What is the connected editor?
  • How to use the REPL beside writing code for your application.
  • What is often missing from API docs.
  • Moving from bash to Clojure.
  • Using the REPL for exploration.
  • What is a "fiddle" approach to using the REPL? What is it good for?
  • Why should you use your editor for non-coding activities?
  • How to save time when you're stuck with manual testing.
  • Interacting with databases.
  • When is the REPL better than a script?
  • How a REPL is like a bash prompt, and how it's not.
  • What supports the supporting activities of software development?
  • Using the REPL as your application interface.
  • Migrating data using the REPL.
  • Why your REPL is a natural place for difficult to access resources.
  • Why the REPL saves you from extra coding.

Selected quotes:

  • "We share because we care."
  • "The connected editor is an interface to productivity."
  • "I like to call it whiplash-driven development because it's so fast that you literally have no time between when you write the code to when you execute it. You're just blown back by the productivity!"
  • "This is a Clojure Podcast, so I bet you know where this is going."
  • "The REPL as a window into another system."
  • "I actually wrote the API, so I know how it should behave...but not how it does!"
  • "Isn't that one of the goals of your programming language and experience: to spend less time doing the things that are really mundane and repetitive and more time actually doing new things?"
  • "I don't want to just let that go into the history file. I want to save it someplace more important."
  • "I have all of the power of Clojure before the query and then after the query. I don't have to trick psql to write that data out somewhere so I can read it in my REPL. It's already there!"
  • "It's not that there aren't other ways to do this. That's not the point. The point is that all of a sudden you realize there's a lot of interactive exploration and processing and task automation you can do from the REPL because you don't need to write a script to do it."
  • "You can just execute a form, and boom! It's off. It's running."
  • "But then, I was like 'Wait, there's got to be a better way!' You know, infomercial style."
  • "It's functional programming, so we're going to talk about composition. It'll happen."
  • "Whoa! The REPL could be a terminal! A super powerful terminal into a vast warehouse of data, and I can slice it and dice it all sorts of different ways and discover things."
  • "The REPL is just a way of doing structured execution very rapidly and very flexibly."
  • "With the REPL, every function or form is a potential entry point. You can have all kinds of entry points."
  • "The malleability of it is its power."

Links:

Förekommer på
00:00 -00:00