All Episodes
The Eric Normand Podcast — 242 episodes
All about the stratified design lens
All about the time lens
All about the volatility lens
All about the architecture lens
All about the executable specification lens
All about the composition lens
All about the operation lens
Data lens
All about the domain lens
How does executable specifications compare with other modeling paradigms?
What is the title of my new book?
What are the domain modeling lenses?
How is domain modeling evolving these days?
Why don't I encounter more type errors when programming in Clojure?
What is the "reify to an interpreter" refactoring?
How to teach an essential skill in domain modeling?
What is an isomorphism?
Applying domain modeling to an existing data structure
What is the commutative property?
Why is the associative property important?
What is the process for coming up with a good conceptual model?
What is the closure property?
All about level three, algebraic modeling
Why do we need to model time?
How do you make a function total?
What is a mutation function?
What is Signature-Driven Development?
What's the problem with using arrays for pizza toppings?
Is deferring decisions about our domain a good idea?
Can domain modeling be taught?
Why domain modeling?
How do we evaluate a data model?
What is a domain model and how do we think about them?
When do we want to refer to things by name?
Collections in domain models
Layout of Domain Modeling book
The power of runnable specifications
What is a domain model?
What is a high-level language?
Rewrites
Is the abstract stuff at the top or the bottom?
The Christopher Alexander Effect
My feelings about static vs dynamic typing
Computer Science as Empirical Inquiry: Symbols and Search
How far can we stretch technical debt?
How to avoid premature optimization?
What is domain modeling?
Computer Programming as an Art
Programmer as Navigator
The Humble Programmer
What's the relationship between abstraction and generality?
Why is data so powerful?
What if data is a really bad idea?
On the criteria to be used in decomposing systems into modules
What is missing from Stratified Design?
Generality in Artificial Intelligence
Some Comments from a Numerical Analyst
Don't overcomplicate the onion architecture
Is Haskell the best procedural language?
Do forces really exist?
Could we build Newtonian mechanics on purpose?
How is domain modeling related to Starbucks?
Is design a noun or a verb?
Has software design taken a wrong turn?
Form and Content in Computer Science
One Man's View of Computer Science
Computing Then and Now
The Synthesis of Algorithmic Systems
Is Clojure a language for hipsters?
Lambda: The Ultimate GOTO
Can Programming Be Liberated from the von Neumann Style?
Do we use metacircular evaluators in real life?
The Next 700 Programming Languages
What makes some API's become DSL's?
What is software design?
Why Functional Programming Matters
My response to Out of the Tar Pit
Out of the Tar Pit
What is software architecture?
The Early History of Smalltalk
Lisp: A language for stratified design
Year-end update 2019
Are monads practical?
Where does structural similarity come from?
Do you need immutability for functional programming?
Algebra is about composition
What do product and sum types have to do with data modeling?
Can you have a clean domain model?
What is abstraction?
Why does stratified design work?
Why are algebraic properties important?
Functional programming is a set of skills
The commercialization of computers
Two kinds of data modeling
What are product and sum types?
Why do I prefer Clojure to Haskell?
Why do I like Denotational Design?
What is the difference between a domain model and business rules?
Where does the power of Nil Punning come from?
What is Nil Punning?
What is the Curse of Lisp?
What is an abstraction barrier?
In the onion architecture, how do you make business decisions that rely on information from actions?
Can you use types with Data Orientation?
What is the benefit of data orientation?
What is Data Orientation?
What is a total function?
What is a continuation?
What kind of software is functional programming not suited for?
Grokking Simplicity Launch
Monads in the real world
What is the difference between parallelism and concurrency?
How do you develop algebraic thinking?
What is an algebra?
What is a calculation?
What is so great about object oriented programming?
Why should you throw away all of your code?
What is Data Modeling?
What is an action? (better edit)
What is tail recursion?
What is memoization?
How does making something first class give you power?
Is there a silver bullet for software? (part 2)
Is there a silver bullet for software development? (part 1)
Why getters and setters are terrible
Why taming complex software?
3 Examples of algebraic thinking
What is a higher-order function?
The 3 levels of functional thinking
What is functional thinking?
We make information systems
How to distinguish between commutativity and associativity
Why side-effecting is not all bad
What is an inverse, and why is it useful?
What makes a repl?
How is Haskell faster than C?
What is a functor?
Why am I podcasting about functional programming?
Is your layer of indirection actually useful?
What a monoid is and why monoids kick monads’ butt
How do you implement lazy evaluation?
What is lazy evaluation?
How is recursion like a for loop?
Why do programmers put up with so much pain?
Can you always find a layer of meaning in which your problem is easier?
What is point-free style?
What is referential transparency?
Why you shouldn’t hide your data
What are higher-order functions?
What is function composition?
What does it mean for a function to have a zero?
What is a function’s identity?
Why do promises make async JavaScript better than callbacks?
What are first-class functions?
Where to find time to learn functional programming?
Do locks slow down your code?
What is idempotence?
What is commutativity and why is it so useful in distributed systems?
What is associativity and why is it useful in parallel programming?
What are timelines and what do they have to do with functional programming?
Cheap or free functional programming for your team
What is recursion and when should I use it?
What are side-effects?
What are concurrency and parallelism?
What are race conditions?
What are pure functions?
How to apply the Onion Architecture
How do you create a semantic base layer?
Tension between data and entity
Is React functional programming?
What is Event Sourcing?
Is there always a way to implement an algorithm without mutable state?
What is the universal process pattern?
What is the onion architecture?
More about Stratified Design
Why is functional programming gaining traction? Why now?
Some thoughts on map, filter, and reduce
What do functional programmers think of the class inheritance hierarchy?
Why do functional programmers focus on time?
What is “to reify” in software?
Why do functional programmers model things as data?
Sources of complexity in software
How do we represent relationships in functional programming?
Single Responsibility Principle for Functional Programming
How is a book a monad?
Layered design in functional programming
Keeping functional code organized
What is software design?
How to create a habit of reuse
The easiest way to make your existing code more functional
How does FP achieve reuse?
Why are actions hard to test by definition?
How do things compose across domains?
Is functional programming declarative?
How can you work with a JSON value if you know nothing about it?
Is The Little Typer the static typing book I’ve been waiting for?
Something I missed in Rich Hickey’s last keynote (Clojure/conj 2017)
Are categories Design Patterns?
Why is making something first-class the key to expressivity?
How can pure functions represent state change?
What is callback hell?
How is a cook like functional programming?
What is the primary superpower of functional programmers?
Does functional programming have an answer for everything?
What does it mean to compose in functional programming?
Reduce complexity at every step
Why is Functional Programming more expressive?
What is Immutability?
What does it mean for programs to be built using “whole values”?
How is Functional Programming like grocery shopping?
Divide and conquer algorithms
The #3 most important idea in Computer Science
The #2 most important idea in Computer Science
What is the business value of Clojure?
The #1 Most Important idea in Computer Science
Is Smalltalk a Functional language? Is Lisp Object-Oriented?
Why do we need a Theory of Functional Programming?
My big beef with refactoring
Build your Core Abstraction
Focus on composition first
Build an interface around data
Focus on the data first
How variants can reduce complexity
Why are corner cases the devil? 😈
What will increase your programming productivity the most?
A cool Functional Programming pattern. Do you know what to call it?
Can you do Functional Programming in any language?
What does it mean for Actions to be first-class?
Should we waste memory?
Is FP just programming with pure functions?
The magical leverage of languages
Algebraic Properties and Composition
Bottom up vs Top Down Programming
What a Clojure Web Framework might look like
A Theory of Functional Programming 0006
What Clojure needs to grow — a boring web framework and boring data science
Programming is a pop culture and what we should do about it
A Theory of Functional Programming 0005
A Theory of Functional Programming 0004
A Theory of Functional Programming 0003
A Theory of Functional Programming 0002
A Theory of Functional Programming 0001