Eric Normand Newsletter 475: Transcending OOP and FP

Free Beginner Workshop

From OO to Clojure Workshop!

Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.

Reflections 🤔

Transcending OOP and FP

Yehonathan Sharvit (author of Data-Oriented Programming) and I are planning a livestream to promote our books. Originally, we thought we'd talk about the obvious: How FP relates to DOP, etc.

But as we talked, we realized it would be much more interesting to talk about how OOP and FP could work together. OOP languages are getting functional features. The paradigms are merging together. So what's next? Where do we go from here?

Where do you think we need to go? What problems need better solutions? What questions do we need to ask ourselves to make a new leap in programming?

Please reply with your answers. I have some ideas but I'd love to energize this discussion with all the brainpower I can muster.

What is a domain model? 🎙

My latest podcast episode explores what a domain model is. Again. But this time I think I'm onto something.

The Man from the Future 📖

I just finished this book about John von Neumann. Such a genius. He was part of everything significant in the 20th century. I also like how the book talks about other scientists and mathematicians within his sphere.

The Hard Part of Learning a Language

What are the things we need to teach in the Clojure community? This list is pretty good.

I have complicated feelings about TDD

I've been enjoying Hillel Wayne's newsletter. This one is about TDD maximalism. He also discusses the definition of "software design." Go figure!


What an interesting project: It's ClojureScript syntax with a minimal translation to JavaScript. It works over native JavaScript data structures, not implementations of Clojure's persistent data structures like ClojureScript does. It reminds me a lot of CoffeeScript.

John Carmack on Lex Fridman

A five-hour discussion with Doom programmer John Carmack? Yes, please.


Clojure on LLVM with a gradual type system.

Grokking Simplicity 📘

You can order my book on Amazon. Please leave a rating and review. Reviews are a primary signal that Amazon uses to promote the book. They help others learn whether the book is for them.

You can order the print and eBook versions on (use TSSIMPLICITY for 50% off).

Clojure Challenge 🤔

Last challenge

No challenge last week.

This week's challenge

Least common multiple

Write a function that finds the least common multiple of a collection of numbers. Remember that the least common multiple is the smallest integer that is evenly divisible by all the numbers in the collection.


(lcm []) ;=> nil (undefined)
(lcm [10]) ;=> 10
(lcm [2 4]) ;=> 4
(lcm [3 7]) ;=> 21
(lcm [2 4 10]) ;=> 20
(lcm [15 2 4]) ;=> 60

Thanks to this site for the problem idea, where it is rated Very Hard in Java. The problem has been modified.

Please submit your solutions as comments on this gist.

Rock on!
Eric Normand