Ep 099: REPL Your World
► Play EpisodeEach 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 feedback@clojuredesign.club, 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:
- REPL Series
- Composition Series
- Ep 093: Waffle Cakes (first episode)
- Ep 098: Composed Learnings (summary episode)
- Talks mentioned
- "Running With Scissors: Live Coding With Data" by Stuart Halloway. Presented at Strange Loop 2018.
- "Data Science in Clojure" by Soren Macbeth. Presented at Clojure/West 2015.
- Projects mentioned