I think a lot about what Clojure needs. Is there something that is sort of the bottleneck for growth? People talk about different things as their hypotheses for what would make it grow. I think that what Clojure needs — I’ll talk about my hypotheses — I think what we really need is to solve all of the boring problems that other languages have already solved.
Thoughts on Functional Programming Podcast
An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand.
I want to talk about how programming is a pop culture. It’s true, programming is a pop culture. There are big trends, fads, new frameworks coming out all the time. It’s all about attention and getting mind share and people watching your media about what framework or what language to use, or how to program.
There are different patterns that we use as functional programmers to reduce the possible states so that it becomes easier to reason about. I think that this is something that we should talk about a little bit more, because it’s actually something that isn’t talked about much in imperative programming.
Today, we’re going to be talking actions. Now, as counter-intuitive as it may be, functional programming has more to say about actions than it does about data and calculations. At least, more interesting stuff to say.
The data tradition goes back to the early days of writing, and functional programming largely tries to learn lessons from those instead of doing what object-oriented programming tries to do, which is attach code to the data, so the data is inert. It just is what it is.
In a general sense, every operation depends on when it is run and how many times it is run. Using our language or some other discipline, we can say, “Well, that memory or the register, it’s kind of special. We’re not going to store anything important in there so that at any point we can overwrite it.”
Functional programming is a paradigm. Meaning, it is a set of ideas, it’s a set of concepts, a set of practices and almost like a theory of programming itself. It is a framework, meaning a mental framework for how to approach a problem that you’re trying to solve with software.