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: "effective expressiveness." We compose our thoughts on why Clojure expressiveness is so effective but can be so hard to learn.
Our discussion includes:
- Why Clojure can give you a boost as a developer—in the short and long term.
- Our definition of expressiveness, and why it's not simply about conciseness.
- Why object-oriented developers often struggle to learn functional programming.
- What makes some abstractions better than others.
- The deep implications of immutability.
- How to work your way up to an expert functional programmer.
Selected quotes:
- "Getting rid of problems over time really adds up."
- "More of the code is solving the problem instead of being boilerplate."
- "You hold things at a higher level, but still very clearly, because they're well defined."
- "Because all of the verbs in Clojure work on all the data structures, they become more powerful."
- All of these new pieces have names and concepts associated with them, and you're not going to know them."
- "You can do tiny things, but tiny things are toys. You want big things. You want to solve problems."
- "It's not a small adaptation of thinking in a little region of the code, but it affects how you structure and organize everything."
- "You have to go in levels. You can't go all the way from zero to done."
Links: