The Eric Normand Podcast cover art

All Episodes

The Eric Normand Podcast — 242 episodes

#
Title
1

All about the stratified design lens

2

All about the time lens

3

All about the volatility lens

4

All about the architecture lens

5

All about the executable specification lens

6

All about the composition lens

7

All about the operation lens

8

Data lens

9

All about the domain lens

10

How does executable specifications compare with other modeling paradigms?

11

What is the title of my new book?

12

What are the domain modeling lenses?

13

How is domain modeling evolving these days?

14

Why don't I encounter more type errors when programming in Clojure?

15

What is the "reify to an interpreter" refactoring?

16

How to teach an essential skill in domain modeling?

17

What is an isomorphism?

18

Applying domain modeling to an existing data structure

19

What is the commutative property?

20

Why is the associative property important?

21

What is the process for coming up with a good conceptual model?

22

What is the closure property?

23

All about level three, algebraic modeling

24

Why do we need to model time?

25

How do you make a function total?

26

What is a mutation function?

27

What is Signature-Driven Development?

28

What's the problem with using arrays for pizza toppings?

29

Is deferring decisions about our domain a good idea?

30

Can domain modeling be taught?

31

Why domain modeling?

32

How do we evaluate a data model?

33

What is a domain model and how do we think about them?

34

When do we want to refer to things by name?

35

Collections in domain models

36

Layout of Domain Modeling book

37

The power of runnable specifications

38

What is a domain model?

39

What is a high-level language?

40

Rewrites

41

Is the abstract stuff at the top or the bottom?

42

The Christopher Alexander Effect

43

My feelings about static vs dynamic typing

44

Computer Science as Empirical Inquiry: Symbols and Search

45

How far can we stretch technical debt?

46

How to avoid premature optimization?

47

What is domain modeling?

48

Computer Programming as an Art

49

Programmer as Navigator

50

The Humble Programmer

51

What's the relationship between abstraction and generality?

52

Why is data so powerful?

53

What if data is a really bad idea?

54

On the criteria to be used in decomposing systems into modules

55

What is missing from Stratified Design?

56

Generality in Artificial Intelligence

57

Some Comments from a Numerical Analyst

58

Don't overcomplicate the onion architecture

59

Is Haskell the best procedural language?

60

Do forces really exist?

61

Could we build Newtonian mechanics on purpose?

62

How is domain modeling related to Starbucks?

63

Is design a noun or a verb?

64

Has software design taken a wrong turn?

65

Form and Content in Computer Science

66

One Man's View of Computer Science

67

Computing Then and Now

68

The Synthesis of Algorithmic Systems

69

Is Clojure a language for hipsters?

70

Lambda: The Ultimate GOTO

71

Can Programming Be Liberated from the von Neumann Style?

72

Do we use metacircular evaluators in real life?

73

The Next 700 Programming Languages

74

What makes some API's become DSL's?

75

What is software design?

76

Why Functional Programming Matters

77

My response to Out of the Tar Pit

78

Out of the Tar Pit

79

What is software architecture?

80

The Early History of Smalltalk

81

Lisp: A language for stratified design

82

Year-end update 2019

83

Are monads practical?

84

Where does structural similarity come from?

85

Do you need immutability for functional programming?

86

Algebra is about composition

87

What do product and sum types have to do with data modeling?

88

Can you have a clean domain model?

89

What is abstraction?

90

Why does stratified design work?

91

Why are algebraic properties important?

92

Functional programming is a set of skills

93

The commercialization of computers

94

Two kinds of data modeling

95

What are product and sum types?

96

Why do I prefer Clojure to Haskell?

97

Why do I like Denotational Design?

98

What is the difference between a domain model and business rules?

99

Where does the power of Nil Punning come from?

100

What is Nil Punning?

101

What is the Curse of Lisp?

102

What is an abstraction barrier?

103

In the onion architecture, how do you make business decisions that rely on information from actions?

104

Can you use types with Data Orientation?

105

What is the benefit of data orientation?

106

What is Data Orientation?

107

What is a total function?

108

What is a continuation?

109

What kind of software is functional programming not suited for?

110

Grokking Simplicity Launch

111

Monads in the real world

112

What is the difference between parallelism and concurrency?

113

How do you develop algebraic thinking?

114

What is an algebra?

115

What is a calculation?

116

What is so great about object oriented programming?

117

Why should you throw away all of your code?

118

What is Data Modeling?

119

What is an action? (better edit)

120

What is tail recursion?

121

What is memoization?

122

How does making something first class give you power?

123

Is there a silver bullet for software? (part 2)

124

Is there a silver bullet for software development? (part 1)

