Previous Episode: Ep 090: Conditional Results
Next Episode: Ep 092: Freeing Limits

We compose our thoughts on why Clojure expressiveness is so effective but can be so hard to learn.

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:

Clojure Core

Twitter Mentions