Alan Kay says there are only 2 Object Oriented languages that he knows of: Smalltalk and Lisp. The deeper I go into the history of Smalltalk, the more functional Smalltalk looks.
Thoughts on Functional Programming Podcast
An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand.
Though I have gotten good reception for the theory in general, a few people have asked me why we need a theory. More people have told me I’m complicating Functional Programming, which should be a simple idea.
I love refactoring. It’s therapeutic. It helps productivity. But refactoring is not enough to write good software. We can’t just write it so it works then clean it up. In this episode, I explain why.
With limited development time, where should you focus your efforts? You should build something timeless at the center of you application to create a strong foundation to build on top of. I call that you Core Abstraction.
Where should we start when we are designing out data structures–especially the data that we expect to last a long time. The answer is in the composition operations.
Clojure programmers often complain about data structures getting unwieldy and hard to understand. How can we prevent this?
What should we design first to make sure our software will last without having to constantly rework our code? We should focus on the data first because it is the most timeless.
If we don’t limit it, complexity will get out of hand. One way to limit complexity is by collapsing the number of possible states down to a few known states that we know how to handle.
Corner cases make for complex code. They multiply with each other. And as they multiply, they reduce the effectiveness of each new line of code.