125

Why getters and setters are terrible

126

Why taming complex software?

127

3 Examples of algebraic thinking

128

What is a higher-order function?

129

The 3 levels of functional thinking

130

What is functional thinking?

131

We make information systems

132

How to distinguish between commutativity and associativity

133

Why side-effecting is not all bad

134

What is an inverse, and why is it useful?

135

What makes a repl?

136

How is Haskell faster than C?

137

What is a functor?

138

Why am I podcasting about functional programming?

139

Is your layer of indirection actually useful?

140

What a monoid is and why monoids kick monads’ butt

141

How do you implement lazy evaluation?

142

What is lazy evaluation?

143

How is recursion like a for loop?

144

Why do programmers put up with so much pain?

145

Can you always find a layer of meaning in which your problem is easier?

146

What is point-free style?

147

What is referential transparency?

148

Why you shouldn’t hide your data

149

What are higher-order functions?

150

What is function composition?

151

What does it mean for a function to have a zero?

152

What is a function’s identity?

153

Why do promises make async JavaScript better than callbacks?

154

What are first-class functions?

155

Where to find time to learn functional programming?

156

Do locks slow down your code?

157

What is idempotence?

158

What is commutativity and why is it so useful in distributed systems?

159

What is associativity and why is it useful in parallel programming?

160

What are timelines and what do they have to do with functional programming?

161

Cheap or free functional programming for your team

162

What is recursion and when should I use it?

163

What are side-effects?

164

What are concurrency and parallelism?

165

What are race conditions?

166

What are pure functions?

167

How to apply the Onion Architecture

168

How do you create a semantic base layer?

169

Tension between data and entity

170

Is React functional programming?

171

What is Event Sourcing?

172

Is there always a way to implement an algorithm without mutable state?

173

What is the universal process pattern?

174

What is the onion architecture?

175

More about Stratified Design

176

Why is functional programming gaining traction? Why now?

177

Some thoughts on map, filter, and reduce

178

What do functional programmers think of the class inheritance hierarchy?

179

Why do functional programmers focus on time?

180

What is “to reify” in software?

181

Why do functional programmers model things as data?

182

Sources of complexity in software

183

How do we represent relationships in functional programming?

184

Single Responsibility Principle for Functional Programming

185

How is a book a monad?

186

Layered design in functional programming

187

Keeping functional code organized

188

What is software design?

189

How to create a habit of reuse

190

The easiest way to make your existing code more functional

191

How does FP achieve reuse?

192

Why are actions hard to test by definition?

193

How do things compose across domains?

194

Is functional programming declarative?

195

How can you work with a JSON value if you know nothing about it?

196

Is The Little Typer the static typing book I’ve been waiting for?

197

Something I missed in Rich Hickey’s last keynote (Clojure/conj 2017)

198

Are categories Design Patterns?

199

Why is making something first-class the key to expressivity?

200

How can pure functions represent state change?

201

What is callback hell?

202

How is a cook like functional programming?

203

What is the primary superpower of functional programmers?

204

Does functional programming have an answer for everything?

205

What does it mean to compose in functional programming?

206

Reduce complexity at every step

207

Why is Functional Programming more expressive?

208

What is Immutability?

209

What does it mean for programs to be built using “whole values”?

210

How is Functional Programming like grocery shopping?

211

Divide and conquer algorithms

212

The #3 most important idea in Computer Science

213

The #2 most important idea in Computer Science

214

What is the business value of Clojure?

215

The #1 Most Important idea in Computer Science

216

Is Smalltalk a Functional language? Is Lisp Object-Oriented?

217

Why do we need a Theory of Functional Programming?

218

My big beef with refactoring

219

Build your Core Abstraction

220

Focus on composition first

221

Build an interface around data

222

Focus on the data first

223

How variants can reduce complexity

224

Why are corner cases the devil? 😈

225

What will increase your programming productivity the most?

226

A cool Functional Programming pattern. Do you know what to call it?

227

Can you do Functional Programming in any language?

228

What does it mean for Actions to be first-class?

229

Should we waste memory?

230

Is FP just programming with pure functions?

231

The magical leverage of languages

232

Algebraic Properties and Composition

233

Bottom up vs Top Down Programming

234

What a Clojure Web Framework might look like

235

A Theory of Functional Programming 0006

236

What Clojure needs to grow — a boring web framework and boring data science

237

Programming is a pop culture and what we should do about it

238

A Theory of Functional Programming 0005

239

A Theory of Functional Programming 0004

240

A Theory of Functional Programming 0003

241

A Theory of Functional Programming 0002

242

A Theory of Functional Programming 0001