Episode 136 – Yehonathan Sharvit

In this episode I talk with Yehonathan Sharvit. We talk his upcoming book Data Oriented Programming, what Data Oriented Programming is, how it differs from Functional Programming, how DOP fits with typed languages, and more.

Our Guest, Yehonathan Sharvit

@viebel on Twitter
viebel on Github
Data Oriented Programming from Manning


The Big Elixir is taking place March 24th and 25th in New Orleans. Save 20% on tickets you use the code FUNCTIONALGEEKERY2022. Visit to register.

ElixirConf EU is taking place the 9th and 10th of June, with training running the 6th-8th. For more information and to get your tickets visit

:clojureD is taking place June 11th in Berlin, Germany. Visit for more information and to submit your proposal.

Lambda Days 2022 has been moved to the 28th and 29th of July in Krakow, Poland. Visit to keep up to date.

Some of you have asked how you can support Functional Geekery, in that vein, Functional Geekery now has a Patreon Page.

If that is one of the ways you would like to show your support, you can find out more at

Manning Discount Code

Reminder that listeners get 40% off with code PODGEEKERY20 on Data Oriented Programming, and other items from Manning Books like The Joy of Clojure, and Grokking Simplicity that were mentioned in the episode.

Topics [@3:22]

Welcome Yehonathan
About Yehonathan
How Yehonathan discovered Clojure
Russell’s Paradox
Lisp as an implementation of Lambda Calculus
SICP lectures
Seeing a colleague writing Clojure
Stack Overflow
Starting to work in Clojure
Working on a web scraper
Using Clojure for a start-up
Ruby on Rails for back-end and ClojureScript for front-end
Clojure being very straightforward for junior developers
How Clojure influenced their approach to Ruby on Rails
Trying to find out the JavaScript code ClojureScript emitted
Inventing/discovering theories of programming
“[Clojure] It’s a language that teaches itself”
Knowing when theories are true
Why the book was written as a discussion.
Insights from reading Clojure language source
What Data Oriented Programming is
Data Oriented Programming from Manning
The Joy of Clojure
“How we represent information”
Why generic maps are better than strong static types for when the code runs
Names compile away
“That is a tragedy.”
“My hope is that people stay in their programming language and find the best way to work”
JSON Schema
Christoph Grand
Conway’s Game of Life in Clojure
Principles of Data Oriented Programming:

  1. Data is a first class citizen
  2. Separate Data from Code
  3. Use Generic Data Structures
  4. Keep Data Immutable

“How can you do state management [with immutable data]?”
“Immutable data is the best way to manage state!”
Grokking Simplicity
Data Driven Programming vs Data Oriented Programming
Data that exists before you write your program
Distinction between three data related programming paradigms
“It is better to have 100 functions operate on one data structure than to have 10 functions operate on 10 data structures.”
Star Wars GraphQL queries
Rigidity of types in GraphQL
“What do we do in terms of tooling?”
Daughter going into National Service and looking for a place to volunteer
Open Source project is like volunteering
“Somehow it gets back to you”
Shared Humanity
A refresh of Klipse
Sharing snippets of code
Available for Training on Data Oriented Programming

As always, a giant Thank You goes to David Belcher for the logo design.