PurelyFunctional.tv Newsletter 453: Model as Toy

Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.

Issue 453 - December 06, 2021 · Archives · Subscribe

Design Idea 💡

Model as Toy

This essay continues the series about Domain Modeling.

I watched an interview between Neil Stephenson and Freeman Dyson. Freeman Dyson explains that models can be used independently of how well they fit the world. As he puts it, they are toys that scientists use to explore ideas.

That's a great way to put one of the biggest challenges in scientific literacy. Most people never get to that level. They have trouble with the ideas of multiple models and using models so abstractly. They want to know the truth so fiercely that they cling to what's most apparent.

These deficiencies present significant challenges as I develop the structure of domain modeling. Here is a list of the hurdles I know about now. We shouldn't make a model because:

  1. Our domain is too complicated.
  2. We don't understand all the requirements.
  3. We will never know the Truth.
  4. It will never handle all cases anyway.

The fact is you have a model anyway. It's just ad hoc and partially written down. All I'm suggesting is you try to write it down. And the earlier you write it down, the sooner you'll see problems with it.

Book update 📘

I wrote Grokking Simplicity because I couldn't find a book for beginner functional programmers. People kept asking what book I recommended and I had no answer. Through countless discussions about what functional programming is and what its value is, I refined the idea of actions, calculations, and data. That idea became the core of the book. I've received lots of messages from people saying that idea was instrumental in their understanding of functional programming. It's very rewarding.

You can order the book on Amazon. You can order the print and/or eBook versions on Manning.com (use TSSIMPLICITY for 50% off).

Pandemic update 😷

I know a lot of people are going through tougher times than I am. If you, for any reason, can't afford my courses, and you think the courses will help you, please hit reply and I will set you up. It's a small gesture I can make, but it might help.

I don't want to shame you or anybody that we should be using this time to work on our skills. The number one priority is your health and safety. I know I haven't been able to work very much, let alone learn some new skill. But if learning Clojure is important to you, and you can't afford it, just hit reply and I'll set you up. Keeping busy can keep us sane.

Stay healthy. Wash your hands. Wear a mask. Get vaccinated if you can. Take care of loved ones.